[jboss-svn-commits] JBL Code SVN: r9687 - in labs/jbossrules/trunk/drools-repository/src: test/java/org/drools/repository and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Feb 21 23:18:04 EST 2007


Author: michael.neale at jboss.com
Date: 2007-02-21 23:18:04 -0500 (Wed, 21 Feb 2007)
New Revision: 9687

Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
Log:
JBRULES-673 copy asset feature

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	2007-02-21 22:57:32 UTC (rev 9686)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2007-02-22 04:18:04 UTC (rev 9687)
@@ -382,6 +382,27 @@
 
     
     /**
+     * This will copy an assets content to the new location.
+     */
+    public String copyAsset(String uuidSource, String destinationPackage, String destinationName) {
+        try {
+            AssetItem source = loadAssetByUUID( uuidSource );
+            String sourcePath = source.getNode().getPath();
+            
+            String destPath = this.getAreaNode( RULE_PACKAGE_AREA ).getPath() + "/" + destinationPackage +  "/" 
+                            + PackageItem.ASSET_FOLDER_NAME + "/" + destinationName;
+            this.session.getWorkspace().copy( sourcePath, destPath );
+            AssetItem dest = loadPackage( destinationPackage ).loadAsset( destinationName );
+            dest.updateStringProperty( destinationPackage, AssetItem.PACKAGE_NAME_PROPERTY );
+            dest.checkin( "Copied from " + source.getPackageName() + "/" + source.getName() );
+            return dest.getUUID();
+        } catch (RepositoryException e) {
+            log.error( "Unable to copy asset.", e );
+            throw new RulesRepositoryException( e );
+        }
+    }
+    
+    /**
      * Loads a RulePackage for the specified package name. Will throw
      * an exception if the specified rule package does not exist.
      * @param name the name of the package to load 

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	2007-02-21 22:57:32 UTC (rev 9686)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java	2007-02-22 04:18:04 UTC (rev 9687)
@@ -256,6 +256,20 @@
         assertEquals(uuid, r.getUUID());
     }
     
+    public void testCopyAsset() throws Exception {
+        RulesRepository repo = RepositorySessionUtil.getRepository();
+        repo.createPackage( "testCopyAsset", "asset" );
+        AssetItem item = repo.loadDefaultPackage().addAsset( "testCopyAssetSource", "desc" );
+        item.updateContent( "la" );
+        item.checkin( "" );
+        
+        String uuid = repo.copyAsset( item.getUUID(), "testCopyAsset", "testCopyAssetDestination" );
+        AssetItem dest = repo.loadAssetByUUID( uuid );
+        assertEquals("la", dest.getContent());
+        assertEquals("testCopyAsset", dest.getPackageName());
+        assertFalse(uuid.equals( item.getUUID() ));
+    }
+    
     public void testListStates()  {
         RulesRepository repo = RepositorySessionUtil.getRepository();
         StateItem[] items = repo.listStates();




More information about the jboss-svn-commits mailing list