private data storage: use proper namespace in column family 'xep'
Project: http://git-wip-us.apache.org/repos/asf/mina-vysper/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-vysper/commit/1b50d19c Tree: http://git-wip-us.apache.org/repos/asf/mina-vysper/tree/1b50d19c Diff: http://git-wip-us.apache.org/repos/asf/mina-vysper/diff/1b50d19c Branch: refs/heads/master Commit: 1b50d19c984c79382dc5d87f1a98e460677c868d Parents: 5317a44 Author: Bernd Fondermann <[email protected]> Authored: Mon Jul 8 11:26:51 2013 +0200 Committer: Bernd Fondermann <[email protected]> Committed: Mon Jul 8 11:26:51 2013 +0200 ---------------------------------------------------------------------- .../HBasePrivateDataPersistenceManager.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-vysper/blob/1b50d19c/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/privatedata/HBasePrivateDataPersistenceManager.java ---------------------------------------------------------------------- diff --git a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/privatedata/HBasePrivateDataPersistenceManager.java b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/privatedata/HBasePrivateDataPersistenceManager.java index 1f80063..4024b59 100644 --- a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/privatedata/HBasePrivateDataPersistenceManager.java +++ b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/privatedata/HBasePrivateDataPersistenceManager.java @@ -26,6 +26,7 @@ import org.apache.hadoop.hbase.client.Result; import org.apache.vysper.storage.hbase.HBaseStorage; import org.apache.vysper.xmpp.addressing.Entity; import org.apache.vysper.xmpp.modules.extension.xep0049_privatedata.PrivateDataPersistenceManager; +import org.apache.vysper.xmpp.protocol.NamespaceURIs; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,14 +42,16 @@ public class HBasePrivateDataPersistenceManager implements PrivateDataPersistenc final Logger logger = LoggerFactory.getLogger(HBasePrivateDataPersistenceManager.class); - public static final String COLUMN_PREFIX_NAME = "xep_priv_data:"; - protected HBaseStorage hbaseStorage; public HBasePrivateDataPersistenceManager(HBaseStorage hbaseStorage) { this.hbaseStorage = hbaseStorage; } + protected String getNamespace() { + return NamespaceURIs.PRIVATE_DATA; + } + public boolean isAvailable() { HTableInterface table = null; try { @@ -62,18 +65,22 @@ public class HBasePrivateDataPersistenceManager implements PrivateDataPersistenc public String getPrivateData(Entity entity, String key) { final Result entityRow = hbaseStorage.getEntityRow(entity, COLUMN_FAMILY_NAME_XEP); - String column = COLUMN_PREFIX_NAME + key; + String column = getColumnForKey(key); String value = toStr(entityRow.getValue(COLUMN_FAMILY_NAME_XEP_BYTES, asBytes(column))); return value; } + protected String getColumnForKey(String key) { + return getNamespace() + "#"+ key; + } + public boolean setPrivateData(Entity entity, String key, String xml) { if (key == null || StringUtils.isBlank(key)) { throw new IllegalArgumentException("private data key must not be blank"); } - String column = COLUMN_PREFIX_NAME + key; + String column = getColumnForKey(key); final Put put = new Put(entityAsBytes(entity.getBareJID())); put.add(COLUMN_FAMILY_NAME_XEP_BYTES, asBytes(column), asBytes(xml));
