[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