You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2010/08/28 10:53:33 UTC

svn commit: r990326 - in /mina/vysper/trunk/server/core/src: main/java/org/apache/vysper/xmpp/delivery/ main/java/org/apache/vysper/xmpp/delivery/inbound/ main/java/org/apache/vysper/xmpp/modules/core/base/handler/ main/java/org/apache/vysper/xmpp/modu...

Author: ngn
Date: Sat Aug 28 08:53:33 2010
New Revision: 990326

URL: http://svn.apache.org/viewvc?rev=990326&view=rev
Log:
Some additional refactorings based on EntityUtils (VYSPER-246)

Added:
    mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/addressing/EntityUtilsTestCase.java
Modified:
    mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java
    mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java
    mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/RelayingIQHandler.java
    mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoInfoIQHandler.java
    mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java
    mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java
    mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerRuntimeContext.java

Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java?rev=990326&r1=990325&r2=990326&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java Sat Aug 28 08:53:33 2010
@@ -76,11 +76,9 @@ public class StanzaRelayBroker implement
             //return;
         }
 
-        String domain = receiver.getDomain();
-
         boolean relayToExternal = serverRuntimeContext.getServerFeatures().isRelayingToFederationServers();
 
-        if (domain.endsWith(serverRuntimeContext.getServerEnitity().getDomain())) {
+        if (EntityUtils.isAddressingServerComponent(receiver, serverRuntimeContext.getServerEnitity()) || toComponent) {
             internalRelay.relay(receiver, stanza, deliveryFailureStrategy);
         } else {
             if (!relayToExternal)

Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java?rev=990326&r1=990325&r2=990326&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java Sat Aug 28 08:53:33 2010
@@ -179,7 +179,7 @@ public class DeliveringInboundStanzaRela
                         return new RelayResult(new ServiceNotAvailableException("unsupported domain " + receiverDomain));
                     }
 
-                    StanzaProcessor processor = serverRuntimeContext.getComponentStanzaProcessor(receiverDomain);
+                    StanzaProcessor processor = serverRuntimeContext.getComponentStanzaProcessor(receiver);
                     if (processor == null) {
                         return new RelayResult(new ServiceNotAvailableException(
                                 "cannot retrieve component stanza processor for" + receiverDomain));

Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/RelayingIQHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/RelayingIQHandler.java?rev=990326&r1=990325&r2=990326&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/RelayingIQHandler.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/RelayingIQHandler.java Sat Aug 28 08:53:33 2010
@@ -90,7 +90,7 @@ public class RelayingIQHandler extends I
                 serverRuntimeContext.getStanzaRelay().relay(to, forwardedStanza,
                         new ReturnErrorToSenderFailureStrategy(serverRuntimeContext.getStanzaRelay()));
             } catch (DeliveryException e) {
-                final Logger logger = LoggerFactory.getLogger(RelayingIQHandler.class);
+                // TODO how to handle this exception?
             }
         } else {
             // write inbound stanza to the user

Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoInfoIQHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoInfoIQHandler.java?rev=990326&r1=990325&r2=990326&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoInfoIQHandler.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoInfoIQHandler.java Sat Aug 28 08:53:33 2010
@@ -95,7 +95,7 @@ public class DiscoInfoIQHandler extends 
         Entity serviceEntity = serverRuntimeContext.getServerEnitity();
         if (to == null || to.equals(serviceEntity)) {
             isServerInfoRequest = true; // this can only be meant to query the server
-        } else if (serverRuntimeContext.getComponentStanzaProcessor(to.getDomain()) != null) {
+        } else if (serverRuntimeContext.getComponentStanzaProcessor(to) != null) {
             isComponentInfoRequest = true; // this is a query to a component
         } else if (!to.isNodeSet()) {
             isServerInfoRequest = serviceEntity.equals(to);

Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java?rev=990326&r1=990325&r2=990326&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java Sat Aug 28 08:53:33 2010
@@ -89,7 +89,7 @@ public class DiscoItemIQHandler extends 
             isServerInfoRequest = true; // this can only be meant to query the server
         } else if (!to.isNodeSet()) {
             isServerInfoRequest = serverRuntimeContext.getServerEnitity().equals(to);
-            isComponentInfoRequest = serverRuntimeContext.getComponentStanzaProcessor(to.getDomain()) != null;
+            isComponentInfoRequest = serverRuntimeContext.getComponentStanzaProcessor(to) != null;
             if (!isServerInfoRequest && !isComponentInfoRequest) {
                 return ServerErrorResponses.getInstance().getStanzaError(StanzaErrorCondition.ITEM_NOT_FOUND, stanza,
                         StanzaErrorType.CANCEL,

Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java?rev=990326&r1=990325&r2=990326&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java Sat Aug 28 08:53:33 2010
@@ -30,6 +30,7 @@ import org.apache.vysper.storage.OpenSto
 import org.apache.vysper.storage.StorageProvider;
 import org.apache.vysper.storage.StorageProviderRegistry;
 import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.addressing.EntityUtils;
 import org.apache.vysper.xmpp.authorization.UserAuthorization;
 import org.apache.vysper.xmpp.cryptography.TLSContextFactory;
 import org.apache.vysper.xmpp.delivery.StanzaRelay;
@@ -339,11 +340,12 @@ public class DefaultServerRuntimeContext
         componentMap.put(component.getSubdomain(), component);
     }
 
-    public StanzaProcessor getComponentStanzaProcessor(String domain) {
+    public StanzaProcessor getComponentStanzaProcessor(Entity entity) {
         String serverDomain = getServerEnitity().getDomain();
-        if (!domain.endsWith(serverDomain)) {
+        if (!EntityUtils.isAddressingServerComponent(entity, getServerEnitity())) {
             return null;
         }
+        String domain = entity.getDomain();
         String subdomain = domain.replace("." + serverDomain, "");
         Component component = componentMap.get(subdomain);
         if (component == null)

Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerRuntimeContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerRuntimeContext.java?rev=990326&r1=990325&r2=990326&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerRuntimeContext.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerRuntimeContext.java Sat Aug 28 08:53:33 2010
@@ -70,5 +70,5 @@ public interface ServerRuntimeContext {
 
     void registerComponent(Component component);
 
-    StanzaProcessor getComponentStanzaProcessor(String domain);
+    StanzaProcessor getComponentStanzaProcessor(Entity entity);
 }

Added: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/addressing/EntityUtilsTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/addressing/EntityUtilsTestCase.java?rev=990326&view=auto
==============================================================================
--- mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/addressing/EntityUtilsTestCase.java (added)
+++ mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/addressing/EntityUtilsTestCase.java Sat Aug 28 08:53:33 2010
@@ -0,0 +1,64 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ *
+ */
+package org.apache.vysper.xmpp.addressing;
+
+import junit.framework.TestCase;
+
+public class EntityUtilsTestCase extends TestCase {
+
+    private Entity server = EntityImpl.parseUnchecked("vysper.org");
+    
+    public void testIsComponent() {
+        assertAddressingServerComponent("foo.vysper.org");
+        assertAddressingServerComponent("bar@foo.vysper.org");
+        assertAddressingServerComponent("bar@foo.vysper.org/xyz");
+        assertAddressingServerComponent("bar.foo.vysper.org");
+        assertNotAddressingServerComponent("vysper.org");
+        assertNotAddressingServerComponent("foovysper.org");
+        assertNotAddressingServerComponent("foo.org");
+    }
+
+    public void testIsInternal() {
+        assertAddressingServer("vysper.org");
+        assertNotAddressingServer("foo.vysper.org");
+        assertAddressingServer("bar@vysper.org");
+        assertAddressingServer("bar@vysper.org/xyz");
+        assertNotAddressingServer("foovysper.org");
+        assertNotAddressingServer("foo.org");
+    }
+
+    
+    private void assertAddressingServerComponent(String entity) {
+        assertTrue(EntityUtils.isAddressingServerComponent(EntityImpl.parseUnchecked(entity), server));
+    }
+
+    private void assertNotAddressingServerComponent(String entity) {
+        assertFalse(EntityUtils.isAddressingServerComponent(EntityImpl.parseUnchecked(entity), server));
+    }
+
+    private void assertAddressingServer(String entity) {
+        assertTrue(EntityUtils.isAddressingServer(EntityImpl.parseUnchecked(entity), server));
+    }
+
+    private void assertNotAddressingServer(String entity) {
+        assertFalse(EntityUtils.isAddressingServer(EntityImpl.parseUnchecked(entity), server));
+    }
+
+}



Re: svn commit: r990326 - in /mina/vysper/trunk/server/core/src: main/java/org/apache/vysper/xmpp/delivery/ main/java/org/apache/vysper/xmpp/delivery/inbound/ main/java/org/apache/vysper/xmpp/modules/core/base/handler/ main/java/org/apache/vysper/xmpp/modu...

Posted by Bernd Fondermann <bf...@brainlounge.de>.
ngn@apache.org wrote:
> Author: ngn
> Date: Sat Aug 28 08:53:33 2010
> New Revision: 990326
> 
> URL: http://svn.apache.org/viewvc?rev=990326&view=rev
> Log:
> Some additional refactorings based on EntityUtils (VYSPER-246)
> 
> Added:
>     mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/addressing/EntityUtilsTestCase.java
> Modified:
>     mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java
> 
> Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java
> URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java?rev=990326&r1=990325&r2=990326&view=diff
> ==============================================================================
> --- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java (original)
> +++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java Sat Aug 28 08:53:33 2010
> @@ -76,11 +76,9 @@ public class StanzaRelayBroker implement
>              //return;
>          }
>  
> -        String domain = receiver.getDomain();
> -
>          boolean relayToExternal = serverRuntimeContext.getServerFeatures().isRelayingToFederationServers();
>  
> -        if (domain.endsWith(serverRuntimeContext.getServerEnitity().getDomain())) {
> +        if (EntityUtils.isAddressingServerComponent(receiver, serverRuntimeContext.getServerEnitity()) || toComponent) {
>              internalRelay.relay(receiver, stanza, deliveryFailureStrategy);
>          } else {
>              if (!relayToExternal)

I don't think the last change is equivalent.

domain.endsWith(serverRuntimeContext.getServerEnitity().getDomain()
is true for domain values of "chat.vysper.org" and "vysper.org"
while EntityUtils.isAddressingServerComponent(receiver, ...getDomain())
is true for "chat.vysper.org" but false for "vysper.org"

I didn't change this line in the first place, but should have commmented
it instead.

I'm +1 to revert, WDYT?

  Bernd


Re: svn commit: r990326 - in /mina/vysper/trunk/server/core/src: main/java/org/apache/vysper/xmpp/delivery/ main/java/org/apache/vysper/xmpp/delivery/inbound/ main/java/org/apache/vysper/xmpp/modules/core/base/handler/ main/java/org/apache/vysper/xmpp/modu...

Posted by Bernd Fondermann <bf...@brainlounge.de>.
ngn@apache.org wrote:
> Author: ngn
> Date: Sat Aug 28 08:53:33 2010
> New Revision: 990326
> 
> URL: http://svn.apache.org/viewvc?rev=990326&view=rev
> Log:
> Some additional refactorings based on EntityUtils (VYSPER-246)
> 
> Added:
>     mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/addressing/EntityUtilsTestCase.java
> Modified:
>     mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java
> 
> Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java
> URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java?rev=990326&r1=990325&r2=990326&view=diff
> ==============================================================================
> --- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java (original)
> +++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java Sat Aug 28 08:53:33 2010
> @@ -76,11 +76,9 @@ public class StanzaRelayBroker implement
>              //return;
>          }
>  
> -        String domain = receiver.getDomain();
> -
>          boolean relayToExternal = serverRuntimeContext.getServerFeatures().isRelayingToFederationServers();
>  
> -        if (domain.endsWith(serverRuntimeContext.getServerEnitity().getDomain())) {
> +        if (EntityUtils.isAddressingServerComponent(receiver, serverRuntimeContext.getServerEnitity()) || toComponent) {
>              internalRelay.relay(receiver, stanza, deliveryFailureStrategy);
>          } else {
>              if (!relayToExternal)

ok, fixed already in r990362, looks fine.

  Bernd