[jboss-svn-commits] JBL Code SVN: r9801 - 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
Tue Feb 27 01:27:19 EST 2007
Author: michael.neale at jboss.com
Date: 2007-02-27 01:27:19 -0500 (Tue, 27 Feb 2007)
New Revision: 9801
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/PackageItemTest.java
Log:
JBRULES-644 Nearly done, a few simple actions to go
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-27 02:44:57 UTC (rev 9800)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2007-02-27 06:27:19 UTC (rev 9801)
@@ -477,7 +477,7 @@
Node snaps = this.getAreaNode( PACKAGE_SNAPSHOT_AREA );
if (!snaps.hasNode( packageName )) {
- return;
+ throw new RulesRepositoryException("The package " + packageName + " does not have any snapshots.");
}
Node pkgSnaps = snaps.getNode( packageName );
@@ -494,6 +494,33 @@
}
/**
+ * Copies a snapshot to the new location/label.
+ * @param packageName The name of the package.
+ * @param snapshotName The label of the source snapshot
+ * @param newName The new label. The old one is left intact.
+ */
+ public void copyPackageSnapshot(String packageName, String snapshotName, String newName) {
+ log.info( "Creating snapshot for [" + packageName + "] called [" + snapshotName + "]");
+ try {
+ Node snaps = this.getAreaNode( PACKAGE_SNAPSHOT_AREA );
+
+
+
+ Node pkgSnaps = snaps.getNode( packageName );
+
+ Node sourceNode = pkgSnaps.getNode( snapshotName );
+
+ String destinationPath = pkgSnaps.getPath() + "/" + newName;
+
+
+ this.session.getWorkspace().copy( sourceNode.getPath(), destinationPath );
+ } catch (RepositoryException e) {
+ log.error( "Unable to create snapshot", e );
+ throw new RulesRepositoryException(e);
+ }
+ }
+
+ /**
* This will return or create the default package for rules that have no home yet.
*/
public PackageItem loadDefaultPackage() throws RulesRepositoryException {
Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java 2007-02-27 02:44:57 UTC (rev 9800)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java 2007-02-27 06:27:19 UTC (rev 9801)
@@ -153,6 +153,12 @@
repo.removePackageSnapshot( "testPackageSnapshot", "XX" );
//does nothing... but should not barf...
+ try {
+ repo.removePackageSnapshot( "NOTHING SENSIBLE", "XX" );
+ fail("should not be able to remove this.");
+ } catch (RulesRepositoryException e) {
+ assertNotNull(e.getMessage());
+ }
repo.removePackageSnapshot( "testPackageSnapshot", "PROD 2.0" );
repo.save();
@@ -160,6 +166,17 @@
res = repo.listPackageSnapshots( "testPackageSnapshot" );
assertEquals(0, res.length);
+ repo.createPackageSnapshot( "testPackageSnapshot", "BOO" );
+ res = repo.listPackageSnapshots( "testPackageSnapshot" );
+ assertEquals(1, res.length);
+ repo.copyPackageSnapshot( "testPackageSnapshot", "BOO", "BOO2" );
+ res = repo.listPackageSnapshots( "testPackageSnapshot" );
+ assertEquals(2, res.length);
+
+ assertEquals("BOO", res[0]);
+ assertEquals("BOO2", res[1]);
+
+
}
private RulesRepository getRepo() {
More information about the jboss-svn-commits
mailing list