You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by be...@apache.org on 2009/03/25 16:48:59 UTC

svn commit: r758315 - in /labs/vysper/src/main/java/org/apache/vysper/xmpp/modules: core/im/handler/PresenceSubscriptionHandler.java roster/RosterModule.java

Author: berndf
Date: Wed Mar 25 15:48:54 2009
New Revision: 758315

URL: http://svn.apache.org/viewvc?rev=758315&view=rev
Log:
[vysper] LABS-125 try to fix JCR roster persistence (completed)

Modified:
    labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubscriptionHandler.java
    labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/RosterModule.java

Modified: labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubscriptionHandler.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubscriptionHandler.java?rev=758315&r1=758314&r2=758315&view=diff
==============================================================================
--- labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubscriptionHandler.java (original)
+++ labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubscriptionHandler.java Wed Mar 25 15:48:54 2009
@@ -17,16 +17,17 @@
 
 package org.apache.vysper.xmpp.modules.core.im.handler;
 
-import org.apache.vysper.compliance.SpecCompliant;
 import org.apache.vysper.compliance.SpecCompliance;
-import static org.apache.vysper.compliance.SpecCompliant.ComplianceStatus.*;
+import org.apache.vysper.compliance.SpecCompliant;
+import static org.apache.vysper.compliance.SpecCompliant.ComplianceStatus.IN_PROGRESS;
+import static org.apache.vysper.compliance.SpecCompliant.ComplianceStatus.NOT_STARTED;
 import org.apache.vysper.xmpp.addressing.Entity;
 import org.apache.vysper.xmpp.addressing.EntityImpl;
 import org.apache.vysper.xmpp.delivery.DeliveryException;
 import org.apache.vysper.xmpp.delivery.StanzaRelay;
 import org.apache.vysper.xmpp.delivery.failure.IgnoreFailureStrategy;
-import static org.apache.vysper.xmpp.modules.roster.AskSubscriptionType.ASK_SUBSCRIBE;
 import static org.apache.vysper.xmpp.modules.roster.AskSubscriptionType.ASK_SUBSCRIBED;
+import static org.apache.vysper.xmpp.modules.roster.AskSubscriptionType.ASK_SUBSCRIBE;
 import org.apache.vysper.xmpp.modules.roster.RosterException;
 import org.apache.vysper.xmpp.modules.roster.RosterItem;
 import org.apache.vysper.xmpp.modules.roster.RosterStanzaUtils;
@@ -51,6 +52,8 @@
 
 /**
  * handling presence stanzas of type subscription
+ * 
+ * TODO: review all the printStackTraces and throws and turn them into logs or stanza errors 
  */
 public class PresenceSubscriptionHandler extends AbstractPresenceSpecializedHandler {
 
@@ -324,18 +327,19 @@
         RosterItem rosterItem = null;
         try {
             rosterItem = getExistingOrNewRosterItem(rosterManager, userBareJid, contactBareJid);
+
+            RosterSubscriptionMutator.Result result = RosterSubscriptionMutator.getInstance().add(rosterItem, FROM);
+            if (result != OK) {
+                // TODO
+                return;
+            }
+
+            rosterManager.addContact(userBareJid, rosterItem);
         } catch (RosterException e) {
             e.printStackTrace();
             throw new RuntimeException(e);
         }
         
-        RosterSubscriptionMutator.Result result = RosterSubscriptionMutator.getInstance().add(rosterItem, FROM);
-
-        if (result != OK) {
-            // TODO
-            return;
-        }
-
         relayStanza(contact, stanza, sessionContext);
 
         // send roster push to all of the user's interested resources
@@ -359,7 +363,6 @@
         RosterItem rosterItem = rosterManager.getContact(userJid, contactJid);
         if (rosterItem == null) {
             rosterItem = new RosterItem(contactJid, NONE);
-            rosterManager.addContact(userJid, rosterItem);
         }
         return rosterItem;
     }
@@ -381,15 +384,18 @@
         Entity userBareJid = user.getBareJID();
 
         RosterItem rosterItem;
+        RosterSubscriptionMutator.Result result;
         try {
             rosterItem = getExistingOrNewRosterItem(rosterManager, userBareJid, contact);
+
+            result = RosterSubscriptionMutator.getInstance().add(rosterItem, TO);
+
+            rosterManager.addContact(userBareJid, rosterItem);
         } catch (RosterException e) {
             e.printStackTrace();
             throw new RuntimeException(e);
         }
 
-        RosterSubscriptionMutator.Result result = RosterSubscriptionMutator.getInstance().add(rosterItem, TO);
-
 		if (result == OK || result == ALREADY_SET) {
 
             // send roster push to all interested resources
@@ -419,22 +425,25 @@
         Entity userBareJid = user.getBareJID();
 
         RosterItem rosterItem;
+        RosterSubscriptionMutator.Result result;
         try {
             rosterItem = getExistingOrNewRosterItem(rosterManager, userBareJid, contact);
+
+            result = RosterSubscriptionMutator.getInstance().add(rosterItem, ASK_SUBSCRIBED);
+
+            rosterManager.addContact(userBareJid, rosterItem);
         } catch (RosterException e) {
             e.printStackTrace();
             throw new RuntimeException(e);
         }
 
-        RosterSubscriptionMutator.Result result = RosterSubscriptionMutator.getInstance().add(rosterItem, ASK_SUBSCRIBED);
-
         // check whether user already has a subscription to contact
-		if (result == ALREADY_SET) {
+        if (result == ALREADY_SET) {
             Entity receiver = contact.getBareJID();
             PresenceStanza alreadySubscribedResponse = buildPresenceStanza(userBareJid, receiver, SUBSCRIBED, null);
             relayStanza(receiver, alreadySubscribedResponse, sessionContext);
             return null;
-		}
+        }
 
         // user exists and doesn't have a subscription, so...
 
@@ -462,16 +471,17 @@
         RosterItem rosterItem = null;
         try {
             rosterItem = getExistingOrNewRosterItem(rosterManager, user.getBareJID(), contact);
+
+            RosterSubscriptionMutator.Result result = RosterSubscriptionMutator.getInstance().add(rosterItem, ASK_SUBSCRIBE);
+            if (result != OK) {
+                return;
+            }
+            
+            rosterManager.addContact(user.getBareJID(), rosterItem);
         } catch (RosterException e) {
-            e.printStackTrace();
             throw new RuntimeException(e);
         }
 
-        RosterSubscriptionMutator.Result result = RosterSubscriptionMutator.getInstance().add(rosterItem, ASK_SUBSCRIBE);
-        if (result != OK) {
-            return;
-        }
-
         // relay the stanza to the contact (via the contact's server)
         try {
             stanzaRelay.relay(stanza.getTo(), stanza, new IgnoreFailureStrategy());

Modified: labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/RosterModule.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/RosterModule.java?rev=758315&r1=758314&r2=758315&view=diff
==============================================================================
--- labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/RosterModule.java (original)
+++ labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/RosterModule.java Wed Mar 25 15:48:54 2009
@@ -16,10 +16,9 @@
  ***********************************************************************/
 package org.apache.vysper.xmpp.modules.roster;
 
-import org.apache.vysper.storage.jcr.JcrStorage;
-import org.apache.vysper.storage.jcr.roster.JcrRosterManager;
 import org.apache.vysper.xmpp.modules.DefaultModule;
 import org.apache.vysper.xmpp.modules.ServerRuntimeContextService;
+import org.apache.vysper.xmpp.modules.roster.persistence.MemoryRosterManager;
 import org.apache.vysper.xmpp.protocol.HandlerDictionary;
 
 import java.util.List;
@@ -46,7 +45,7 @@
 
     @Override
     protected void addServerServices(List<ServerRuntimeContextService> serviceList) {
-        serviceList.add(new JcrRosterManager(JcrStorage.getInstance()));
-        //serviceList.add(new MemoryRosterManager());
+        //serviceList.add(new JcrRosterManager(JcrStorage.getInstance()));
+        serviceList.add(new MemoryRosterManager());
     }
 }
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org