[jboss-svn-commits] JBL Code SVN: r19678 - in labs/jbossrules/trunk/drools-repository/src: test/java/org/drools/repository/remoteapi and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Apr 21 21:18:32 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-04-21 21:18:31 -0400 (Mon, 21 Apr 2008)
New Revision: 19678
Modified:
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/remoteapi/RestAPITest.java
Log:
when posting, if it already exists, and is archived, it unarchives it.
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java 2008-04-21 18:13:09 UTC (rev 19677)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/remoteapi/RestAPI.java 2008-04-22 01:18:31 UTC (rev 19678)
@@ -117,8 +117,18 @@
} else {
//new asset
PackageItem pkg = repo.loadPackage(bits[1]);
- AssetItem asset = pkg.addAsset(a[0], "<added remotely>");
- asset.updateFormat(a[1]);
+ AssetItem asset;
+ if (pkg.containsAsset(a[0])) {
+ asset = pkg.loadAsset(a[0]);
+ if (asset.isArchived()) {
+ asset.archiveItem(false);
+ } else {
+ throw new RulesRepositoryException("The file " + path + " already exists, and was not archived.");
+ }
+ } else {
+ asset = pkg.addAsset(a[0], "<added remotely>");
+ asset.updateFormat(a[1]);
+ }
if (binary) {
asset.updateBinaryContentAttachment(in);
} else {
Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/remoteapi/RestAPITest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/remoteapi/RestAPITest.java 2008-04-21 18:13:09 UTC (rev 19677)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/remoteapi/RestAPITest.java 2008-04-22 01:18:31 UTC (rev 19678)
@@ -15,6 +15,7 @@
import org.drools.repository.PackageItem;
import org.drools.repository.RepositorySessionUtil;
import org.drools.repository.RulesRepository;
+import org.drools.repository.RulesRepositoryException;
import org.drools.repository.RulesRepositoryTest;
import org.drools.repository.remoteapi.Response.Binary;
import org.drools.repository.remoteapi.Response.Text;
@@ -241,6 +242,25 @@
l = RulesRepositoryTest.iteratorToList(pkg.listArchivedAssets());
assertEquals(1, l.size());
+
+ //now test it back from the dead
+ api.post("packages/testRestDelete/asset1.drl", new ByteArrayInputStream("123".getBytes()), false, "new comment");
+ AssetItem ass = pkg.loadAsset("asset1");
+ assertEquals("123", ass.getContent());
+ assertEquals("new comment", ass.getCheckinComment());
+ assertFalse(ass.isArchived());
+ l = RulesRepositoryTest.iteratorToList(pkg.listAssetsByFormat(new String[] {"drl"}));
+ assertEquals(1, l.size());
+
+ try {
+ api.post("packages/testRestDelete/asset1.drl", new ByteArrayInputStream("123".getBytes()), false, "new comment");
+ fail("this should be rejected as its not archived.");
+ } catch (RulesRepositoryException e) {
+ assertNotNull(e.getMessage());
+ }
+
+
+
}
public void testSplit() throws Exception {
More information about the jboss-svn-commits
mailing list