Author: ngn
Date: Wed Mar 23 10:25:08 2011
New Revision: 1084528
URL: http://svn.apache.org/viewvc?rev=1084528&view=rev
Log:
Add support for adding modules to XMPPServer before start() is called
(VYSPER-279)
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java?rev=1084528&r1=1084527&r2=1084528&view=diff
==============================================================================
---
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
(original)
+++
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
Wed Mar 23 10:25:08 2011
@@ -89,13 +89,6 @@ public class ServerMain {
server.setTLSCertificateInfo(new
File("src/main/config/bogus_mina_tls.cert"), "boguspw");
- try {
- server.start();
- System.out.println("vysper server is running...");
- } catch (Exception e) {
- e.printStackTrace();
- }
-
server.addModule(new SoftwareVersionModule());
server.addModule(new EntityTimeModule());
server.addModule(new VcardTempModule());
@@ -113,6 +106,13 @@ public class ServerMain {
server.addModule(module);
}
}
+
+ try {
+ server.start();
+ System.out.println("vysper server is running...");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
private static List<Module> createModuleInstances(String[]
moduleClassNames) {
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java?rev=1084528&r1=1084527&r2=1084528&view=diff
==============================================================================
---
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
(original)
+++
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
Wed Mar 23 10:25:08 2011
@@ -73,6 +73,8 @@ public class XMPPServer {
private String tlsCertificatePassword;
private final List<Endpoint> endpoints = new ArrayList<Endpoint>();
+
+ private final List<Module> initialModules = new ArrayList<Module>();
public XMPPServer(String domain) {
@@ -80,6 +82,10 @@ public class XMPPServer {
// default list of SASL mechanisms
saslMechanisms.add(new Plain());
+
+ // add default modules
+ initialModules.add(new ServiceDiscoveryModule());
+ initialModules.add(new RosterModule());
}
public void setSASLMechanisms(List<SASLMechanism> validMechanisms) {
@@ -137,8 +143,9 @@ public class XMPPServer {
serverRuntimeContext.setStorageProviderRegistry(storageProviderRegistry);
serverRuntimeContext.setTlsContextFactory(tlsContextFactory);
- serverRuntimeContext.addModule(new ServiceDiscoveryModule());
- serverRuntimeContext.addModule(new RosterModule());
+ for(Module module : initialModules) {
+ serverRuntimeContext.addModule(module);
+ }
stanzaRelayBroker.setServerRuntimeContext(serverRuntimeContext);
internalStanzaRelay.setServerRuntimeContext(serverRuntimeContext);
@@ -169,7 +176,11 @@ public class XMPPServer {
}
public void addModule(Module module) {
- serverRuntimeContext.addModule(module);
+ if(serverRuntimeContext != null) {
+ serverRuntimeContext.addModule(module);
+ } else {
+ initialModules.add(module);
+ }
}
private void addCoreDictionaries(List<HandlerDictionary> dictionaries) {