VYSPER-343: enabling federation now possible in spring
diff --git a/server/core/src/main/java/org/apache/vysper/spring/SpringCompatibleXMPPServer.java b/server/core/src/main/java/org/apache/vysper/spring/SpringCompatibleXMPPServer.java
index e191e12..e3aba16 100644
--- a/server/core/src/main/java/org/apache/vysper/spring/SpringCompatibleXMPPServer.java
+++ b/server/core/src/main/java/org/apache/vysper/spring/SpringCompatibleXMPPServer.java
@@ -27,6 +27,7 @@
import org.apache.vysper.xmpp.modules.Module;
import org.apache.vysper.xmpp.server.Endpoint;
+import org.apache.vysper.xmpp.server.ServerFeatures;
import org.apache.vysper.xmpp.server.XMPPServer;
import org.springframework.core.io.Resource;
@@ -41,6 +42,8 @@
protected final List<Module> listOfModules = new ArrayList<Module>();
protected File certificateFile = null;
protected String certificatePassword = null;
+
+ protected boolean enableFederationFeature = false;
public SpringCompatibleXMPPServer(String domain) {
super(domain);
@@ -63,7 +66,18 @@
public void setModules(Collection<Module> modules) {
listOfModules.addAll(modules);
}
-
+
+ public void setEnableFederationFeature(boolean enableFederationFeature) {
+ this.enableFederationFeature = enableFederationFeature;
+ }
+
+ @Override
+ protected ServerFeatures createServerFeatures() {
+ final ServerFeatures serverFeatures = super.createServerFeatures();
+ serverFeatures.setRelayingToFederationServers(enableFederationFeature);
+ return serverFeatures;
+ }
+
public void init() throws Exception {
setTLSCertificateInfo(certificateFile, certificatePassword);
start();
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java b/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
index e8f27e4..1cec6dd 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
@@ -166,7 +166,7 @@
stanzaRelayBroker.setInternalRelay(internalStanzaRelay);
stanzaRelayBroker.setExternalRelay(externalStanzaRelay);
- ServerFeatures serverFeatures = new ServerFeatures();
+ ServerFeatures serverFeatures = createServerFeatures();
serverFeatures.setAuthenticationMethods(saslMechanisms);
serverRuntimeContext = new DefaultServerRuntimeContext(serverEntity, stanzaRelayBroker, serverFeatures,
@@ -193,6 +193,10 @@
}
}
+ protected ServerFeatures createServerFeatures() {
+ return new ServerFeatures();
+ }
+
public void stop() {
for (Endpoint endpoint : endpoints) {
endpoint.stop();