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();
