[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