r550 - in trunk/wikitty-api: . src/main/java/org/nuiton/wikitty src/main/java/org/nuiton/wikitty/services src/main/resources src/test/java/org/nuiton/wikitty/notification src/test/java/org/nuiton/wikitty/services
Author: bpoussin Date: 2010-12-02 02:13:56 +0100 (Thu, 02 Dec 2010) New Revision: 550 Url: http://nuiton.org/repositories/revision/wikitty/550 Log: - remove picocontainer that don't work, replace it by new nuiton-util method ObjectUtil.newInstance(clazz, Collection, boolean) - WikittyNotifierService take as new argument the transporter (this suppress non consistance between WikittyService instanciation) /!\ for user this modifier configuration - change sample properties for transporter modification - add test for WikittyServiceFactory Modified: trunk/wikitty-api/pom.xml trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/JGroupsNotifierTransporter.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceNotifier.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/XMPPNotifierTransporter.java trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/WikittyServiceNotificationTest.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceHelperTest.java Modified: trunk/wikitty-api/pom.xml =================================================================== --- trunk/wikitty-api/pom.xml 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/pom.xml 2010-12-02 01:13:56 UTC (rev 550) @@ -42,12 +42,6 @@ <!-- COMPILE --> <dependency> - <groupId>org.picocontainer</groupId> - <artifactId>picocontainer</artifactId> - <scope>compile</scope> - </dependency> - - <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </dependency> Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-12-02 01:13:56 UTC (rev 550) @@ -90,8 +90,7 @@ * @param configFilename name of wikitty config file */ public WikittyConfig(String configFilename) { - this(); - setDefaultOption(WikittyOption.WIKITTY_CONFIG_FILE.getKey(), configFilename); + this(new String[]{"--option", ApplicationConfig.CONFIG_FILE_NAME, configFilename}); } /** @@ -203,6 +202,12 @@ + "org.nuiton.wikitty.jdbc.WikittyStorageJDBC," + "org.nuiton.wikitty.solr.WikittySearchEnginSolr", String.class, false, false), + WIKITTY_WIKITTYSERVICENOTIFIER_COMPONENTS( + "wikitty.WikittyServiceNotifier.components", + _("WikittyServiceNotifier component to use (transporter class" + + "to use for propagate or listen remote event)"), + XMPPNotifierTransporter.class.getName(), String.class, false, false), + WIKITTY_TRANSACTION_WIKITTYSERVICE_COMPONENTS( "wikitty.transaction.WikittyService.components", _("WikittyService to use for transaction (must be in memory)" @@ -246,10 +251,6 @@ "wikitty.service.event.listen", _("Indique si le service d'event ecoute sur le reseau les evenements"), "false", Boolean.class, false, false), - WIKITTY_EVENT_TRANSPORTER( - "wikitty.service.event.propagate.transporter", - _("La classe du transporter a utiliser pour la propagation reseau"), - XMPPNotifierTransporter.class.getName(), Class.class, false, false), WIKITTY_EVENT_TRANSPORTER_JGROUP_CHANNELNAME( "wikitty.service.event.transporter.jgroups.channelname", Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java 2010-12-02 01:13:56 UTC (rev 550) @@ -25,15 +25,14 @@ package org.nuiton.wikitty; -import org.nuiton.wikitty.services.WikittyServiceNotifier; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.HashSet; import java.util.List; -import org.apache.commons.lang.ClassUtils; +import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.ApplicationConfig; -import org.picocontainer.MutablePicoContainer; -import org.picocontainer.containers.TransientPicoContainer; +import org.nuiton.util.ObjectUtil; /** * Point d'entre de wikitty, permet de recuperer un WikittyService pour @@ -69,6 +68,18 @@ return result; } + /** + * Construit l'enchainement des differents WikittyService comme decrit + * dans le fichier de configuration via la cle: + * wikitty.transaction.WikittyService.components + * <p> + * Chaque composant de l'enchainement peut avoir lui aussi ses propres + * composants dans une cle: + * wikitty.transaction.[nom simple de la classe].components * + * + * @param config + * @return + */ static public WikittyService buildWikittyServiceTransaction(ApplicationConfig config) { String prefix = "wikitty.transaction."; WikittyService result = buildWikittyService(config, prefix); @@ -81,75 +92,22 @@ WikittyService result = null; List<Class> layers = getComponents(config, prefix, WikittyService.class); - MutablePicoContainer pico = new TransientPicoContainer(); - pico.addComponent(config); + Set comp = new HashSet(); for (Class<WikittyService> clazz : layers) { - pico.addComponent(WikittyService.class, clazz); + comp.clear(); + comp.add(result); + comp.add(config); + List<Class> comps = getComponents(config, prefix, clazz); + if (comps != null) { + comp.addAll(comps); + } - // on cree un container specifique pour l'instanciate de cette objet - // avec tous les composants dont il a besoin - MutablePicoContainer childPico = getChildContainer(config, pico, prefix, clazz); - result = childPico.getComponent(clazz); - - pico.removeComponent(WikittyService.class); - pico.removeComponent("parent"); - pico.addComponent("parent", result); + result = ObjectUtil.newInstance(clazz, comp, true); } return result; } - static public WikittyServiceNotifier.RemoteNotifierTransporter buildTransporter( - ApplicationConfig config, WikittyServiceNotifier notifier) { - - if (notifier == null) { - throw new IllegalArgumentException("Notifier must be non null"); - } - - Class<WikittyServiceNotifier.RemoteNotifierTransporter> transporterClass = - (Class<WikittyServiceNotifier.RemoteNotifierTransporter>)config.getOptionAsClass( - WikittyConfig.WikittyOption.WIKITTY_EVENT_TRANSPORTER.getKey()); - - if (transporterClass == null) { - String transporteurClassName = config.getOption( - WikittyConfig.WikittyOption.WIKITTY_EVENT_TRANSPORTER.getKey()); - - throw new WikittyException("Transporteur class '" + transporteurClassName + "' not found"); - } - - if (log.isDebugEnabled()) { - log.debug("Creating transporteur : " + transporterClass.getName()); - } - - MutablePicoContainer pico = new TransientPicoContainer(); - pico.addComponent(config); - pico.addComponent(notifier); - pico.addComponent(WikittyServiceNotifier.RemoteNotifierTransporter.class, transporterClass); - WikittyServiceNotifier.RemoteNotifierTransporter result = - pico.getComponent(WikittyServiceNotifier.RemoteNotifierTransporter.class); - - return result; - } - /** - * Retourne un nouveau container fils de celui passe en parametre et dans - * lequel on a injecte tous les composans necessaire a clazz comme decrit - * dans le fichier de configuration - * - * @param config - * @param parent - * @param clazz - * @return - */ - static protected MutablePicoContainer getChildContainer( - ApplicationConfig config, MutablePicoContainer parent, - String prefix, Class clazz) { - - List<Class> comps = getComponents(config, prefix, clazz); - MutablePicoContainer result = makeChildContainer(parent, comps); - return result; - } - - /** * Recherche dans la config une key de la forme * <pre> * wikitty.[nom simple de la classe].components @@ -171,25 +129,16 @@ String componentsString = config.getOption(key); if (componentsString != null) { String[] componentsList = componentsString.split(","); - result = (List<Class>) ClassUtils.convertClassNamesToClasses( - Arrays.asList(componentsList)); - } - return result; - } - - /** - * Cree un nouveau container et injecte les classes donnees en parametre - * @param parent - * @param comps - * @return - */ - static protected MutablePicoContainer makeChildContainer( - MutablePicoContainer parent, List<Class> comps) { - - MutablePicoContainer result = parent.makeChildContainer(); - if (comps != null) { - for (Class clazz : comps) { - result.addComponent(clazz); + result = new ArrayList<Class>(); + for(String className : componentsList) { + try { + Class c = Class.forName(className); + result.add(c); + } catch (ClassNotFoundException eee) { + throw new WikittyException(String.format( + "Can't find class %s, check your configuration and" + + " your jar file available", className), eee); + } } } return result; Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/JGroupsNotifierTransporter.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/JGroupsNotifierTransporter.java 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/JGroupsNotifierTransporter.java 2010-12-02 01:13:56 UTC (rev 550) @@ -39,6 +39,9 @@ /** * JGroups notifier. + * + * @deprecated not maintened because this implementation doesn't work. You must + * use XMPPNotifierTransporter * * @author chatellier * @version $Revision$ @@ -46,6 +49,7 @@ * Last update : $Date$ * By : $Author$ */ +@Deprecated public class JGroupsNotifierTransporter extends ReceiverAdapter implements WikittyServiceNotifier.RemoteNotifierTransporter { @@ -59,9 +63,7 @@ /** JGroup channel. */ protected JChannel channel; - public JGroupsNotifierTransporter(ApplicationConfig config, WikittyServiceNotifier ws) { - this.ws = ws; - + public JGroupsNotifierTransporter(ApplicationConfig config) { // can be null according to default constructor if (config != null) { // add notifier as listener @@ -74,6 +76,15 @@ } } + public WikittyServiceNotifier getWikittyServiceNotifier() { + return ws; + } + + @Override + public void setWikittyServiceNotifier(WikittyServiceNotifier ws) { + this.ws = ws; + } + /** * Init jgroup channel. * Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceNotifier.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceNotifier.java 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceNotifier.java 2010-12-02 01:13:56 UTC (rev 550) @@ -42,11 +42,9 @@ import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.PagedResult; import org.nuiton.wikitty.entities.Wikitty; -import org.nuiton.wikitty.WikittyConfig; import org.nuiton.wikitty.WikittyException; import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.WikittyService; -import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.WikittyTree; import org.nuiton.wikitty.entities.WikittyTreeNode; @@ -91,11 +89,25 @@ /** * Constructor with configuration. - * + * + * @param config config to use * @param ws delegate service - * @param props properties (can be null) */ - public WikittyServiceNotifier(ApplicationConfig config, WikittyService ws) { +// public WikittyServiceNotifier(ApplicationConfig config, WikittyService ws) { +// this(config, ws, null); +// } + + /** + * Constructor with configuration. + * + * @param config config to use + * @param ws delegate service + * @param transporter transporter to use for remote event (listen or propagate). + * this transporter can be null if we don't want propagate or listen remote + * event + */ + public WikittyServiceNotifier(ApplicationConfig config, + WikittyService ws, RemoteNotifierTransporter transporter) { // service this.ws = ws; @@ -110,10 +122,22 @@ allWikittyServiceListeners, localWikittyServiceListeners, remoteWikittyServiceListeners); - // can be null according to default constructor - if (config != null) { - notifier = new RemoteNotifier(config, this); + if (transporter != null) { + transporter.setWikittyServiceNotifier(this); + notifier = new EventPropagator(config, this, transporter); + + // FIX poussin 201O1126 remplacement du ALL par LOCAL + // sinon on renvoie des events qui nous ont ete envoyes :( + // ca risque de boucler :( + this.addWikittyServiceListener(notifier, WikittyService.ServiceListenerType.LOCAL); // weak reference } + if (log.isInfoEnabled()) { + if (transporter == null) { + log.info("RemoteNotifier synchronisation not used "); + } else { + log.info("RemoteNotifier transporter: " + transporter.getClass().getName()); + } + } } @Override @@ -568,6 +592,13 @@ static public interface RemoteNotifierTransporter { /** + * this method must be call before RemoteNotifierTransporter utilisation + * to indicate which service use it + * @param ws + */ + public void setWikittyServiceNotifier(WikittyServiceNotifier ws); + + /** * Send a jgroup message to all other channel member. * * @param event message to send @@ -580,37 +611,20 @@ * only if wikitty.notifier.transporter.class configuration is found and * wikitty.service.event.propagateEvent is true */ - static public class RemoteNotifier implements WikittyListener { + static public class EventPropagator implements WikittyListener { /** to use log facility, just put in your code: log.info(\"...\"); */ - static private Log log = LogFactory.getLog(RemoteNotifier.class); + static private Log log = LogFactory.getLog(EventPropagator.class); /** Notifier service reference reference. */ protected WikittyServiceNotifier ws; protected RemoteNotifierTransporter transporter; - public RemoteNotifier(ApplicationConfig config, WikittyServiceNotifier ws) { - // can be null according to default constructor - if (config != null) { - this.ws = ws; - transporter = WikittyServiceFactory.buildTransporter(config, ws); - - if (transporter != null) { - // add this as listener when transporter is created without error - // FIX poussin 201O1126 remplacement du ALL par LOCAL - // sinon on renvoie des events qui nous ont ete envoyes :( - // ca risque de boucler :( - ws.addWikittyServiceListener(this, WikittyService.ServiceListenerType.LOCAL); // weak reference - } - } - if (log.isInfoEnabled()) { - if (transporter == null) { - log.info("RemoteNotifier synchronisation not used "); - } else { - log.info("RemoteNotifier transporter: " + transporter.getClass().getName()); - } - } + public EventPropagator(ApplicationConfig config, + WikittyServiceNotifier ws, RemoteNotifierTransporter transporter) { + this.ws = ws; + this.transporter = transporter; } /** Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/XMPPNotifierTransporter.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/XMPPNotifierTransporter.java 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/XMPPNotifierTransporter.java 2010-12-02 01:13:56 UTC (rev 550) @@ -81,13 +81,12 @@ * @param ws * @param props */ - public XMPPNotifierTransporter(ApplicationConfig config, WikittyServiceNotifier ws) { + public XMPPNotifierTransporter(ApplicationConfig config) { propagateEvent = config.getOptionAsBoolean(WikittyConfig.WikittyOption. WIKITTY_EVENT_PROPAGATE.getKey()); listenEvent = config.getOptionAsBoolean(WikittyConfig.WikittyOption. WIKITTY_EVENT_LISTEN.getKey()); - setWikittyServiceNotifier(ws); initXMPP(config); } @@ -95,6 +94,7 @@ return ws; } + @Override public void setWikittyServiceNotifier(WikittyServiceNotifier ws) { this.ws = ws; } Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties =================================================================== --- trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties 2010-12-02 01:13:56 UTC (rev 550) @@ -26,10 +26,10 @@ org.nuiton.wikitty.services.WikittyServiceNotifier,\ org.nuiton.wikitty.services.WikittyServiceCached,\ org.nuiton.wikitty.services.WikittyServiceSecurity +wikitty.WikittyServiceNotifier.components=org.nuiton.wikitty.services.XMPPNotifierTransporter wikitty.service.cache.allwaysRestoreCopies=false wikitty.service.event.propagate=false wikitty.service.event.listen=true -wikitty.service.event.propagate.transporter=org.nuiton.wikitty.services.XMPPNotifierTransporter wikitty.service.event.transporter.xmpp.server=im.codelutin.com wikitty.service.event.transporter.xmpp.room=master@conference.im.codelutin.com wikitty.service.server.url=http://services.codelutin.com/wikitty Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties =================================================================== --- trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties 2010-12-02 01:13:56 UTC (rev 550) @@ -31,7 +31,6 @@ wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.URL=${wikitty.storage.jdbc.host} wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.user=${wikitty.storage.jdbc.login} wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.password=${wikitty.storage.jdbc.password} -wikitty.searchengine.solr.directory.factory=solr.RAMDirectoryFactory wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceStorage,\ org.nuiton.wikitty.services.WikittyServiceNotifier,\ org.nuiton.wikitty.services.WikittyServiceCached,\ @@ -39,9 +38,10 @@ wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\ org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\ org.nuiton.wikitty.solr.WikittySearchEnginSolr +wikitty.searchengine.solr.directory.factory=org.nuiton.wikitty.solr.RAMDirectoryFactory +wikitty.service.cache.allwaysRestoreCopies=false +wikitty.service.event.propagate=false +wikitty.service.event.listen=false wikitty.addon.export.threadnumber=1 wikitty.addon.export.directory=/tmp/wikitty wikitty.addon.export.publicurl=file:///tmp/wikitty/ -wikitty.service.cache.allwaysRestoreCopies=false -wikitty.service.event.propagate=false -wikitty.service.event.listen=false Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties =================================================================== --- trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties 2010-12-02 01:13:56 UTC (rev 550) @@ -42,11 +42,11 @@ wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\ org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\ org.nuiton.wikitty.solr.WikittySearchEnginSolr +wikitty.WikittyServiceNotifier.components=org.nuiton.wikitty.services.XMPPNotifierTransporter wikitty.service.server.url=http://services-slave.codelutin.com/wikitty wikitty.service.cache.allwaysRestoreCopies=false wikitty.service.event.propagate=true wikitty.service.event.listen=false -wikitty.service.event.propagate.transporter=org.nuiton.wikitty.services.XMPPNotifierTransporter wikitty.service.event.transporter.xmpp.server=im.codelutin.com wikitty.service.event.transporter.xmpp.room=slave@conference.im.codelutin.com wikitty.service.slave.async.store=false Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties =================================================================== --- trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties 2010-12-02 01:13:56 UTC (rev 550) @@ -41,12 +41,12 @@ wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\ org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\ org.nuiton.wikitty.solr.WikittySearchEnginSolr +wikitty.WikittyServiceNotifier.components=org.nuiton.wikitty.services.XMPPNotifierTransporter wikitty.service.server.url=http://services.codelutin.com/wikitty wikitty.service.cache.listenevents=false wikitty.service.cache.allwaysRestoreCopies=false wikitty.service.event.propagate=true wikitty.service.event.listen=false -wikitty.service.event.propagate.transporter=org.nuiton.wikitty.services.XMPPNotifierTransporter wikitty.service.event.transporter.xmpp.server=im.codelutin.com wikitty.service.event.transporter.xmpp.room=master@conference.im.codelutin.com wikitty.addon.export.threadnumber=1 Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/WikittyServiceNotificationTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/WikittyServiceNotificationTest.java 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/WikittyServiceNotificationTest.java 2010-12-02 01:13:56 UTC (rev 550) @@ -59,7 +59,7 @@ */ @Test public void testEvent() throws Exception { - WikittyServiceNotifier wsn = new WikittyServiceNotifier(null, null); + WikittyServiceNotifier wsn = new WikittyServiceNotifier(null, null, null); Listener l = new Listener(); // test d'envoi et de bonne reception Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java 2010-12-02 01:13:56 UTC (rev 550) @@ -59,13 +59,13 @@ String server = "im.codelutin.com"; String room = "test@conference.im.codelutin.com"; WikittyConfig config = new WikittyConfig(); - config.setOption(WikittyConfig.WikittyOption.WIKITTY_EVENT_TRANSPORTER.getKey(), XMPPNotifierTransporter.class.getName()); config.setOption(WikittyConfig.WikittyOption.WIKITTY_EVENT_TRANSPORTER_XMPP_SERVER.getKey(), server); config.setOption(WikittyConfig.WikittyOption.WIKITTY_EVENT_TRANSPORTER_XMPP_ROOM.getKey(), room); // Envoi d'un message avec le transporter normal - WikittyServiceNotifier wsn = new WikittyServiceNotifier(config, null); - WikittyServiceNotifier.RemoteNotifierTransporter transporteur = WikittyServiceFactory.buildTransporter(config, wsn); + WikittyServiceNotifier.RemoteNotifierTransporter transporteur = + new XMPPNotifierTransporter(config); + WikittyServiceNotifier wsn = new WikittyServiceNotifier(config, null, transporteur); WikittyEvent event = new WikittyEvent("test"); event.addRemoveDate("theId", new Date()); Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceHelperTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceHelperTest.java 2010-12-01 16:41:08 UTC (rev 549) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceHelperTest.java 2010-12-02 01:13:56 UTC (rev 550) @@ -32,6 +32,9 @@ import org.nuiton.wikitty.WikittyConfig; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyServiceFactory; +import org.nuiton.wikitty.storage.WikittyExtensionStorageInMemory; +import org.nuiton.wikitty.storage.WikittySearchEnginInMemory; +import org.nuiton.wikitty.storage.WikittyStorageInMemory; /** * @@ -62,4 +65,26 @@ ws = ((WikittyServiceNotifier)ws).ws; Assert.assertEquals(WikittyServiceInMemory.class, ws.getClass()); } + + @Test + public void testSampleConfig() throws Exception { + { + WikittyConfig config = new WikittyConfig("wikitty-config-sample-inmemory.properties"); + // surcharge certain option qui ont besoin d'autre module que api + config.setOption(WikittyConfig.WikittyOption.WIKITTY_WIKITTYSERVICESTORAGE_COMPONENTS.getKey(), + WikittyStorageInMemory.class.getName() + + "," + WikittyExtensionStorageInMemory.class.getName() + + "," + WikittySearchEnginInMemory.class.getName()); + WikittyService ws = WikittyServiceFactory.buildWikittyService(config); + + Assert.assertEquals(WikittyServiceSecurity.class, ws.getClass()); + ws = ((WikittyServiceEnhanced)((WikittyServiceSecurity) ws).ws).delegate; + Assert.assertEquals(WikittyServiceCached.class, ws.getClass()); + ws = ((WikittyServiceCached) ws).ws; + Assert.assertEquals(WikittyServiceNotifier.class, ws.getClass()); + ws = ((WikittyServiceNotifier) ws).ws; + Assert.assertEquals(WikittyServiceStorage.class, ws.getClass()); + } + } + }
participants (1)
-
bpoussin@users.nuiton.org