[jboss-svn-commits] JBL Code SVN: r32902 - in labs/jbossrules/trunk: drools-guvnor/src/test/java/org/drools/guvnor/server and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon May 17 08:26:48 EDT 2010
Author: jervisliu
Date: 2010-05-17 08:26:46 -0400 (Mon, 17 May 2010)
New Revision: 32902
Removed:
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/MyAccessManager.java
Modified:
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/repository/MockRepo.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/repository/MockSession.java
labs/jbossrules/trunk/drools-repository/pom.xml
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetHistoryIterator.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItemIterator.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/CategorisableItem.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositorySessionUtil.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ArchiveItemTest.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
labs/jbossrules/trunk/pom.xml
Log:
GUVNOR-500: Upgrade JackRabbit to 2.1
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -444,9 +444,12 @@
//now verify AssetItemIterator works by calling search
AssetItemIterator it = impl.repository.findAssetsByName( "testCreateLinkedAssetItemRule%",
true );
- assertEquals( 1,
- it.getSize() );
+ //NOTE, getSize() may return -1
+ /* assertEquals( 1,
+ it.getSize() );*/
+ int size = 0;
while ( it.hasNext() ) {
+ size++;
AssetItem ai = it.next();
if ( ai.getUUID().equals( uuid ) ) {
assertEquals( ai.getPackage().getName(),
@@ -457,6 +460,7 @@
fail( "unexptected asset found: " + ai.getPackage().getName() );
}
}
+ assertEquals( 1, size );
}
public void testLinkedAssetItemHistoryRelated() throws Exception {
@@ -555,6 +559,7 @@
newHead.metaData.checkinComment );
}
+ //path name contains Apostrophe is no longer a problem with jackrabbit 2.0
public void testCreateNewRuleContainsApostrophe() throws Exception {
ServiceImplementation impl = getService();
impl.repository.createPackage( "testCreateNewRuleContainsApostrophe",
@@ -563,16 +568,24 @@
"testCreateNewRuleContainsApostrophe",
"this is a cat" );
+ String uuid = null;
try {
- impl.createNewRule( "testCreateNewRuleContains' character",
+ uuid = impl.createNewRule( "testCreateNewRuleContains' character",
"an initial desc",
"testCreateNewRuleContainsApostrophe",
"testCreateNewRuleContainsApostrophe",
AssetFormats.DSL_TEMPLATE_RULE );
- fail( "did not get expected exception" );
+ //fail( "did not get expected exception" );
} catch ( SerializableException e ) {
- assertTrue( e.getMessage().indexOf( "'testCreateNewRuleContains' character' is not a valid path. ''' not a valid name character" ) >= 0 );
+ //assertTrue( e.getMessage().indexOf( "'testCreateNewRuleContains' character' is not a valid path. ''' not a valid name character" ) >= 0 );
}
+
+ RuleAsset assetWrapper = impl.loadRuleAsset( uuid );
+ assertEquals( assetWrapper.metaData.description,
+ "an initial desc" );
+ assertEquals( assetWrapper.metaData.name,
+ "testCreateNewRuleContains' character" );
+
}
public void testRuleTableLoad() throws Exception {
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/repository/MockRepo.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/repository/MockRepo.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/repository/MockRepo.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -23,6 +23,7 @@
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.jcr.Value;
class MockRepo implements Repository {
@@ -60,5 +61,25 @@
RepositoryException {
return null;
}
+
+ public Value getDescriptorValue(String arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Value[] getDescriptorValues(String arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean isSingleValueDescriptor(String arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean isStandardDescriptor(String arg0) {
+ // TODO Auto-generated method stub
+ return false;
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/repository/MockSession.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/repository/MockSession.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/repository/MockSession.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -33,6 +33,7 @@
import javax.jcr.NamespaceException;
import javax.jcr.Node;
import javax.jcr.PathNotFoundException;
+import javax.jcr.Property;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
@@ -42,6 +43,8 @@
import javax.jcr.lock.LockException;
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.retention.RetentionManager;
+import javax.jcr.security.AccessControlManager;
import javax.jcr.version.VersionException;
import org.xml.sax.ContentHandler;
@@ -244,5 +247,64 @@
}
+
+ public AccessControlManager getAccessControlManager()
+ throws UnsupportedRepositoryOperationException, RepositoryException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Node getNode(String arg0) throws PathNotFoundException,
+ RepositoryException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Node getNodeByIdentifier(String arg0) throws ItemNotFoundException,
+ RepositoryException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Property getProperty(String arg0) throws PathNotFoundException,
+ RepositoryException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public RetentionManager getRetentionManager()
+ throws UnsupportedRepositoryOperationException, RepositoryException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean hasCapability(String arg0, Object arg1, Object[] arg2)
+ throws RepositoryException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean hasPermission(String arg0, String arg1)
+ throws RepositoryException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean nodeExists(String arg0) throws RepositoryException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean propertyExists(String arg0) throws RepositoryException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void removeItem(String arg0) throws VersionException, LockException,
+ ConstraintViolationException, AccessDeniedException,
+ RepositoryException {
+ // TODO Auto-generated method stub
+
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-repository/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-repository/pom.xml 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/pom.xml 2010-05-17 12:26:46 UTC (rev 32902)
@@ -39,11 +39,12 @@
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-core</artifactId>
+ <version>2.1.0</version>
</dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
- <version>1.0</version>
+ <version>2.0</version>
</dependency>
<dependency>
<groupId>org.tmatesoft</groupId>
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetHistoryIterator.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetHistoryIterator.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetHistoryIterator.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -26,7 +26,7 @@
this.head = head;
this.repo = repo;
try {
- this.versionIterator = this.head.getVersionHistory().getAllVersions();
+ this.versionIterator = VersionableItem.getVersionManager(head).getVersionHistory(head.getPath()).getAllVersions();
} catch ( RepositoryException e ) {
throw new RulesRepositoryException( e );
}
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -4,6 +4,7 @@
import java.util.Calendar;
import java.util.Iterator;
+import javax.jcr.Binary;
import javax.jcr.Node;
import javax.jcr.PathNotFoundException;
import javax.jcr.Property;
@@ -169,11 +170,11 @@
if (ruleNode.hasProperty(CONTENT_PROPERTY_BINARY_NAME)) {
Property data = ruleNode
.getProperty(CONTENT_PROPERTY_BINARY_NAME);
- return data.getStream();
+ return data.getBinary().getStream();
} else {
if (ruleNode.hasProperty(CONTENT_PROPERTY_NAME)) {
Property data = ruleNode.getProperty(CONTENT_PROPERTY_NAME);
- return data.getStream();
+ return data.getBinary().getStream();
}
return null;
}
@@ -202,7 +203,7 @@
if (isBinary()) {
Property data = ruleNode
.getProperty(CONTENT_PROPERTY_BINARY_NAME);
- InputStream in = data.getStream();
+ InputStream in = data.getBinary().getStream();
// Create the byte array to hold the data
byte[] bytes = new byte[(int) data.getLength()];
@@ -386,7 +387,8 @@
public AssetItem updateBinaryContentAttachment(InputStream data) {
checkout();
try {
- this.node.setProperty(CONTENT_PROPERTY_BINARY_NAME, data);
+ Binary is = this.node.getSession().getValueFactory().createBinary(data);
+ this.node.setProperty(CONTENT_PROPERTY_BINARY_NAME, is);
return this;
} catch (RepositoryException e) {
log.error("Unable to update the assets binary content", e);
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItemIterator.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItemIterator.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItemIterator.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -52,7 +52,8 @@
* @return the size of the underlying iterator's potential data set.
* May be -1 if not known.
*/
- public long getSize() {
+ //NOTE this may return -1 as per JCR2.0 when precise count is not available due to performance reasons.
+ public long getSize() {
return it.getSize();
}
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/CategorisableItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/CategorisableItem.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/CategorisableItem.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -86,7 +86,7 @@
ValueFormatException,
VersionException,
ConstraintViolationException {
- this.node.checkout();
+ this.checkout();
this.node.setProperty( CATEGORY_PROPERTY_NAME,
newTagValues );
}
@@ -136,7 +136,7 @@
Value[] tagValues = tagReferenceProperty.getValues();
for ( int i = 0; i < tagValues.length; i++ ) {
try {
- Node tagNode = this.node.getSession().getNodeByUUID( tagValues[i].getString() );
+ Node tagNode = this.node.getSession().getNodeByIdentifier( tagValues[i].getString() );
CategoryItem tagItem = new CategoryItem( this.rulesRepository,
tagNode );
ac.add(tagItem);
@@ -217,7 +217,7 @@
//see if the tag was even there
boolean wasThere = false;
for ( i = 0; i < oldTagValues.length; i++ ) {
- Node tagNode = targetNode.getSession().getNodeByUUID( oldTagValues[i].getString() );
+ Node tagNode = targetNode.getSession().getNodeByIdentifier( oldTagValues[i].getString() );
if ( tagNode.getName().equals( tag ) ) {
wasThere = true;
}
@@ -227,7 +227,7 @@
//copy the array, minus the specified tag
newTagValues = new Value[oldTagValues.length + 1];
for ( i = 0; i < oldTagValues.length; i++ ) {
- Node tagNode = targetNode.getSession().getNodeByUUID( oldTagValues[i].getString() );
+ Node tagNode = targetNode.getSession().getNodeByIdentifier( oldTagValues[i].getString() );
if ( !tagNode.getName().equals( tag ) ) {
newTagValues[j] = oldTagValues[i];
j++;
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -1,23 +1,16 @@
package org.drools.repository;
-import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Calendar;
-import java.util.Iterator;
-import java.util.List;
import javax.jcr.Node;
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.Workspace;
+import org.apache.jackrabbit.commons.cnd.CndImporter;
import org.apache.jackrabbit.core.TransientRepository;
-import org.apache.jackrabbit.core.nodetype.InvalidNodeTypeDefException;
-import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
-import org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl;
-import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
-import org.apache.jackrabbit.core.nodetype.compact.CompactNodeTypeDefReader;
import org.apache.log4j.Logger;
/**
@@ -33,15 +26,13 @@
* @see org.drools.repository.RepositoryConfigurator#getJCRRepository()
*/
public Repository getJCRRepository(String repoRootDir) {
- try {
+
if (repoRootDir == null) {
return new TransientRepository();
} else {
return new TransientRepository(repoRootDir + "/repository.xml", repoRootDir);
}
- } catch ( IOException e ) {
- throw new RulesRepositoryException("Unable to create a Repository instance.", e);
- }
+
}
@@ -62,13 +53,13 @@
ws.getNamespaceRegistry().registerNamespace("drools", RulesRepository.DROOLS_URI);
//Note, the order in which they are registered actually does matter !
- this.registerNodeTypesFromCndFile("/node_type_definitions/tag_node_type.cnd", ws);
- this.registerNodeTypesFromCndFile("/node_type_definitions/state_node_type.cnd", ws);
- this.registerNodeTypesFromCndFile("/node_type_definitions/versionable_node_type.cnd", ws);
- this.registerNodeTypesFromCndFile("/node_type_definitions/versionable_asset_folder_node_type.cnd", ws);
+ this.registerNodeTypesFromCndFile("/node_type_definitions/tag_node_type.cnd", session);
+ this.registerNodeTypesFromCndFile("/node_type_definitions/state_node_type.cnd", session);
+ this.registerNodeTypesFromCndFile("/node_type_definitions/versionable_node_type.cnd", session);
+ this.registerNodeTypesFromCndFile("/node_type_definitions/versionable_asset_folder_node_type.cnd", session);
- this.registerNodeTypesFromCndFile("/node_type_definitions/rule_node_type.cnd", ws);
- this.registerNodeTypesFromCndFile("/node_type_definitions/rulepackage_node_type.cnd", ws);
+ this.registerNodeTypesFromCndFile("/node_type_definitions/rule_node_type.cnd", session);
+ this.registerNodeTypesFromCndFile("/node_type_definitions/rulepackage_node_type.cnd", session);
}
@@ -113,45 +104,16 @@
}
}
- private void registerNodeTypesFromCndFile(String cndFileName, Workspace ws) throws RulesRepositoryException, InvalidNodeTypeDefException {
+ private void registerNodeTypesFromCndFile(String cndFileName, Session session) throws RulesRepositoryException {
try {
//Read in the CND file
Reader in = new InputStreamReader(this.getClass().getResourceAsStream( cndFileName ));
-
- // Create a CompactNodeTypeDefReader
- CompactNodeTypeDefReader cndReader = new CompactNodeTypeDefReader(in, cndFileName);
-
- // Get the List of NodeTypeDef objects
- List ntdList = cndReader.getNodeTypeDefs();
-
- // Get the NodeTypeManager from the Workspace.
- // Note that it must be cast from the generic JCR NodeTypeManager to the
- // Jackrabbit-specific implementation.
- NodeTypeManagerImpl ntmgr = (NodeTypeManagerImpl)ws.getNodeTypeManager();
-
- // Acquire the NodeTypeRegistry
- NodeTypeRegistry ntreg = ntmgr.getNodeTypeRegistry();
-
- // Loop through the prepared NodeTypeDefs
- for(Iterator i = ntdList.iterator(); i.hasNext();) {
- // Get the NodeTypeDef...
- NodeTypeDef ntd = (NodeTypeDef)i.next();
-
- log.debug("Attempting to regsiter node type named: " + ntd.getName());
-
- // ...and register it
- ntreg.registerNodeType(ntd);
- }
- }
- catch(InvalidNodeTypeDefException e) {
- log.warn("InvalidNodeTypeDefinitionException caught when trying to add node from CND file: " + cndFileName + ". This will happen if the node type was already registered. " + e);
- throw e;
- }
- catch(Exception e) {
+ CndImporter.registerNodeTypes(in, session);
+
+ } catch(Exception e) {
log.error("Caught Exception", e);
throw new RulesRepositoryException(e);
}
}
-
}
Deleted: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/MyAccessManager.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/MyAccessManager.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/MyAccessManager.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -1,106 +0,0 @@
-package org.drools.repository;
-
-import javax.jcr.AccessDeniedException;
-import javax.jcr.ItemNotFoundException;
-import javax.jcr.NoSuchWorkspaceException;
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-
-import org.apache.jackrabbit.core.ItemId;
-import org.apache.jackrabbit.core.NodeId;
-import org.apache.jackrabbit.core.security.AMContext;
-import org.apache.jackrabbit.core.security.AccessManager;
-//import org.apache.jackrabbit.core.security.authorization.AccessControlProvider;
-//import org.apache.jackrabbit.core.security.authorization.WorkspaceAccessManager;
-//import org.apache.jackrabbit.spi.Name;
-//import org.apache.jackrabbit.spi.Path;
-import org.apache.jackrabbit.core.security.authorization.AccessControlProvider;
-import org.apache.jackrabbit.core.security.authorization.WorkspaceAccessManager;
-import org.apache.jackrabbit.spi.Name;
-import org.apache.jackrabbit.spi.Path;
-
-/**
- * This is just an experimental access manager for proof of concept. Don't
- * actually use it or you are insane !
- */
-public class MyAccessManager
- implements
- AccessManager {
-
- private AMContext amContext;
-
- public boolean canAccess(String arg0) throws NoSuchWorkspaceException,
- RepositoryException {
- System.out.println("can access " + arg0);
- return true;
- }
-
- public void checkPermission(ItemId arg0,
- int arg1) throws AccessDeniedException,
- ItemNotFoundException,
- RepositoryException {
- System.out.println("check permission: " + arg0);
-
- }
-
- public void close() throws Exception {
- // TODO Auto-generated method stub
-
- }
-
- public void init(AMContext arg0) throws AccessDeniedException,
- Exception {
-
- this.amContext = arg0;
-
- }
-
- public boolean isGranted(ItemId arg0,
- int arg1) throws ItemNotFoundException,
- RepositoryException {
- if (arg0.denotesNode()) {
- NodeId id = (NodeId) arg0;
- System.out.println(arg0);
-
-// try {
-// Node n = RepositorySession.getRepository().getSession().getNodeByUUID( id.getUUID().toString() );
-// System.out.println(n.getName());
-// } catch (Exception e) {
-// System.out.println(e);
-// }
- }
- //System.out.println("is granted: " + arg0);
- return true;
- }
-
- public boolean canRead(Path itemPath) throws RepositoryException {
- // TODO Auto-generated method stub
- return true;
- }
-
- public void checkPermission(Path absPath, int permissions)
- throws AccessDeniedException, RepositoryException {
- // TODO Auto-generated method stub
-
- }
-
- public void init(AMContext context, AccessControlProvider acProvider,
- WorkspaceAccessManager wspAccessMgr) throws AccessDeniedException,
- Exception {
- // TODO Auto-generated method stub
-
- }
-
- public boolean isGranted(Path absPath, int permissions)
- throws RepositoryException {
- // TODO Auto-generated method stub
- return true;
- }
-
- public boolean isGranted(Path parentPath, Name childName, int permissions)
- throws RepositoryException {
- // TODO Auto-generated method stub
- return true;
- }
-
-}
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -11,6 +11,7 @@
import java.util.List;
import java.util.StringTokenizer;
+import javax.jcr.Binary;
import javax.jcr.ItemExistsException;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
@@ -129,7 +130,7 @@
public void updateBinaryUpToDate(boolean status) {
try {
checkIsUpdateable();
- node.checkout();
+ this.checkout();
node.setProperty("drools:binaryUpToDate", status);
} catch (RepositoryException e) {
log.error("fail to update drools:binaryUpToDate of " + getName(), e);
@@ -211,6 +212,7 @@
ruleNode.setProperty( AssetItem.PACKAGE_NAME_PROPERTY, this.getName() );
ruleNode.setProperty( CREATOR_PROPERTY_NAME, this.node.getSession().getUserID() );
+ rulesRepository.getSession().save();
AssetItem rule = new AssetItem( this.rulesRepository, ruleNode );
@@ -741,7 +743,7 @@
//System.out.println("(updateCategoryRules) keys: " + keys + " Values: " + values );
try {
- this.node.checkout();
+ this.checkout();
this.updateStringProperty(keys,CATEGORY_RULE_KEYS_PROPERTY_NAME);
this.updateStringProperty(values,CATEGORY_RULE_VALUES_PROPERTY_NAME);
@@ -812,7 +814,8 @@
public PackageItem updateCompiledPackage(InputStream data) {
checkout();
try {
- this.node.setProperty( COMPILED_PACKAGE_PROPERTY_NAME, data );
+ Binary binary = this.node.getSession().getValueFactory().createBinary(data);
+ this.node.setProperty( COMPILED_PACKAGE_PROPERTY_NAME, binary );
this.node.setProperty( LAST_MODIFIED_PROPERTY_NAME,
Calendar.getInstance() );
return this;
@@ -831,7 +834,7 @@
Node ruleNode = getVersionContentNode();
if ( ruleNode.hasProperty( COMPILED_PACKAGE_PROPERTY_NAME ) ) {
Property data = ruleNode.getProperty( COMPILED_PACKAGE_PROPERTY_NAME );
- InputStream in = data.getStream();
+ InputStream in = data.getBinary().getStream();
// Create the byte array to hold the data
byte[] bytes = new byte[(int) data.getLength()];
@@ -867,7 +870,7 @@
*/
public PackageItem createSubPackage(String subPackageName) throws RepositoryException {
- node.checkout();
+ this.checkout();
log.info( "USER: {} CREATEING subpackage [{}] under [{}]", new Object[] {getCurrentUserName(), subPackageName, getName() });
Node subPkgsNode;
try {
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositorySessionUtil.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositorySessionUtil.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositorySessionUtil.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -6,11 +6,7 @@
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
-import org.apache.log4j.Logger;
-//import org.drools.repository.security.DroolsRepositoryAccessManager;
-//import junit.framework.Assert;
-
/**
* This is a utility to simulate session behavior for the test suite.
* @author Michael Neale
@@ -40,10 +36,10 @@
public static RulesRepository getRepository() throws RulesRepositoryException {
RulesRepository repoInstance = repo.get();
- System.out.println("----------getRepository");
+ //System.out.println("----------getRepository");
if ( repoInstance == null ) {
- System.out.println("----------repoInstance == null");
+ //System.out.println("----------repoInstance == null");
File dir = new File( "repository" );
System.out.println( "DELETING test repo: " + dir.getAbsolutePath() );
@@ -68,7 +64,7 @@
config.setupRulesRepository( session );
repoInstance = new RulesRepository( session );
- Session adminSession = repository.login(new SimpleCredentials("ADMINISTRATOR", "password".toCharArray()));
+ repository.login(new SimpleCredentials("ADMINISTRATOR", "password".toCharArray()));
//loonie hack
//DroolsRepositoryAccessManager.adminThreadlocal.set( adminSession );
repo.set( repoInstance );
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -550,7 +550,7 @@
Node sourceNode = pkgSnaps.getNode( snapshotName );
if (pkgSnaps.hasNode(newName)) {
pkgSnaps.getNode(newName).remove();
- pkgSnaps.save();
+ this.session.save();
}
String destinationPath = pkgSnaps.getPath() + "/" + newName;
@@ -602,7 +602,7 @@
*/
public PackageItem loadPackageByUUID(String uuid) throws RulesRepositoryException {
try {
- Node rulePackageNode = this.session.getNodeByUUID( uuid );
+ Node rulePackageNode = this.session.getNodeByIdentifier( uuid );
return new PackageItem( this,
rulePackageNode );
} catch ( Exception e ) {
@@ -644,7 +644,7 @@
*/
public AssetItem loadAssetByUUID(String uuid) {
try {
- Node rulePackageNode = this.session.getNodeByUUID( uuid );
+ Node rulePackageNode = this.session.getNodeByIdentifier( uuid );
return new AssetItem( this,
rulePackageNode );
} catch (ItemNotFoundException e) {
@@ -1176,7 +1176,8 @@
this.session.move( sourcePath,
destPath );
-
+ this.session.save();
+
item.checkout();
item.node.setProperty( AssetItem.PACKAGE_NAME_PROPERTY,
newPackage );
@@ -1203,6 +1204,7 @@
String destPath = node.getParent().getPath() + "/" + newAssetName;
this.session.move( sourcePath,
destPath );
+ this.session.save();
itemOriginal.updateTitle( newAssetName );
itemOriginal.checkin( "Renamed asset " + itemOriginal.getName() );
@@ -1264,6 +1266,8 @@
String destPath = node.getParent().getPath() + "/" + newPackageName;
this.session.move( sourcePath,
destPath );
+
+ this.session.save();
itemOriginal.updateTitle( newPackageName );
itemOriginal.checkin( "Renamed package " + itemOriginal.getName() );
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -12,6 +12,7 @@
import javax.jcr.UnsupportedRepositoryOperationException;
import javax.jcr.Value;
import javax.jcr.lock.LockException;
+import javax.jcr.version.VersionManager;
import org.drools.repository.events.StorageEventManager;
@@ -86,7 +87,7 @@
*/
public String getUUID() {
try {
- return this.getVersionContentNode().getUUID();
+ return this.getVersionContentNode().getIdentifier();
} catch ( RepositoryException e ) {
throw new RulesRepositoryException(e);
}
@@ -113,14 +114,14 @@
if (this.node.getPrimaryNodeType().getName().equals("nt:version")) {
versionNode = this.node;
} else {
- versionNode = this.node.getBaseVersion();
+ versionNode = getVersionManager(this.node).getBaseVersion(this.node.getPath());
}
Property predecessorsProperty = versionNode.getProperty("jcr:predecessors");
Value[] predecessorValues = predecessorsProperty.getValues();
if (predecessorValues.length > 0) {
- Node predecessorNode = this.node.getSession().getNodeByUUID(predecessorValues[0].getString());
+ Node predecessorNode = this.node.getSession().getNodeByIdentifier(predecessorValues[0].getString());
// we don't want to return the root node - it isn't a true
// predecessor
@@ -149,7 +150,7 @@
Value[] successorValues = successorsProperty.getValues();
if ( successorValues.length > 0 ) {
- Node successorNode = this.node.getSession().getNodeByUUID( successorValues[0].getString() );
+ Node successorNode = this.node.getSession().getNodeByIdentifier( successorValues[0].getString() );
return successorNode;
}
} catch ( PathNotFoundException e ) {
@@ -305,7 +306,7 @@
return;
}
- node.checkout();
+ this.checkout();
node.setProperty( prop,
value );
if (setLastUpdated) {
@@ -333,7 +334,7 @@
return;
}
- node.checkout();
+ this.checkout();
node.setProperty(prop, value);
if (setLastUpdated) {
Calendar lastModified = Calendar.getInstance();
@@ -420,7 +421,7 @@
*/
public void updateDescription(String newDescriptionContent) throws RulesRepositoryException {
try {
- this.node.checkout();
+ this.checkout();
//this.node.setProperty(arg0, arg1);
this.node.setProperty( DESCRIPTION_PROPERTY_NAME,
@@ -521,9 +522,8 @@
* @param targetNode the node to be checked out.
*/
public static void checkout(Node targetNode) {
-
try {
- targetNode.checkout();
+ getVersionManager(targetNode).checkout(targetNode.getPath());
} catch ( UnsupportedRepositoryOperationException e ) {
String message = "";
try {
@@ -562,7 +562,8 @@
long nextVersion = getVersionNumber() + 1;
this.node.setProperty( VERSION_NUMBER_PROPERTY_NAME, nextVersion );
this.node.getSession().save();
- this.node.checkin();
+
+ getVersionManager(this.node).checkin(this.node.getPath());
if (StorageEventManager.hasSaveEvent()) {
if (this instanceof AssetItem) {
@@ -649,7 +650,7 @@
try {
Node content = getVersionContentNode();
Property stateProperty = content.getProperty( STATE_PROPERTY_NAME );
- Node stateNode = this.rulesRepository.getSession().getNodeByUUID( stateProperty.getString() );
+ Node stateNode = this.rulesRepository.getSession().getNodeByIdentifier( stateProperty.getString() );
return new StateItem( this.rulesRepository,
stateNode );
} catch ( PathNotFoundException e ) {
@@ -827,7 +828,7 @@
public String getVersionSnapshotUUID() {
try {
if ( isHistoricalVersion() ) {
- return this.node.getUUID();
+ return this.node.getIdentifier();
} else {
throw new RulesRepositoryException( "This is the current version of the asset." );
}
@@ -862,6 +863,9 @@
throw new RulesRepositoryException(e);
}
}
+
+ public static VersionManager getVersionManager(Node targetNode) throws RepositoryException {
+ return targetNode.getSession().getWorkspace().getVersionManager();
+ }
-
}
Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ArchiveItemTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ArchiveItemTest.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ArchiveItemTest.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -153,6 +153,9 @@
item2.archiveItem( true );
// not archived until repository isn't save.
+/* assertEquals( 1,
+ repo.findAssetsByName( "findRulesByNameArchived1" ).getSize() );*/
+
List list = iteratorToList( repo.findAssetsByName( "findRulesByNameArchived1" ) );
assertEquals( 1,
list.size() );
Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -10,7 +10,6 @@
import javax.jcr.version.VersionIterator;
import junit.framework.TestCase;
-import org.drools.repository.events.StorageEventManager;
public class AssetItemTest extends TestCase {
@@ -256,7 +255,7 @@
ruleItem1 = getDefaultPackage().loadAsset( "testUpdateContent" );
- VersionIterator it = ruleItem1.getNode().getVersionHistory().getAllVersions();
+ VersionIterator it = VersionableItem.getVersionManager(ruleItem1.getNode()).getVersionHistory(ruleItem1.getNode().getPath()).getAllVersions();
// and this shows using a version iterator.
// perhaps migrate to using this rather then next/prev methods.
Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java 2010-05-17 12:26:46 UTC (rev 32902)
@@ -413,7 +413,7 @@
repo.save();
- String uuid = rule.getNode().getUUID();
+ String uuid = rule.getNode().getIdentifier();
AssetItem loaded = repo.loadAssetByUUID( uuid );
assertNotNull( loaded );
@@ -813,7 +813,7 @@
repo.createPackage( "testMove2",
"description" );
repo.moveRuleItemPackage( "testMove2",
- r.node.getUUID(),
+ r.node.getIdentifier(),
"explanation" );
pkg = repo.loadPackage( "testMove" );
Modified: labs/jbossrules/trunk/pom.xml
===================================================================
--- labs/jbossrules/trunk/pom.xml 2010-05-16 19:15:48 UTC (rev 32901)
+++ labs/jbossrules/trunk/pom.xml 2010-05-17 12:26:46 UTC (rev 32902)
@@ -1284,7 +1284,7 @@
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-core</artifactId>
- <version>1.6.0</version>
+ <version>2.1.0</version>
<!-- and getting rid of some annoying transitive junk not really needed for us -->
<exclusions>
<exclusion>
@@ -1312,7 +1312,7 @@
<!--dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
- <version>1.0</version>
+ <version>2.0</version>
</dependency-->
<dependency>
<groupId>org.tmatesoft</groupId>
More information about the jboss-svn-commits
mailing list