[exo-jcr-commits] exo-jcr SVN: r613 - jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Nov 12 11:18:40 EST 2009
Author: pnedonosko
Date: 2009-11-12 11:18:40 -0500 (Thu, 12 Nov 2009)
New Revision: 613
Modified:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoaderTest.java
Log:
EXOJCR-201: test for JDBC loader
Modified: jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoaderTest.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoaderTest.java 2009-11-12 16:07:40 UTC (rev 612)
+++ jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoaderTest.java 2009-11-12 16:18:40 UTC (rev 613)
@@ -83,23 +83,18 @@
loader = new JDBCCacheLoader();
loader.injectDependencies(persistentContainer);
-
+
initJCRRoot();
}
-
-
@Override
protected void tearDown() throws Exception
{
// delete all in DB
-
-
+
super.tearDown();
}
-
-
protected void initPersistence() throws Exception
{
// Create WorkspaceEntry
@@ -180,36 +175,36 @@
containerEntry.setValueStorages(list);
}
-
+
WorkspaceEntry workspaceEntry =
new WorkspaceEntry(wsName != null ? wsName : IdGenerator.generate(), "nt:unstructured");
workspaceEntry.setContainer(containerEntry);
-// // Indexer
-// ArrayList qParams = new ArrayList();
-// qParams.add(new SimpleParameterEntry("indexDir", "../temp/index/" + IdGenerator.generate()));
-// QueryHandlerEntry qEntry =
-// new QueryHandlerEntry("org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex", qParams);
-// workspaceEntry.setQueryHandler(qEntry);
-//
-// // cache
-// ArrayList cacheParams = new ArrayList();
-// cacheParams.add(new SimpleParameterEntry("maxSize", "2000"));
-// cacheParams.add(new SimpleParameterEntry("liveTime", "20m"));
-// CacheEntry cacheEntry = new CacheEntry(cacheParams);
-// cacheEntry.setType("org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl");
-// workspaceEntry.setCache(cacheEntry);
-//
-// // lock
-// LockManagerEntry lockManagerEntry = new LockManagerEntry();
-// lockManagerEntry.setTimeout(900000);
-// LockPersisterEntry persisterEntry = new LockPersisterEntry();
-// persisterEntry.setType("org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister");
-// ArrayList lpParams = new ArrayList();
-// lpParams.add(new SimpleParameterEntry("path", "../temp/lock"));
-// persisterEntry.setParameters(lpParams);
-// lockManagerEntry.setPersister(persisterEntry);
-// workspaceEntry.setLockManager(lockManagerEntry);
+ // // Indexer
+ // ArrayList qParams = new ArrayList();
+ // qParams.add(new SimpleParameterEntry("indexDir", "../temp/index/" + IdGenerator.generate()));
+ // QueryHandlerEntry qEntry =
+ // new QueryHandlerEntry("org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex", qParams);
+ // workspaceEntry.setQueryHandler(qEntry);
+ //
+ // // cache
+ // ArrayList cacheParams = new ArrayList();
+ // cacheParams.add(new SimpleParameterEntry("maxSize", "2000"));
+ // cacheParams.add(new SimpleParameterEntry("liveTime", "20m"));
+ // CacheEntry cacheEntry = new CacheEntry(cacheParams);
+ // cacheEntry.setType("org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl");
+ // workspaceEntry.setCache(cacheEntry);
+ //
+ // // lock
+ // LockManagerEntry lockManagerEntry = new LockManagerEntry();
+ // lockManagerEntry.setTimeout(900000);
+ // LockPersisterEntry persisterEntry = new LockPersisterEntry();
+ // persisterEntry.setType("org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister");
+ // ArrayList lpParams = new ArrayList();
+ // lpParams.add(new SimpleParameterEntry("path", "../temp/lock"));
+ // persisterEntry.setParameters(lpParams);
+ // lockManagerEntry.setPersister(persisterEntry);
+ // workspaceEntry.setLockManager(lockManagerEntry);
// workspaceEntry
return workspaceEntry;
@@ -247,7 +242,7 @@
WorkspaceStorageConnection conn = persistentContainer.openConnection();
// add root (/) with jcr:primaryType
- addDbNode(conn, Constants.ROOT_PATH, Constants.ROOT_UUID, Constants.NT_UNSTRUCTURED, null);
+ addDbNode(conn, Constants.ROOT_PATH, Constants.ROOT_UUID, Constants.NT_UNSTRUCTURED);
// add property (/jcr:mixinTypes)
List<InternalQName> mixins = new ArrayList<InternalQName>();
@@ -258,14 +253,14 @@
conn.commit();
}
-
+
private void deleteJCRRoot() throws Exception
{
// prepare
WorkspaceStorageConnection conn = persistentContainer.openConnection();
// add root (/) with jcr:primaryType
- addDbNode(conn, Constants.ROOT_PATH, Constants.ROOT_UUID, Constants.NT_UNSTRUCTURED, null);
+ addDbNode(conn, Constants.ROOT_PATH, Constants.ROOT_UUID, Constants.NT_UNSTRUCTURED);
// add property (/jcr:mixinTypes)
List<InternalQName> mixins = new ArrayList<InternalQName>();
@@ -286,20 +281,14 @@
* @param primaryType InternalQName
* @throws Exception
*/
- private void addDbNode(WorkspaceStorageConnection conn, QPath root, String nodeId, InternalQName primaryType, InternalQName[] mixinTypeNames)
- throws Exception
+ private void addDbNode(WorkspaceStorageConnection conn, QPath root, String nodeId, InternalQName primaryType) throws Exception
{
- // create node with property jcr:primaryType
- List<ItemData> list = createNode(root, nodeId, primaryType, mixinTypeNames);
-
- // add node with property jcr:primaryType
- for (ItemData itemData : list)
- {
- if (itemData instanceof NodeData)
- conn.add((NodeData)itemData);
- else
- conn.add((PropertyData)itemData);
- }
+ // add root (/)
+ conn.add(new TransientNodeData(root, nodeId, 1, primaryType, new InternalQName[0], 0, null,
+ new AccessControlList()));
+
+ // add property (/jcr:primaryType)
+ conn.add(createProperty(root, nodeId, Constants.JCR_PRIMARYTYPE, primaryType, false));
}
/**
@@ -311,18 +300,18 @@
* @param mixinTypeNames InternalQName
* @throws Exception
*/
- private List<ItemData> createNode(QPath path, String nodeId, InternalQName primaryType, InternalQName[] mixinTypeNames)
- throws Exception
+ private List<ItemData> createNode(QPath path, String nodeId, InternalQName primaryType,
+ InternalQName[] mixinTypeNames) throws Exception
{
List<ItemData> list = new ArrayList<ItemData>();
-
+
// add node
- list.add(new TransientNodeData(path, nodeId, 1, primaryType, (mixinTypeNames == null ? new InternalQName[0] : null), 0, null,
- new AccessControlList()));
+ list.add(new TransientNodeData(path, nodeId, 1, primaryType, (mixinTypeNames == null ? new InternalQName[0]
+ : null), 0, null, new AccessControlList()));
// add property (/jcr:primaryType)
list.add(createProperty(path, nodeId, Constants.JCR_PRIMARYTYPE, primaryType, false));
-
+
return list;
}
@@ -341,14 +330,14 @@
InternalQName propertyName, Object propertyValue, boolean multiValued) throws Exception
{
TransientPropertyData propData = createProperty(nodePath, nodeId, propertyName, propertyValue, multiValued);
-
+
conn.add(propData);
return propData;
}
-
+
/**
- * Create Property.
+ * Create Property data.
*
* @param nodePath QPath
* @param nodeId String
@@ -357,13 +346,12 @@
* @return TransientPropertyData
* @throws Exception
*/
- private TransientPropertyData createProperty(QPath nodePath, String nodeId,
- InternalQName propertyName, Object propertyValue, boolean multiValued) throws Exception
+ private TransientPropertyData createProperty(QPath nodePath, String nodeId, InternalQName propertyName,
+ Object propertyValue, boolean multiValued) throws Exception
{
String propId = IdGenerator.generate();
QPath propPath = QPath.makeChildPath(nodePath, propertyName);
- TransientPropertyData propData =
- new TransientPropertyData(propPath, propId, 1, 1, nodeId, multiValued);
+ TransientPropertyData propData = new TransientPropertyData(propPath, propId, 1, 1, nodeId, multiValued);
List<Object> values = new ArrayList<Object>();
if (multiValued)
@@ -398,7 +386,7 @@
return propData;
}
-
+
/**
* Delete Property to the connection but doesn't save it.
*
@@ -413,7 +401,7 @@
{
// add property (/jcr:primaryType)
addDbProperty(conn, root, Constants.ROOT_UUID, Constants.JCR_PRIMARYTYPE, primaryType, false);
-
+
// add root (/)
conn.delete(new TransientNodeData(root, nodeId, 1, primaryType, new InternalQName[0], 0, null,
new AccessControlList()));
@@ -425,25 +413,27 @@
{
// prepare
String nodeId = IdGenerator.generate();
- List<ItemData> list = createNode(QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId, Constants.NT_UNSTRUCTURED, null);
-
+ List<ItemData> list =
+ createNode(QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId,
+ Constants.NT_UNSTRUCTURED, null);
+
List<Modification> modifications = new ArrayList<Modification>();
-
- for (ItemData itemData : list)
+
+ for (ItemData itemData : list)
if (itemData instanceof NodeData)
- modifications.addAll(addNode((NodeData) itemData));
+ modifications.addAll(addNode((NodeData)itemData));
else
- modifications.addAll(addProperty((PropertyData) itemData));
-
+ modifications.addAll(addProperty((PropertyData)itemData));
+
loader.put(modifications);
// tests it
- NodeData srcNodeData = (NodeData) list.get(0);
-
+ NodeData srcNodeData = (NodeData)list.get(0);
+
WorkspaceStorageConnection conn = persistentContainer.openConnection();
-
- NodeData destNodeData = (NodeData) conn.getItemData(nodeId);
-
+
+ NodeData destNodeData = (NodeData)conn.getItemData(nodeId);
+
assertNotNull(destNodeData);
assertEquals(srcNodeData.getIdentifier(), destNodeData.getIdentifier());
assertEquals(srcNodeData.getOrderNumber(), destNodeData.getOrderNumber());
@@ -456,19 +446,20 @@
public void testAddProperty() throws Exception
{
// prepare
- TransientPropertyData propData = createProperty(Constants.ROOT_PATH, Constants.ROOT_UUID, Constants.JCR_DATA, "JCR DATA VALUE", false);
-
+ TransientPropertyData propData =
+ createProperty(Constants.ROOT_PATH, Constants.ROOT_UUID, Constants.JCR_DATA, "JCR DATA VALUE", false);
+
List<Modification> modifications = new ArrayList<Modification>();
-
+
modifications.addAll(addProperty(propData));
-
+
loader.put(modifications);
// tests it
WorkspaceStorageConnection connection = persistentContainer.openConnection();
-
- PropertyData destPropData = (PropertyData) connection.getItemData(propData.getIdentifier());
-
+
+ PropertyData destPropData = (PropertyData)connection.getItemData(propData.getIdentifier());
+
assertNotNull(destPropData);
assertEquals(propData.getIdentifier(), destPropData.getIdentifier());
assertEquals(propData.getParentIdentifier(), destPropData.getParentIdentifier());
@@ -477,10 +468,10 @@
assertEquals(propData.getQPath(), destPropData.getQPath());
assertEquals(propData.getValues().size(), destPropData.getValues().size());
assertEquals(1, destPropData.getValues().size());
-
+
ValueData valueData = destPropData.getValues().get(0);
- assertEquals("JCR DATA VALUE", new String (valueData.getAsByteArray(), "UTF-8"));
-
+ assertEquals("JCR DATA VALUE", new String(valueData.getAsByteArray(), "UTF-8"));
+
}
public void testDeleteNode() throws Exception
@@ -488,35 +479,36 @@
// prepare
WorkspaceStorageConnection conn = persistentContainer.openConnection();
-
+
String nodeId = IdGenerator.generate();
- addDbNode(conn, QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId, Constants.NT_UNSTRUCTURED, null);
+ addDbNode(conn, QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId,
+ Constants.NT_UNSTRUCTURED);
conn.commit();
-
+
List<Modification> modifications = new ArrayList<Modification>();
-
+
conn = persistentContainer.openConnection();
-
- NodeData nodeData = (NodeData) conn.getItemData(nodeId);
-
+
+ NodeData nodeData = (NodeData)conn.getItemData(nodeId);
+
List<PropertyData> properties = conn.getChildPropertiesData(nodeData);
-
+
for (PropertyData propertyData : properties)
modifications.addAll(removeProperty(propertyData));
-
+
modifications.addAll(removeNode(nodeData));
-
+
loader.put(modifications);
-
+
// tests it
conn = persistentContainer.openConnection();
-
- NodeData removedNodeData = (NodeData) conn.getItemData(nodeData.getIdentifier());
-
+
+ NodeData removedNodeData = (NodeData)conn.getItemData(nodeData.getIdentifier());
+
assertNull(removedNodeData);
-
+
for (PropertyData propertyData : properties)
- assertNull((PropertyData) conn.getItemData(propertyData.getIdentifier()));
+ assertNull((PropertyData)conn.getItemData(propertyData.getIdentifier()));
}
@@ -525,26 +517,29 @@
// prepare
WorkspaceStorageConnection conn = persistentContainer.openConnection();
-
+
String nodeId = IdGenerator.generate();
- addDbNode(conn, QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId, Constants.NT_UNSTRUCTURED, null);
+ addDbNode(conn, QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId,
+ Constants.NT_UNSTRUCTURED);
conn.commit();
-
+
conn = persistentContainer.openConnection();
- PropertyData propData = addDbProperty(conn, QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId, InternalQName.parse("[]prop1"), "_Tesed_VALUE", false);
+ PropertyData propData =
+ addDbProperty(conn, QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId,
+ InternalQName.parse("[]prop1"), "_Tesed_VALUE", false);
conn.commit();
-
+
List<Modification> modifications = new ArrayList<Modification>();
-
+
modifications.addAll(removeProperty(propData));
-
+
loader.put(modifications);
-
+
// tests it
conn = persistentContainer.openConnection();
-
- PropertyData removedPropertyData = (PropertyData) conn.getItemData(propData.getIdentifier());
-
+
+ PropertyData removedPropertyData = (PropertyData)conn.getItemData(propData.getIdentifier());
+
assertNull(removedPropertyData);
}
@@ -552,9 +547,9 @@
{
// prepare
-
+
// tests it
-
+
}
public void testUpdateProperty() throws Exception
@@ -580,22 +575,23 @@
// prepare
WorkspaceStorageConnection conn = persistentContainer.openConnection();
-
+
String nodeId = IdGenerator.generate();
- addDbNode(conn, QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId, Constants.NT_UNSTRUCTURED, null);
+ addDbNode(conn, QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]node")), nodeId,
+ Constants.NT_UNSTRUCTURED);
conn.commit();
-
+
// tests it
conn = persistentContainer.openConnection();
-
- NodeData srcNodeData = (NodeData) conn.getItemData(nodeId);
-
- Map<Object, Object> attrebutes = loader.get(Fqn.fromString("/"+JBossCacheStorage.NODES + "/" + nodeId));
-
+
+ NodeData srcNodeData = (NodeData)conn.getItemData(nodeId);
+
+ Map<Object, Object> attrebutes = loader.get(Fqn.fromString("/" + JBossCacheStorage.NODES + "/" + nodeId));
+
assertNotNull(attrebutes);
-
- NodeData destNodeData = (NodeData) attrebutes.get(JBossCacheStorage.ITEM_DATA);
-
+
+ NodeData destNodeData = (NodeData)attrebutes.get(JBossCacheStorage.ITEM_DATA);
+
assertNotNull(destNodeData);
assertEquals(srcNodeData.getIdentifier(), destNodeData.getIdentifier());
assertEquals(srcNodeData.getOrderNumber(), destNodeData.getOrderNumber());
@@ -619,17 +615,20 @@
// prepare
WorkspaceStorageConnection connection = persistentContainer.openConnection();
-
- TransientPropertyData propData = addDbProperty(connection, Constants.ROOT_PATH, Constants.ROOT_UUID, Constants.JCR_DATA, "JCR DATA VALUE", false);
+
+ TransientPropertyData propData =
+ addDbProperty(connection, Constants.ROOT_PATH, Constants.ROOT_UUID, Constants.JCR_DATA, "JCR DATA VALUE",
+ false);
connection.commit();
-
+
// tests it
- Map<Object, Object> attrebutes = loader.get(Fqn.fromString("/"+JBossCacheStorage.PROPS + "/" + propData.getIdentifier()));
-
+ Map<Object, Object> attrebutes =
+ loader.get(Fqn.fromString("/" + JBossCacheStorage.PROPS + "/" + propData.getIdentifier()));
+
assertNotNull(attrebutes);
-
- PropertyData destPropData = (PropertyData) attrebutes.get(JBossCacheStorage.ITEM_DATA);
-
+
+ PropertyData destPropData = (PropertyData)attrebutes.get(JBossCacheStorage.ITEM_DATA);
+
assertNotNull(destPropData);
assertEquals(propData.getIdentifier(), destPropData.getIdentifier());
assertEquals(propData.getParentIdentifier(), destPropData.getParentIdentifier());
@@ -638,9 +637,9 @@
assertEquals(propData.getQPath(), destPropData.getQPath());
assertEquals(propData.getValues().size(), destPropData.getValues().size());
assertEquals(1, destPropData.getValues().size());
-
+
ValueData valueData = destPropData.getValues().get(0);
- assertEquals("JCR DATA VALUE", new String (valueData.getAsByteArray(), "UTF-8"));
+ assertEquals("JCR DATA VALUE", new String(valueData.getAsByteArray(), "UTF-8"));
}
More information about the exo-jcr-commits
mailing list