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 2013/07/08 11:51:45 UTC

[6/9] git commit: fix roster + contact storage in HBase

fix roster + contact storage in HBase


Project: http://git-wip-us.apache.org/repos/asf/mina-vysper/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-vysper/commit/472093ca
Tree: http://git-wip-us.apache.org/repos/asf/mina-vysper/tree/472093ca
Diff: http://git-wip-us.apache.org/repos/asf/mina-vysper/diff/472093ca

Branch: refs/heads/master
Commit: 472093ca36fa5df88a64c100e69cc7c44a31e7f1
Parents: 0636dc9
Author: Bernd Fondermann <be...@brainlounge.de>
Authored: Mon Jul 8 10:28:10 2013 +0200
Committer: Bernd Fondermann <be...@brainlounge.de>
Committed: Mon Jul 8 10:28:10 2013 +0200

----------------------------------------------------------------------
 .../storage/hbase/HBaseStorageProviderRegistry.java |  2 ++
 .../storage/hbase/roster/HBaseRosterManager.java    | 16 ++++++++++------
 .../storage/hbase/user/HBaseUserManagement.java     |  9 ++++++++-
 3 files changed, 20 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-vysper/blob/472093ca/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/HBaseStorageProviderRegistry.java
----------------------------------------------------------------------
diff --git a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/HBaseStorageProviderRegistry.java b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/HBaseStorageProviderRegistry.java
index 32ad50a..5b86ad4 100644
--- a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/HBaseStorageProviderRegistry.java
+++ b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/HBaseStorageProviderRegistry.java
@@ -20,6 +20,7 @@
 package org.apache.vysper.storage.hbase;
 
 import org.apache.vysper.storage.OpenStorageProviderRegistry;
+import org.apache.vysper.storage.hbase.privatedata.HBasePrivateDataPersistenceManager;
 import org.apache.vysper.storage.hbase.roster.HBaseRosterManager;
 import org.apache.vysper.storage.hbase.user.HBaseUserManagement;
 
@@ -32,6 +33,7 @@ public class HBaseStorageProviderRegistry extends OpenStorageProviderRegistry {
     public HBaseStorageProviderRegistry() throws HBaseStorageException {
         add(new HBaseUserManagement(HBaseStorage.getInstance()));
         add(new HBaseRosterManager(HBaseStorage.getInstance()));
+        add(new HBasePrivateDataPersistenceManager(HBaseStorage.getInstance()));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/mina-vysper/blob/472093ca/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/roster/HBaseRosterManager.java
----------------------------------------------------------------------
diff --git a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/roster/HBaseRosterManager.java b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/roster/HBaseRosterManager.java
index 0ec3e21..d61ab87 100644
--- a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/roster/HBaseRosterManager.java
+++ b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/roster/HBaseRosterManager.java
@@ -19,6 +19,7 @@
  */
 package org.apache.vysper.storage.hbase.roster;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.Put;
@@ -99,11 +100,12 @@ public class HBaseRosterManager extends AbstractRosterManager {
 
             AskSubscriptionType askSubscriptionType = AskSubscriptionType.NOT_SET;
             try {
-                if (askTypeString != null)
+                if (StringUtils.isNotBlank(askTypeString)) {
                     askSubscriptionType = AskSubscriptionType.valueOf(askTypeString);
+                }
             } catch (IllegalArgumentException e) {
                 LOG.warn("when loading roster for user " + bareJid.getFullQualifiedName() + ", contact "
-                        + contactJID.getFullQualifiedName() + ", the ask subscription type is unparsable. skipping!");
+                        + contactJID.getFullQualifiedName() + ", the ask subscription type '" + askTypeString + "' is unparsable. skipping!");
                 continue; // don't return it, don't set a default!
             }
 
@@ -144,8 +146,8 @@ public class HBaseRosterManager extends AbstractRosterManager {
         final Put put = new Put(entityAsBytes(jid.getBareJID()));
         put.add(COLUMN_FAMILY_NAME_CONTACT_BYTES, asBytes(contactIdentifier), asBytes(rosterItem.getSubscriptionType().value()));
         put.add(COLUMN_FAMILY_NAME_ROSTER_BYTES, asBytes(COLUMN_PREFIX_NAME + contactIdentifier), asBytes(rosterItem.getName()));
-        put.add(COLUMN_FAMILY_NAME_ROSTER_BYTES, asBytes(COLUMN_PREFIX_TYPE + contactIdentifier), asBytes(rosterItem.getSubscriptionType().value()));
-        put.add(COLUMN_FAMILY_NAME_ROSTER_BYTES, asBytes(COLUMN_PREFIX_ASKTYPE + contactIdentifier), asBytes(rosterItem.getAskSubscriptionType().value()));
+        put.add(COLUMN_FAMILY_NAME_ROSTER_BYTES, asBytes(COLUMN_PREFIX_TYPE + contactIdentifier), asBytes(rosterItem.getSubscriptionType().name()));
+        put.add(COLUMN_FAMILY_NAME_ROSTER_BYTES, asBytes(COLUMN_PREFIX_ASKTYPE + contactIdentifier), asBytes(rosterItem.getAskSubscriptionType().name()));
         int i = 1;
         for (RosterGroup rosterGroup : rosterItem.getGroups()) {
             String columnName = COLUMN_PREFIX_GROUP + i + ":" + contactIdentifier; 
@@ -153,8 +155,9 @@ public class HBaseRosterManager extends AbstractRosterManager {
             i++;
         }
 
-        final HTableInterface userTable = hBaseStorage.getTable(TABLE_NAME_USER);
+        HTableInterface userTable = null;
         try {
+            userTable = hBaseStorage.getTable(TABLE_NAME_USER);
             userTable.put(put);
             LOG.info("contact {} saved to HBase for user {}", rosterItem.getJid(), jid);
         } catch (IOException e) {
@@ -179,8 +182,9 @@ public class HBaseRosterManager extends AbstractRosterManager {
         delete.deleteColumns(COLUMN_FAMILY_NAME_ROSTER_BYTES, asBytes(COLUMN_PREFIX_TYPE + contactIdentifier));
         delete.deleteColumns(COLUMN_FAMILY_NAME_ROSTER_BYTES, asBytes(COLUMN_PREFIX_ASKTYPE + contactIdentifier));
         
-        final HTableInterface userTable = hBaseStorage.getTable(TABLE_NAME_USER);
+        HTableInterface userTable = null;
         try {
+            userTable = hBaseStorage.getTable(TABLE_NAME_USER);
             userTable.delete(delete);
             LOG.info("contact {} removed from HBase for user {}", jidContact, jidUser);
         } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/mina-vysper/blob/472093ca/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/user/HBaseUserManagement.java
----------------------------------------------------------------------
diff --git a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/user/HBaseUserManagement.java b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/user/HBaseUserManagement.java
index 99d6995..e98c019 100644
--- a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/user/HBaseUserManagement.java
+++ b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/user/HBaseUserManagement.java
@@ -19,6 +19,7 @@
  */
 package org.apache.vysper.storage.hbase.user;
 
+import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.vysper.storage.hbase.HBaseStorage;
@@ -131,7 +132,13 @@ public class HBaseUserManagement implements UserAuthentication, AccountManagemen
     private void setPasswordInHBase(Entity username, String password) throws IOException {
         final Put put = new Put(entityAsBytes(username));
         put.add(COLUMN_FAMILY_NAME_BASIC.getBytes(), PASSWORD_COLUMN, encryptPassword(password));
-        hBaseStorage.getTable(HBaseStorage.TABLE_NAME_USER).put(put);
+        HTableInterface table = null;
+        try {
+            table = hBaseStorage.getTable(HBaseStorage.TABLE_NAME_USER);
+            table.put(put);
+        } finally {
+            hBaseStorage.putTable(table);
+        }
     }
 
     public void changePassword(Entity username, String password) throws AccountCreationException {