r864 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
Author: mfortun Date: 2011-05-06 12:01:02 +0200 (Fri, 06 May 2011) New Revision: 864 Url: http://nuiton.org/repositories/revision/wikitty/864 Log: * Proxy, Session and config for wikitty publication on struts Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java (rev 0) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java 2011-05-06 10:01:02 UTC (rev 864) @@ -0,0 +1,117 @@ +package org.nuiton.wikitty.publication; + + +import java.util.Properties; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.ArgumentsParserException; +import static org.nuiton.i18n.I18n._; + +public class WikittyPublicationConfig { + + + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(WikittyPublicationConfig.class); + + static protected ApplicationConfig instance = null; + + private WikittyPublicationConfig() { + } + + static public ApplicationConfig getConfig() { + return getConfig(null, null); + } + + static public ApplicationConfig getConfig( + Properties props, String configFilename, String ... args) { + ApplicationConfig conf = new ApplicationConfig( + Option.class, null, props, configFilename); + + try { + conf.parse(args); + } catch (ArgumentsParserException eee) { + if (log.isErrorEnabled()) { + log.error("Can't load Wikitty Publication configuration", eee); + } + } + return conf; + } + + + public static ApplicationConfig getInstance() { + if (instance == null) { + synchronized(WikittyPublicationConfig.class) { + if (instance == null) { + instance = WikittyPublicationConfig.getConfig(); + } + } + } + return instance; + } + + + public enum Option implements ApplicationConfig.OptionDef { + CONFIG_FILE( + ApplicationConfig.CONFIG_FILE_NAME, + _("wikitty-publication.config.configFileName.description"), + "wikitty-publication-ws-default.properties", String.class, false, false); + + public final String key; + public final String description; + public String defaultValue; + public final Class<?> type; + public boolean isTransient; + public boolean isFinal; + + Option(String key, String description, String defaultValue, + Class<?> type, boolean isTransient, boolean isFinal) { + this.key = key; + this.description = description; + this.defaultValue = defaultValue; + this.type = type; + this.isFinal = isFinal; + this.isTransient = isTransient; + } + + public String getKey() { + return key; + } + + public Class<?> getType() { + return type; + } + + public String getDescription() { + return description; + } + + public String getDefaultValue() { + return defaultValue; + } + + public boolean isTransient() { + return isTransient; + } + + public boolean isFinal() { + return isFinal; + } + + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + public void setTransient(boolean isTransient) { + this.isTransient = isTransient; + } + + public void setFinal(boolean isFinal) { + this.isFinal = isFinal; + } + } + + +} Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-06 02:09:38 UTC (rev 863) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-06 10:01:02 UTC (rev 864) @@ -1,15 +1,48 @@ package org.nuiton.wikitty.publication; +import org.nuiton.util.ApplicationConfig; import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.WikittyService; +import org.nuiton.wikitty.WikittyServiceFactory; /** * Proxy use by action in wikitty publication - * + * * @author mfortun - * + * */ -public class WikittyPublicationProxy extends WikittyProxy{ +public class WikittyPublicationProxy extends WikittyProxy { - - + /* + * TODO mfortun-2011-05-06 in this class add multicontexte supportby + * overiding wikitty proxy method + */ + + static protected WikittyService ws = null; + + protected WikittyPublicationProxy(ApplicationConfig config, + WikittyService ws) { + super(config, ws); + } + + static public WikittyPublicationProxy getInstance(String token) { + ApplicationConfig config = WikittyPublicationConfig.getInstance(); + WikittyService ws = getWikittyService(config); + WikittyPublicationProxy result = new WikittyPublicationProxy(config, ws); + result.setSecurityToken(token); + + return result; + } + + static protected WikittyService getWikittyService(ApplicationConfig config) { + if (ws == null) { + synchronized (WikittyPublicationProxy.class) { + if (ws == null) { + ws = WikittyServiceFactory.buildWikittyService(config); + } + } + } + return ws; + } + } Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java (rev 0) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java 2011-05-06 10:01:02 UTC (rev 864) @@ -0,0 +1,66 @@ +package org.nuiton.wikitty.publication; + +import java.io.Serializable; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public class WikittyPublicationSession implements Serializable { + + /** + * + */ + private static final long serialVersionUID = -3092501094068386098L; + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(WikittyPublicationSession.class); + + static final private String WIKITTY_PUBLICATION_SESSION_KEY = WikittyPublicationSession.class + .getSimpleName(); + + protected WikittyPublicationProxy proxy; + + public WikittyPublicationSession() { + proxy = WikittyPublicationProxy.getInstance(null); + } + + static public void invalidate(Map<String, Object> session) { + session.remove(WIKITTY_PUBLICATION_SESSION_KEY); + } + + static public WikittyPublicationSession getBowSession( + HttpServletRequest request) { + HttpSession session = request.getSession(); + WikittyPublicationSession result = getBowSession(session); + return result; + } + + static public WikittyPublicationSession getBowSession( + HttpSession httpSession) { + WikittyPublicationSession result = (WikittyPublicationSession) httpSession + .getAttribute(WIKITTY_PUBLICATION_SESSION_KEY); + if (result == null) { + result = new WikittyPublicationSession(); + httpSession.setAttribute(WIKITTY_PUBLICATION_SESSION_KEY, result); + } + return result; + } + + static public WikittyPublicationSession getBowSession( + Map<String, Object> session) { + WikittyPublicationSession result = (WikittyPublicationSession) session + .get(WIKITTY_PUBLICATION_SESSION_KEY); + if (result == null) { + result = new WikittyPublicationSession(); + session.put(WIKITTY_PUBLICATION_SESSION_KEY, result); + } + return result; + } + + public WikittyPublicationProxy getProxy() { + return proxy; + } + +} Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java ___________________________________________________________________ Added: svn:mime-type + text/plain
participants (1)
-
mfortun@users.nuiton.org