You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by be...@apache.org on 2009/08/24 15:43:23 UTC

svn commit: r807212 - in /mina/sandbox/vysper/trunk/server/core/src: main/java/org/apache/vysper/xmpp/delivery/inbound/ main/java/org/apache/vysper/xmpp/server/ test/java/org/apache/vysper/xmpp/delivery/inbound/

Author: berndf
Date: Mon Aug 24 13:43:22 2009
New Revision: 807212

URL: http://svn.apache.org/viewvc?rev=807212&view=rev
Log:
VYSPER-176: prepare routing inbound stanzas to a component

Modified:
    mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java
    mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
    mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java

Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java?rev=807212&r1=807211&r2=807212&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java Mon Aug 24 13:43:22 2009
@@ -21,6 +21,7 @@
 
 import org.apache.vysper.storage.StorageProviderRegistry;
 import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.addressing.EntityImpl;
 import org.apache.vysper.xmpp.authorization.AccountManagement;
 import org.apache.vysper.xmpp.protocol.SessionStateHolder;
 import org.apache.vysper.xmpp.protocol.StanzaHandler;
@@ -75,12 +76,14 @@
     protected ExecutorService executor;
     protected AccountManagement accountVerification;
     protected OfflineStanzaReceiver offlineStanzaReceiver = null;
+    protected Entity serverEntity;
 
-    public DeliveringInboundStanzaRelay(ResourceRegistry resourceRegistry, StorageProviderRegistry storageProviderRegistry) {
-        this(resourceRegistry, (AccountManagement)storageProviderRegistry.retrieve(AccountManagement.class));
+    public DeliveringInboundStanzaRelay(Entity serverEntity, ResourceRegistry resourceRegistry, StorageProviderRegistry storageProviderRegistry) {
+        this(serverEntity, resourceRegistry, (AccountManagement)storageProviderRegistry.retrieve(AccountManagement.class));
     }
     
-    public DeliveringInboundStanzaRelay(ResourceRegistry resourceRegistry, AccountManagement accountVerification) {
+    public DeliveringInboundStanzaRelay(Entity serverEntity, ResourceRegistry resourceRegistry, AccountManagement accountManagement) {
+        this.serverEntity = serverEntity;
         this.resourceRegistry = resourceRegistry;
         this.accountVerification = accountVerification;
         int coreThreadCount = 10;
@@ -143,6 +146,19 @@
         @SpecCompliant(spec="draft-ietf-xmpp-3921bis-00", section="8.", status= SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage = SpecCompliant.ComplianceCoverage.COMPLETE)
         protected RelayResult deliver() {
             try {
+                String receiverDomain = receiver.getDomain();
+                if (receiverDomain != null && !receiverDomain.equals(serverEntity.getDomain())) {
+                    if (!receiverDomain.endsWith("." + serverEntity.getDomain())) {
+                        return new RelayResult(new ServiceNotAvailableException("unsupported domain " + receiverDomain));
+                    }
+                    
+                    // TODO get components runtime context
+
+                    // pass through to component all stanzas like component.vysper.org for server domain vysper.org
+                    // TODO INBOUND_STANZA_PROTOCOL_WORKER.processStanza(null, sessionStateHolder, stanza, stanzaHandler);
+                    throw new RuntimeException("component delivery not implemented");
+                }
+
                 if (receiver.isResourceSet()) {
                     return deliverToFullJID();
                 } else {

Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java?rev=807212&r1=807211&r2=807212&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java Mon Aug 24 13:43:22 2009
@@ -99,8 +99,10 @@
 
         ResourceRegistry resourceRegistry = new ResourceRegistry();
 
+        EntityImpl serverEntity = new EntityImpl(null, serverDomain, null);
+
         AccountManagement accountManagement = (AccountManagement) storageProviderRegistry.retrieve(AccountManagement.class);
-        DeliveringInboundStanzaRelay internalStanzaRelay = new DeliveringInboundStanzaRelay(resourceRegistry, accountManagement);
+        DeliveringInboundStanzaRelay internalStanzaRelay = new DeliveringInboundStanzaRelay(serverEntity, resourceRegistry, accountManagement);
         RecordingStanzaRelay externalStanzaRelay = new RecordingStanzaRelay();
 
         StanzaRelayBroker stanzaRelayBroker = new StanzaRelayBroker();
@@ -110,8 +112,6 @@
         ServerFeatures serverFeatures = new ServerFeatures();
         serverFeatures.setAuthenticationMethods(saslMechanisms);
 
-        EntityImpl serverEntity = new EntityImpl(null, serverDomain, null);
-
         serverRuntimeContext = new DefaultServerRuntimeContext(serverEntity, stanzaRelayBroker, serverFeatures, dictionaries, resourceRegistry);
         serverRuntimeContext.setStorageProviderRegistry(storageProviderRegistry);
         serverRuntimeContext.setTlsContextFactory(tlsContextFactory);

Modified: mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java?rev=807212&r1=807211&r2=807212&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java Mon Aug 24 13:43:22 2009
@@ -57,8 +57,8 @@
     protected void setUp() throws Exception {
         super.setUp();
 
-        accountVerification = new AccountVerificationMock(); 
-        stanzaRelay = new DeliveringInboundStanzaRelay(resourceRegistry, accountVerification);
+        accountVerification = new AccountVerificationMock();
+        stanzaRelay = new DeliveringInboundStanzaRelay(EntityImpl.parse("vysper.org"), resourceRegistry, accountVerification);
     }
 
     public void testSimpleRelay() throws EntityFormatException, XMLSemanticError, DeliveryException {