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 {