[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