[jboss-svn-commits] JBL Code SVN: r8720 - in labs/jbossrules/trunk/drools-repository/src: main/java/org/drools/repository test/java/org/drools/repository

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 5 12:56:59 EST 2007


Author: michael.neale at jboss.com
Date: 2007-01-05 12:56:52 -0500 (Fri, 05 Jan 2007)
New Revision: 8720

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/PackageItem.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/AssetItemTest.java
Log:
remove asset facility

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	2007-01-05 17:56:26 UTC (rev 8719)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java	2007-01-05 17:56:52 UTC (rev 8720)
@@ -330,6 +330,26 @@
         return getStringProperty( property );        
     }
     
+    
+    /**
+     * This will remove the item. 
+     * The repository will need to be saved for this to take effect.
+     * Typically the package that contains this should be versioned before removing this, 
+     * to make it easy to roll back.
+     */
+    public void remove() {
+        checkIsUpdateable();
+        if (this.getDateExpired() != null) {
+            if (this.getDateExpired().before( Calendar.getInstance() )) {
+                throw new RulesRepositoryException("Can't delete an item before its expiry date.");
+            }
+        }
+        try {
+            this.node.remove();
+        } catch ( RepositoryException e ) {
+            throw new RulesRepositoryException(e);
+        }        
+    }
 
     
 

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	2007-01-05 17:56:26 UTC (rev 8719)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2007-01-05 17:56:52 UTC (rev 8720)
@@ -169,7 +169,7 @@
      */
     public void removeAsset(String name) {
         try {
-            this.node.getNode( ASSET_FOLDER_NAME + "/" + name ).remove();
+            this.node.getNode( ASSET_FOLDER_NAME + "/" + name ).remove();            
         } catch ( RepositoryException e ) {
             throw new RulesRepositoryException( e );
         }
@@ -514,4 +514,18 @@
         }
         
     }
+    
+    /**
+     * Create a new version of the package, but leave statuses the same.
+     */
+    public void createBaseline(String comment) {
+        
+        checkin( comment );
+        try {
+            this.node.checkout();
+        } catch ( RepositoryException e ) {
+            throw new RulesRepositoryException("Unable to check out package node after creating a new baseline.", e);
+        }        
+        
+    }
 }
\ No newline at end of file

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	2007-01-05 17:56:26 UTC (rev 8719)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java	2007-01-05 17:56:52 UTC (rev 8720)
@@ -498,6 +498,7 @@
      * It will also set the last modified property.
      */
     public void checkin(String comment) {
+        checkIsUpdateable();
         try {
             this.node.setProperty( LAST_MODIFIED_PROPERTY_NAME, Calendar.getInstance() );
             this.node.setProperty( CHECKIN_COMMENT, comment );

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	2007-01-05 17:56:26 UTC (rev 8719)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java	2007-01-05 17:56:52 UTC (rev 8720)
@@ -551,7 +551,7 @@
         item.checkin( "lalalala" );
         try {
             item.updateUserProperty( "drools:content", "whee" );
-            fail("should not be able to set build in properties this way.");
+            fail("should not be able to set built in properties this way.");
         }
         catch (IllegalArgumentException e) {
             assertNotNull(e.getMessage());
@@ -559,4 +559,30 @@
 
         
     }
+    
+    public void testRemoveAssetAndVersion() throws Exception {
+        
+        
+        
+        AssetItem item = getRepo().loadDefaultPackage().addAsset( "testRemoveAsset", "lalalalala" );
+        getRepo().save();
+        getRepo().loadDefaultPackage().createBaseline( "la" );
+        String uuid = item.getUUID();
+        
+        AssetItem loaded = getRepo().loadAssetByUUID( uuid );//.loadPackage( "default" ).loadAsset( "testRemoveAsset" );
+        assertNotNull(loaded);
+        
+        item.remove();
+        getRepo().save();
+        getRepo().loadDefaultPackage().createBaseline( "la" );
+        
+        assertFalse(getRepo().loadPackage( "default" ).getNode().hasNode( "rules/testRemoveAsset" ));
+        
+        //now check that its in the old version
+        PackageItem old = (PackageItem) getRepo().loadDefaultPackage().getPrecedingVersion();
+        
+        AssetItem lazarus = old.loadAsset( "testRemoveAsset" );
+        assertNotNull(lazarus);
+        
+    }
 }




More information about the jboss-svn-commits mailing list