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 {


Reply via email to