r478 - in trunk/wikitty-api/src: main/java/org/nuiton/wikitty main/java/org/nuiton/wikitty/services main/resources test/java/org/nuiton/wikitty/notification
Author: bpoussin Date: 2010-11-17 18:58:42 +0100 (Wed, 17 Nov 2010) New Revision: 478 Url: http://nuiton.org/repositories/revision/wikitty/478 Log: Config: - add WikittyServiceSlave configuration - rename some configuration Notifier: - permit listen and/or propagate sample: add sample configuration for differents wikitty usage Added: 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 Modified: 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/WikittyUtil.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.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/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-11-17 17:55:25 UTC (rev 477) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-11-17 17:58:42 UTC (rev 478) @@ -179,6 +179,16 @@ + "org.nuiton.wikitty.jdbc.WikittyStorageJDBC," + "org.nuiton.wikitty.solr.WikittySearchEnginSolr", String.class, false, false), + WIKITTY_SERVER_CONFIG( + "wikitty.service.server.config", + _("Jetty server configuration file name"), + "wikitty-server-config.xml", String.class, false, false), + WIKITTY_SERVER_URL( + "wikitty.service.server.url", + _("Hessian server url, use by server to know path and port to bind" + + " servlet and client to contact server"), + "http://service.codelutin.com/wikitty", String.class, false, false), + WIKITTY_EXPORT_THREADNUMBER( "wikitty.addon.export.threadnumber", _("number of thread used to export task"), @@ -192,10 +202,6 @@ _("url used by client to retrieve export file when job is ended"), "file:///tmp/", String.class, false, false), - WIKITTY_CACHE_LISTEN_REMOTEEVENTS( - "wikitty.service.cache.listenevents", - _("Indique si le service de cache ecoute les events reseaux"), - "false", Boolean.class, false, false), WIKITTY_CACHE_RESTORE_COPIES( "wikitty.service.cache.allwaysRestoreCopies", _("Indique si le cache retourne des copies des objets ou des proxies"), @@ -205,7 +211,11 @@ "wikitty.service.event.propagate", _("Indique si le service d'event propage sur le reseau les evenements"), "false", Boolean.class, false, false), - WIKITTY_EVENT_PROPAGATE_TRANSPORTER( + WIKITTY_EVENT_LISTEN( + "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), @@ -216,25 +226,33 @@ null, String.class, false, false), WIKITTY_EVENT_TRANSPORTER_XMPP_SERVER( - "wiktty.service.event.transporter.xmpp.server", + "wikitty.service.event.transporter.xmpp.server", _("XMPP server to use for XMPP transporter"), "im.codelutin.com", String.class, false, false), WIKITTY_EVENT_TRANSPORTER_XMPP_ROOM( "wikitty.service.event.transporter.xmpp.room", _("Room to use for XMPP transporter"), "test@conference.im.codelutin.com", String.class, false, false), - WIKITTY_EVENT_TRANSPORTER_XMPP_NOTIFICATION_PERSISTENT( - "wikitty.service.event.transporter.xmpp.notification.persistent", - _("If true client try to retrieve missed message during client" - + "stopped. For that room must have history activated"), + + WIKITTY_SLAVE_ASYNC_STORE( + "wikitty.service.slave.async.store", + _("Slave service use asyncrhonous method to send modification" + + " to master"), "false", Boolean.class, false, false), + WIKITTY_SLAVE_MASTER_URL( + "wikitty.service.slave.master.hessian.endpoint", + _("Master url service, where to delegate modification action"), + null, String.class, false, false), + WIKITTY_SLAVE_MASTER_XMPP_SERVER( + "wikitty.service.slave.master.xmpp.server", + _("XMPP server to use for synchronization with master"), + "im.codelutin.com", String.class, false, false), + WIKITTY_SLAVE_MASTER_XMPP_ROOM( + "wikitty.service.slave.master.xmpp.room", + _("Room to use for synchronization with master," + + " this room must have history activated"), + "test@conference.im.codelutin.com", String.class, false, false); - // achitecture client serveur - WIKITTY_SERVER_HESSIAN_ENDPOINT( - "wikitty.server.hessian.endpoint", - _("Hessian serveur URL"), - null, String.class, false, false); - public String key; public String description; public String defaultValue; Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java 2010-11-17 17:55:25 UTC (rev 477) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java 2010-11-17 17:58:42 UTC (rev 478) @@ -4,7 +4,6 @@ import org.nuiton.wikitty.services.WikittyServiceNotifier; import java.util.Arrays; import java.util.List; -import java.util.Properties; import org.apache.commons.lang.ClassUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -28,24 +27,6 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(WikittyServiceFactory.class); - // FIXME REMOVE IT -// /** -// * Construit l'enchainement des differents WikittyService comme decrit -// * dans le fichier de configuration via la cle: -// * wikitty.WikittyService.components -// * <p> -// * Chaque composant de l'enchainement peut avoir lui aussi ses propres -// * composants dans une cle: -// * wikitty.[nom simple de la classe].components * -// * -// * @param props -// * @return -// */ -// static public WikittyService buildWikittyService(Properties props) { -// WikittyConfig config = new WikittyConfig(props); -// return buildWikittyService(config); -// } - /** * Construit l'enchainement des differents WikittyService comme decrit * dans le fichier de configuration via la cle: @@ -84,7 +65,7 @@ ApplicationConfig config, WikittyServiceNotifier notifier) { Class<WikittyServiceNotifier.RemoteNotifierTransporter> transporterClass = (Class<WikittyServiceNotifier.RemoteNotifierTransporter>)config.getOptionAsClass( - WikittyConfig.Option.WIKITTY_EVENT_PROPAGATE_TRANSPORTER.getKey()); + WikittyConfig.Option.WIKITTY_EVENT_TRANSPORTER.getKey()); MutablePicoContainer pico = new TransientPicoContainer(); pico.addComponent(config); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2010-11-17 17:55:25 UTC (rev 477) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2010-11-17 17:58:42 UTC (rev 478) @@ -34,12 +34,17 @@ import org.nuiton.wikitty.services.WikittyServiceEnhanced; import java.lang.reflect.Constructor; import java.math.BigDecimal; +import java.net.Inet4Address; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.NetworkInterface; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Date; +import java.util.Enumeration; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -876,4 +881,51 @@ String metaFieldName = getFQFieldName(actualExtensionName, fieldName); return metaFieldName; } + + /** + * Recherche le meilleur nom a utiliser comme pseudo pour cette machine. + * Un UUID est toujours ajouter en debut, pour potentiellement lancer + * plusieurs application en meme temps sur la meme machine et etre sur que + * le pseudo soit bien unique. + * + * Le pseudo, n'est pas seulement un UUID, pour pouvoir facilement faire + * du debug en entrant dans le channel et voir les ip des machiens connectees + * + * @return + */ + static public String getUniqueLoginName() { + String result = UUID.randomUUID().toString(); + try { + String ipv4 = null; + String ipv6 = null; + for (Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces(); e.hasMoreElements();) { + NetworkInterface netint = e.nextElement(); + + for (Enumeration<InetAddress> a = netint.getInetAddresses(); a.hasMoreElements();) { + InetAddress ip = a.nextElement(); + if (ip instanceof Inet4Address) { + if ((ipv4 == null || "127.0.0.1".equals(ipv4))) { + ipv4 = ip.getHostAddress(); + } + } else if (ip instanceof Inet6Address) { + if (ipv6 == null) { + ipv6 = ip.getHostAddress(); + } + } else { + log.error("Can't get ip from no ipv4 and no ipv6: " + ip); + } + } + } + + if (ipv4 != null) { + result = ipv4 + "=" + result; + } else if (ipv6 != null) { + result = ipv6 + "=" + result; + } + } catch (Exception eee) { + log.error("Can't compute unique name from network interface", eee); + } + return result; + } + } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java 2010-11-17 17:55:25 UTC (rev 477) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java 2010-11-17 17:58:42 UTC (rev 478) @@ -86,8 +86,13 @@ public WikittyServiceCached(ApplicationConfig config, WikittyService ws) { this.ws = ws; cache = new WikittyCache(config); - registerWikittyServiceListener(config); + // add service listener for synchronisation listener for remote event + // register all time, but perhaps Notifier service don't listen for + // remote event and cache can't be notified. But this is normal + // behavior + addWikittyServiceListener(cache, ServiceListenerType.REMOTE); + if (config != null) { // reading configuration and set allwaysRestoreCopies accordingly allwaysRestoreCopies = @@ -119,28 +124,6 @@ return result; } - /** - * Add cache as service listener if configuration request it. - * - * @param props properties (can be null) - */ - protected void registerWikittyServiceListener(ApplicationConfig config) { - if (config != null) { - // add notifier as listener - boolean listenEvents = config.getOptionAsBoolean( - WikittyConfig.Option.WIKITTY_CACHE_LISTEN_REMOTEEVENTS.getKey()); - if (listenEvents) { - // add service listener for synchronisation - // listener des remote event - addWikittyServiceListener(cache, ServiceListenerType.REMOTE); - - if (log.isDebugEnabled()) { - log.debug("Listen remote event on service"); - } - } - } - } - @Override public String login(String login, String password) { return ws.login(login, password); 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-11-17 17:55:25 UTC (rev 477) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceNotifier.java 2010-11-17 17:58:42 UTC (rev 478) @@ -319,7 +319,7 @@ * @param event event to fire */ protected void fireEvent(final WikittyEvent event) { - // ajout d'un thread, car si les listener doit + // ajout d'un thread, car si les listeners doivent // ouvrir une transaction WikittyTransaction // alors que celui qui lance l'event en a une ouverte // cela cause une exception JTA @@ -587,31 +587,15 @@ /** Notifier service reference reference. */ protected WikittyServiceNotifier ws; - /** - * Indique si les objects sont propages (true) vers les autres caches ou - * simplement supprimes des autres caches (false). - * - * @see WikittyServiceCached#WIKITTY_PROPAGATE_CACHE_OPTION - */ - protected boolean propagateEvent = false; protected RemoteNotifierTransporter transporter; public RemoteNotifier(ApplicationConfig config, WikittyServiceNotifier ws) { // can be null according to default constructor if (config != null) { this.ws = ws; - - propagateEvent = config.getOptionAsBoolean( - WikittyConfig.Option.WIKITTY_EVENT_PROPAGATE.getKey()); - if (log.isDebugEnabled()) { - log.debug("Set propagateEvent option to " + propagateEvent); - } - - if (propagateEvent) { - transporter = WikittyServiceFactory.buildTransporter(config, ws); - // add this as listener when transporter is created without error - ws.addWikittyServiceListener(this, WikittyService.ServiceListenerType.ALL); // weak reference - } + transporter = WikittyServiceFactory.buildTransporter(config, ws); + // add this as listener when transporter is created without error + ws.addWikittyServiceListener(this, WikittyService.ServiceListenerType.ALL); // weak reference } if (log.isInfoEnabled()) { if (transporter == null) { @@ -650,13 +634,7 @@ */ @Override public void putWikitty(WikittyEvent event) { - if (propagateEvent) { - sendMessage(event); - } else { - if (log.isDebugEnabled()) { - log.debug("Not master cache, do not propagate putWikitty event"); - } - } + sendMessage(event); } /* @@ -664,13 +642,7 @@ */ @Override public void removeWikitty(WikittyEvent event) { - if (propagateEvent) { - sendMessage(event); - } else { - if (log.isDebugEnabled()) { - log.debug("Not master cache, do not propagate removeWikitty event"); - } - } + sendMessage(event); } /* @@ -678,13 +650,7 @@ */ @Override public void clearWikitty(WikittyEvent event) { - if (propagateEvent) { - sendMessage(event); - } else { - if (log.isDebugEnabled()) { - log.debug("Not master cache, do not propagate clearWikitty event"); - } - } + sendMessage(event); } /* @@ -692,24 +658,12 @@ */ @Override public void putExtension(WikittyEvent event) { - if (propagateEvent) { - sendMessage(event); - } else { - if (log.isDebugEnabled()) { - log.debug("Not master cache, do not propagate putExtension event"); - } - } + sendMessage(event); } @Override public void removeExtension(WikittyEvent event) { - if (propagateEvent) { - sendMessage(event); - } else { - if (log.isDebugEnabled()) { - log.debug("Not master cache, do not propagate putExtension event"); - } - } + sendMessage(event); } /* @@ -717,13 +671,7 @@ */ @Override public void clearExtension(WikittyEvent event) { - if (propagateEvent) { - sendMessage(event); - } else { - if (log.isDebugEnabled()) { - log.debug("Not master cache, do not propagate clearExtension event"); - } - } + sendMessage(event); } } } 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-11-17 17:55:25 UTC (rev 477) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/XMPPNotifierTransporter.java 2010-11-17 17:58:42 UTC (rev 478) @@ -46,6 +46,7 @@ import org.nuiton.util.ApplicationConfig; import org.nuiton.wikitty.WikittyConfig; import org.nuiton.wikitty.WikittyException; +import org.nuiton.wikitty.WikittyUtil; /** * Transporter d'event via xmpp. Pour que ca fonctionne il faut un serveur @@ -72,13 +73,14 @@ static final public String PROPERTY_EVENT_NAME = "wikitty-event"; + /** Indique si les events sont propages (true) via le transporter */ + protected boolean propagateEvent = false; + /** Indique si les events sont ecoutes (true) via le transporter */ + protected boolean listenEvent = false; + /** Notifier service reference reference. */ protected WikittyServiceNotifier ws; - /** if persistent is true use Chat otherwize use MUC. Chat permit to - received event missed after deconnection */ - protected boolean persistent = false; - // Keep room addresse and pseudo to verify that messages event are not send by us protected String room; protected String pseudo; @@ -92,60 +94,72 @@ * @param props */ public XMPPNotifierTransporter(ApplicationConfig config, WikittyServiceNotifier ws) { - this.ws = ws; + propagateEvent = config.getOptionAsBoolean(WikittyConfig.Option. + WIKITTY_EVENT_PROPAGATE.getKey()); + listenEvent = config.getOptionAsBoolean(WikittyConfig.Option. + WIKITTY_EVENT_LISTEN.getKey()); + + setWikittyServiceNotifier(ws); initXMPP(config); } + public WikittyServiceNotifier getWikittyServiceNotifier() { + return ws; + } + + public void setWikittyServiceNotifier(WikittyServiceNotifier ws) { + this.ws = ws; + } + /** * Si persistent est vrai alors il faut toujours utilise le meme user id * * @param props */ protected void initXMPP(ApplicationConfig config) { - persistent = config.getOptionAsBoolean( - WikittyConfig.Option.WIKITTY_EVENT_TRANSPORTER_XMPP_NOTIFICATION_PERSISTENT.getKey()); - String server = config.getOption( - WikittyConfig.Option.WIKITTY_EVENT_TRANSPORTER_XMPP_SERVER.getKey()); + // on verifie qu'on a besoin reellement de faire l'init + if (propagateEvent || listenEvent) { + String server = config.getOption( + WikittyConfig.Option.WIKITTY_EVENT_TRANSPORTER_XMPP_SERVER.getKey()); - // Keep them to verify that is not us notifications - room = config.getOption(WikittyConfig.Option.WIKITTY_EVENT_TRANSPORTER_XMPP_ROOM.getKey()); - pseudo = getUniqueLoginName(); - try { - if (log.isInfoEnabled()) { - log.info("Try to connect to xmpp serveur " + server + - " with pseudo " + pseudo + " in room " + room + - " persistent " + persistent); - } - connection = new XMPPConnection(server); - connection.connect(); - connection.loginAnonymously(); + // Keep them to verify that is not us notifications + room = config.getOption(WikittyConfig.Option. + WIKITTY_EVENT_TRANSPORTER_XMPP_ROOM.getKey()); + pseudo = WikittyUtil.getUniqueLoginName(); + try { + if (log.isInfoEnabled()) { + log.info("Try to connect to xmpp serveur " + server + + " with pseudo " + pseudo + " in room " + room); + } + connection = new XMPPConnection(server); + connection.connect(); + connection.loginAnonymously(); - DiscussionHistory history = new DiscussionHistory(); - if (persistent) { - // FIXME poussin 20101113 compute amount of log history to retrieve - // MUC must be archived - Date date = new Date(); - history.setSince(date); - } else { + DiscussionHistory history = new DiscussionHistory(); history.setMaxChars(0); - } - // connection to the volatile room - muc = new MultiUserChat(connection, room); - muc.join(pseudo, "", history, 4000); - muc.addMessageListener(this); - } catch (Exception eee) { - throw new WikittyException("Can't connect to xmpp serveur", eee); + // connection to the volatile room + muc = new MultiUserChat(connection, room); + muc.join(pseudo, "", history, 4000); + + if (listenEvent) { + muc.addMessageListener(this); + } + } catch (Exception eee) { + throw new WikittyException("Can't connect to xmpp serveur", eee); + } } } @Override public void sendMessage(WikittyEvent event) throws Exception { - Message message = muc.createMessage(); - message.setBody(event.getType().toString()); - message.setProperty(PROPERTY_EVENT_NAME, event); + if (propagateEvent) { + Message message = muc.createMessage(); + message.setBody(event.getType().toString()); + message.setProperty(PROPERTY_EVENT_NAME, event); - muc.sendMessage(message); + muc.sendMessage(message); + } } /** @@ -171,50 +185,4 @@ } } - /** - * Recherche le meilleur nom a utiliser comme pseudo pour cette machine. - * Un UUID est toujours ajouter en debut, pour potentiellement lancer - * plusieurs application en meme temps sur la meme machine et etre sur que - * le pseudo soit bien unique. - * - * Le pseudo, n'est pas seulement un UUID, pour pouvoir facilement faire - * du debug en entrant dans le channel et voir les ip des machiens connectees - * - * @return - */ - static public String getUniqueLoginName() { - String result = UUID.randomUUID().toString(); - try { - String ipv4 = null; - String ipv6 = null; - for (Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces(); e.hasMoreElements();) { - NetworkInterface netint = e.nextElement(); - - for (Enumeration<InetAddress> a = netint.getInetAddresses(); a.hasMoreElements();) { - InetAddress ip = a.nextElement(); - if (ip instanceof Inet4Address) { - if ((ipv4 == null || "127.0.0.1".equals(ipv4))) { - ipv4 = ip.getHostAddress(); - } - } else if (ip instanceof Inet6Address) { - if (ipv6 == null) { - ipv6 = ip.getHostAddress(); - } - } else { - log.error("Can't get ip from no ipv4 and no ipv6: " + ip); - } - } - } - - if (ipv4 != null) { - result = ipv4 + "=" + result; - } else if (ipv6 != null) { - result = ipv6 + "=" + result; - } - } catch (Exception eee) { - log.error("Can't compute unique name from network interface", eee); - } - return result; - } - } Added: trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties =================================================================== --- trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties (rev 0) +++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties 2010-11-17 17:58:42 UTC (rev 478) @@ -0,0 +1,11 @@ +wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceHessianClient,\ +org.nuiton.wikitty.services.WikittyServiceNotifier,\ +org.nuiton.wikitty.services.WikittyServiceCached,\ +org.nuiton.wikitty.services.WikittyServiceSecurity +wikitty.service.cache.allwaysRestoreCopies=false +wikitty.service.event.propagate=false +wikitty.service.event.listen=true +wikitty.service.event.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 Added: trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties =================================================================== --- trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties (rev 0) +++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties 2010-11-17 17:58:42 UTC (rev 478) @@ -0,0 +1,23 @@ +wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties +wikitty.storage.jdbc.driver=org.h2.Driver +wikitty.storage.jdbc.host=jdbc:h2:mem:db +wikitty.storage.jdbc.login=sa +wikitty.storage.jdbc.password= +wikitty.storage.jdbc.xadatasource=org.h2.jdbcx.JdbcDataSource +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.WikittyServiceImpl,\ +org.nuiton.wikitty.services.WikittyServiceNotifier,\ +org.nuiton.wikitty.services.WikittyServiceCached,\ +org.nuiton.wikitty.services.WikittyServiceSecurity +wikitty.WikittyServiceImpl.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\ +org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\ +org.nuiton.wikitty.solr.WikittySearchEnginSolr +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 Added: trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties =================================================================== --- trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties (rev 0) +++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties 2010-11-17 17:58:42 UTC (rev 478) @@ -0,0 +1,34 @@ +wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties +wikitty.storage.jdbc.driver=org.h2.Driver +wikitty.storage.jdbc.host=jdbc:h2:file:/var/lib/wikitty/data/db +wikitty.storage.jdbc.login=sa +wikitty.storage.jdbc.password= +wikitty.storage.jdbc.xadatasource=org.h2.jdbcx.JdbcDataSource +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.data=/var/lib/wikitty/data/solr +wikitty.searchengine.solr.directory.factory=solr.StandardDirectoryFactory +wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceImpl,\ +org.nuiton.wikitty.services.WikittyServiceSlave,\ +org.nuiton.wikitty.services.WikittyServiceNotifier,\ +org.nuiton.wikitty.services.WikittyServiceCached,\ +org.nuiton.wikitty.services.WikittyServiceSecurity,\ +org.nuiton.wikitty.services.WikittyServiceHessianServer +wikitty.WikittyServiceImpl.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\ +org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\ +org.nuiton.wikitty.solr.WikittySearchEnginSolr +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.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 +wikitty.service.slave.master.url=http://wikitty.codelutin.com/services +wikitty.service.slave.master.xmpp.server=im.codelutin.com +wikitty.service.slave.master.xmpp.room=master@conference.im.codelutin.com +wikitty.addon.export.threadnumber=1 +wikitty.addon.export.directory=/tmp/wikitty +wikitty.addon.export.publicurl=file:///tmp/wikitty/ Added: trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties =================================================================== --- trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties (rev 0) +++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties 2010-11-17 17:58:42 UTC (rev 478) @@ -0,0 +1,30 @@ +wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties +wikitty.storage.jdbc.driver=org.h2.Driver +wikitty.storage.jdbc.host=jdbc:h2:file:/var/lib/wikitty/data/db +wikitty.storage.jdbc.login=sa +wikitty.storage.jdbc.password= +wikitty.storage.jdbc.xadatasource=org.h2.jdbcx.JdbcDataSource +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.data=/var/lib/wikitty/data/solr +wikitty.searchengine.solr.directory.factory=solr.StandardDirectoryFactory +wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceImpl,\ +org.nuiton.wikitty.services.WikittyServiceNotifier,\ +org.nuiton.wikitty.services.WikittyServiceCached,\ +org.nuiton.wikitty.services.WikittyServiceSecurity,\ +org.nuiton.wikitty.services.WikittyServiceHessianServer +wikitty.WikittyServiceImpl.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\ +org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\ +org.nuiton.wikitty.solr.WikittySearchEnginSolr +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.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 +wikitty.addon.export.directory=/tmp/wikitty +wikitty.addon.export.publicurl=file:///tmp/wikitty 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-11-17 17:55:25 UTC (rev 477) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/XMPPNotificationTest.java 2010-11-17 17:58:42 UTC (rev 478) @@ -26,7 +26,6 @@ import java.util.Date; -import java.util.Properties; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jivesoftware.smack.PacketListener; @@ -36,6 +35,7 @@ import org.jivesoftware.smackx.muc.MultiUserChat; import org.junit.Test; import org.nuiton.wikitty.WikittyConfig; +import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.services.WikittyEvent; import org.nuiton.wikitty.services.XMPPNotifierTransporter; @@ -76,7 +76,7 @@ connection.loginAnonymously(); MultiUserChat muc = new MultiUserChat(connection, room); - String pseudo = XMPPNotifierTransporter.getUniqueLoginName(); + String pseudo = WikittyUtil.getUniqueLoginName(); System.out.println("pseudo: " + pseudo); DiscussionHistory history = new DiscussionHistory();
participants (1)
-
bpoussin@users.nuiton.org