[jboss-svn-commits] JBL Code SVN: r15873 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/server/contenthandler and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 17 05:57:11 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-10-17 05:57:11 -0400 (Wed, 17 Oct 2007)
New Revision: 15873

Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentManager.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/AssetFileServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java
   labs/jbossrules/trunk/drools-jbrms/src/main/webapp/org.drools.brms.JBRMS/JBRMS.css
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/FileManagerUtilsTest.java
Log:
JBRULES-1280 Auto importing of types

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css	2007-10-17 08:47:44 UTC (rev 15872)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css	2007-10-17 09:57:11 UTC (rev 15873)
@@ -466,7 +466,7 @@
 	-webkit-border-radius:.7em;
 	-khtml-border-radius:.7em;
 	border-radius:.7em;
-	background:#FFFFF0;
+	background:#white;
 }
 .dt-editor-DescriptionCell,.dt-editor-CountColumn {
 	font-size:smaller;

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentManager.java	2007-10-17 08:47:44 UTC (rev 15872)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentManager.java	2007-10-17 09:57:11 UTC (rev 15873)
@@ -1,5 +1,21 @@
 package org.drools.brms.server.contenthandler;
 
+/*
+ * Copyright 2005 Barry Knapp
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Iterator;

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java	2007-10-17 08:47:44 UTC (rev 15872)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java	2007-10-17 09:57:11 UTC (rev 15873)
@@ -1,13 +1,14 @@
 package org.drools.brms.server.contenthandler;
+
 /*
  * Copyright 2005 JBoss Inc
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -15,26 +16,60 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
 
-
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.repository.AssetItem;
 import org.drools.repository.PackageItem;
 
 import com.google.gwt.user.client.rpc.SerializableException;
 
+/**
+ * This is used for handling jar models for the rules.
+ * @author Michael Neale
+ */
 public class ModelContentHandler extends ContentHandler {
 
+	public void retrieveAssetContent(RuleAsset asset, PackageItem pkg,
+			AssetItem item) throws SerializableException {
+		// do nothing, as we have an attachment
+	}
 
-    public void retrieveAssetContent(RuleAsset asset,
-                                     PackageItem pkg,
-                                     AssetItem item) throws SerializableException {
-        //do nothing, as we have an attachment
-    }
+	public void storeAssetContent(RuleAsset asset, AssetItem repoAsset)
+			throws SerializableException {
+		// do nothing, as we have an attachment
+	}
 
-    public void storeAssetContent(RuleAsset asset,
-                                  AssetItem repoAsset) throws SerializableException {
-        //do nothing, as we have an attachment
-    }
+	/**
+	 * This is called when a model jar is attached, it will peer into it, and then automatically add imports
+	 * if there aren't any already in the package header configuration.
+	 */
+	public void modelAttached(AssetItem asset) throws IOException {
+		InputStream in = asset.getBinaryContentAttachment();
 
+		PackageItem pkg = asset.getPackage();
+		if (pkg.getHeader() == null || "".equals(pkg.getHeader().trim())) {
+			StringBuilder buf = new StringBuilder();
+
+			JarInputStream jis = new JarInputStream(in);
+			JarEntry entry = null;
+			while ((entry = jis.getNextJarEntry()) != null) {
+				if (!entry.isDirectory()) {
+					if (entry.getName().endsWith(".class")) {
+						 buf.append("import " + entry.getName().replace(".class", "").replace("/", "."));
+						 buf.append("\n");
+					}
+				}
+			}
+
+			pkg.updateHeader(buf.toString());
+
+			pkg.checkin("Imports setup automatically on model import.");
+
+		}
+	}
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/AssetFileServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/AssetFileServlet.java	2007-10-17 08:47:44 UTC (rev 15872)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/AssetFileServlet.java	2007-10-17 09:57:11 UTC (rev 15873)
@@ -1,13 +1,13 @@
 package org.drools.brms.server.files;
 /*
  * Copyright 2005 JBoss Inc
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -29,22 +29,23 @@
 
 /**
  * This is for dealing with assets that have an attachment (ie assets that are really an attachment).
- * 
+ *
  * @author Michael Neale
  * @author Fernando Meyer
  */
 public class AssetFileServlet extends RepositoryServlet {
 
     private static final long serialVersionUID = 400L;
-    
 
+
     /**
-     * Posting accepts content of various types - 
+     * Posting accepts content of various types -
      * may be an attachement for an asset, or perhaps a repository import to process.
      */
     protected void doPost(HttpServletRequest request,
                           HttpServletResponse response) throws ServletException,
                                                        IOException {
+    	System.err.println("Posting to Asset File servlet");
         response.setContentType( "text/plain" );
         FormData uploadItem = new FileManagerUtils().getFormData( request );
 
@@ -62,9 +63,9 @@
     protected void doGet(HttpServletRequest req,
                          HttpServletResponse res) throws ServletException,
                                                  IOException {
-        
+
         String uuid = (String) req.getParameter( HTMLFileManagerFields.FORM_FIELD_UUID );
-        
+
         if ( uuid != null ) {
             processAttachmentDownload( uuid, res );
         } else {
@@ -72,13 +73,13 @@
             return;
         }
     }
-    
 
+
     private void processAttachmentDownload(String uuid, HttpServletResponse response) throws IOException {
         ByteArrayOutputStream output = new ByteArrayOutputStream();
         String filename = getFileManager().loadFileAttachmentByUUID( uuid, output );
 
-        
+
         response.setContentType( "application/x-download" );
         response.setHeader( "Content-Disposition",
                        "attachment; filename=" + filename + ";");
@@ -87,15 +88,15 @@
         response.getOutputStream().flush();
     }
 
-    
+
     private String processAttachFileToAsset(FormData uploadItem) throws IOException {
 
         FileManagerUtils manager = getFileManager();
         manager.attachFile( uploadItem );
         uploadItem.getFile().getInputStream().close();
-        
+
         return "OK";
     }
 
-    
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java	2007-10-17 08:47:44 UTC (rev 15872)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java	2007-10-17 09:57:11 UTC (rev 15873)
@@ -33,6 +33,8 @@
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;
 import org.drools.brms.client.common.HTMLFileManagerFields;
+import org.drools.brms.server.contenthandler.ContentHandler;
+import org.drools.brms.server.contenthandler.ModelContentHandler;
 import org.drools.brms.server.util.ClassicDRLImporter;
 import org.drools.brms.server.util.FormData;
 import org.drools.brms.server.util.ClassicDRLImporter.Asset;
@@ -72,18 +74,30 @@
 
         attachFileToAsset( uuid, fileData, fileName );
         uploadItem.getFile().getInputStream().close();
+
     }
 
     /**
      * This utility method attaches a file to an asset.
+     * @throws IOException
      */
     @Restrict("#{identity.loggedIn}")
-    public void attachFileToAsset(String uuid, InputStream fileData, String fileName) {
+    public void attachFileToAsset(String uuid, InputStream fileData, String fileName) throws IOException {
 
         AssetItem item = repository.loadAssetByUUID( uuid );
         item.updateBinaryContentAttachment( fileData );
         item.updateBinaryContentAttachmentFileName( fileName );
         item.checkin( "Attached file: " + fileName );
+
+
+        //special treatment for model attachments.
+
+        ContentHandler handler = ContentHandler.getHandler(item.getFormat());
+        if (handler instanceof ModelContentHandler) {
+        	((ModelContentHandler)handler).modelAttached(item);
+        }
+
+
     }
 
     /**

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/webapp/org.drools.brms.JBRMS/JBRMS.css
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/webapp/org.drools.brms.JBRMS/JBRMS.css	2007-10-17 08:47:44 UTC (rev 15872)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/webapp/org.drools.brms.JBRMS/JBRMS.css	2007-10-17 09:57:11 UTC (rev 15873)
@@ -466,7 +466,7 @@
 	-webkit-border-radius:.7em;
 	-khtml-border-radius:.7em;
 	border-radius:.7em;
-	background:#FFFFF0;
+	background:#white;
 }
 .dt-editor-DescriptionCell,.dt-editor-CountColumn {
 	font-size:smaller;

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/FileManagerUtilsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/FileManagerUtilsTest.java	2007-10-17 08:47:44 UTC (rev 15872)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/FileManagerUtilsTest.java	2007-10-17 09:57:11 UTC (rev 15873)
@@ -1,4 +1,5 @@
 package org.drools.brms.server.util;
+
 /*
  * Copyright 2005 JBoss Inc
  *
@@ -15,8 +16,6 @@
  * limitations under the License.
  */
 
-
-
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -25,7 +24,6 @@
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 
@@ -42,294 +40,324 @@
 
 public class FileManagerUtilsTest extends TestCase {
 
-    public void testAttachFile() throws Exception {
+	public void testAttachFile() throws Exception {
 
-        FileManagerUtils uploadHelper = new FileManagerUtils();
+		FileManagerUtils uploadHelper = new FileManagerUtils();
 
-        RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper.getSession());
-        uploadHelper.repository = repo;
-        AssetItem item = repo.loadDefaultPackage().addAsset( "testUploadFile", "description" );
-        FormData upload = new FormData();
+		RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper
+				.getSession());
+		uploadHelper.repository = repo;
+		AssetItem item = repo.loadDefaultPackage().addAsset("testUploadFile",
+				"description");
+		item.updateFormat("drl");
+		FormData upload = new FormData();
 
-        upload.setFile( new MockFile() );
-        upload.setUuid( item.getUUID() );
+		upload.setFile(new MockFile());
+		upload.setUuid(item.getUUID());
 
+		uploadHelper.attachFile(upload);
 
-        uploadHelper.attachFile( upload );
+		AssetItem item2 = repo.loadDefaultPackage().loadAsset("testUploadFile");
+		byte[] data = item2.getBinaryContentAsBytes();
 
-        AssetItem item2 = repo.loadDefaultPackage().loadAsset( "testUploadFile" );
-        byte[] data = item2.getBinaryContentAsBytes();
+		assertNotNull(data);
+		assertEquals("foo bar", new String(data));
+		assertEquals("foo.bar", item2.getBinaryContentAttachmentFileName());
+	}
 
-        assertNotNull(data);
-        assertEquals("foo bar", new String(data));
-        assertEquals("foo.bar", item2.getBinaryContentAttachmentFileName());
-    }
+	public void testAttachModel() throws Exception {
+		RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper
+				.getSession());
+		PackageItem pkg = repo.createPackage("testAttachModelImports", "heh");
+		AssetItem asset = pkg.addAsset("MyModel", "");
+		asset.updateFormat(AssetFormats.MODEL);
+		asset.checkin("");
 
-    public void testUploadXmlFile() throws Exception {
-        RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper.getSession());
 
-        repo.createPackage( "testUploadXmlFile", "comment" );
-        repo.importRulesRepository( repo.dumpRepositoryXml() );
-        assertTrue( repo.containsPackage( "testUploadXmlFile" ) );
-    }
 
-    public void testGetFilebyUUID() throws Exception {
-        FileManagerUtils uploadHelper = new FileManagerUtils();
-        RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper.getSession());
-        uploadHelper.repository = repo;
-        AssetItem item = repo.loadDefaultPackage().addAsset( "testGetFilebyUUID", "description" );
-        FormData upload = new FormData();
 
-        upload.setFile( new MockFile() );
-        upload.setUuid( item.getUUID() );
-        uploadHelper.attachFile( upload );
+		FileManagerUtils fm = new FileManagerUtils();
+		fm.repository = repo;
 
+		fm.attachFileToAsset(asset.getUUID(), this.getClass().getResourceAsStream("/billasurf.jar"), "billasurf.jar");
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream ();
+		pkg = repo.loadPackage("testAttachModelImports");
+		assertNotNull(pkg.getHeader());
+		assertTrue(pkg.getHeader().indexOf("import com.billasurf.Board") > -1);
+		assertTrue(pkg.getHeader().indexOf("import com.billasurf.Person") > -1);
 
-        String filename = uploadHelper.loadFileAttachmentByUUID(item.getUUID(), out );
 
-        assertNotNull(out.toByteArray());
-        assertEquals("foo bar", new String(out.toByteArray()));
-        assertEquals("foo.bar", filename);
-    }
+		pkg.updateHeader("goo wee");
+		pkg.checkin("");
 
-    public void testGetBinaryPackage() throws Exception {
 
-        RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper.getSession());
-        ServiceImplementation impl = new ServiceImplementation();
-        impl.repository = repo;
+		fm.attachFileToAsset(asset.getUUID(), this.getClass().getResourceAsStream("/billasurf.jar"), "billasurf.jar");
+		pkg = repo.loadPackage("testAttachModelImports");
+		assertEquals("goo wee", pkg.getHeader());
 
+	}
 
-        long before = System.currentTimeMillis();
-        Thread.sleep( 20 );
-        FileManagerUtils uploadHelper = new FileManagerUtils();
+	public void testUploadXmlFile() throws Exception {
+		RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper
+				.getSession());
 
-        uploadHelper.repository = repo;
-        PackageItem pkg = repo.createPackage( "testGetBinaryPackageServlet", "" );
-        pkg.updateHeader( "import java.util.List" );
-        pkg.updateCompiledPackage( new ByteArrayInputStream("foo".getBytes()) );
-        pkg.checkin( "" );
+		repo.createPackage("testUploadXmlFile", "comment");
+		repo.importRulesRepository(repo.dumpRepositoryXml());
+		assertTrue(repo.containsPackage("testUploadXmlFile"));
+	}
 
-        assertTrue(before < uploadHelper.getLastModified( pkg.getName(), "LATEST" ));
+	public void testGetFilebyUUID() throws Exception {
+		FileManagerUtils uploadHelper = new FileManagerUtils();
+		RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper
+				.getSession());
+		uploadHelper.repository = repo;
+		AssetItem item = repo.loadDefaultPackage().addAsset(
+				"testGetFilebyUUID", "description");
+		item.updateFormat("drl");
+		FormData upload = new FormData();
 
+		upload.setFile(new MockFile());
+		upload.setUuid(item.getUUID());
+		uploadHelper.attachFile(upload);
 
-        impl.createPackageSnapshot( pkg.getName(), "SNAPPY 1", false, "" );
+		ByteArrayOutputStream out = new ByteArrayOutputStream();
 
+		String filename = uploadHelper.loadFileAttachmentByUUID(item.getUUID(),
+				out);
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        String fileName = uploadHelper.loadBinaryPackage( pkg.getName(), PackageSnapshotView.LATEST_SNAPSHOT, true, out );
-        assertEquals("testGetBinaryPackageServlet.pkg", fileName);
-        byte[] file = out.toByteArray();
-        assertNotNull(file);
-        assertEquals("foo", new String(file));
+		assertNotNull(out.toByteArray());
+		assertEquals("foo bar", new String(out.toByteArray()));
+		assertEquals("foo.bar", filename);
+	}
 
+	public void testGetBinaryPackage() throws Exception {
 
-        out = new ByteArrayOutputStream();
-        fileName = uploadHelper.loadBinaryPackage( pkg.getName(),"SNAPPY 1", false, out );
-        assertEquals("testGetBinaryPackageServlet_SNAPPY+1.pkg", fileName);
-        file = out.toByteArray();
-        assertNotNull(file);
-        assertEquals("foo", new String(file));
+		RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper
+				.getSession());
+		ServiceImplementation impl = new ServiceImplementation();
+		impl.repository = repo;
 
-        Thread.sleep( 100 );
-        impl.createPackageSnapshot( pkg.getName(), "SNAPX", false, "" );
+		long before = System.currentTimeMillis();
+		Thread.sleep(20);
+		FileManagerUtils uploadHelper = new FileManagerUtils();
 
+		uploadHelper.repository = repo;
+		PackageItem pkg = repo.createPackage("testGetBinaryPackageServlet", "");
+		pkg.updateHeader("import java.util.List");
+		pkg.updateCompiledPackage(new ByteArrayInputStream("foo".getBytes()));
+		pkg.checkin("");
 
-        long lastMod = uploadHelper.getLastModified( pkg.getName(), "SNAPPY 1");
-        assertTrue(pkg.getLastModified().getTimeInMillis() < lastMod);
+		assertTrue(before < uploadHelper.getLastModified(pkg.getName(),
+				"LATEST"));
 
-        Thread.sleep( 100 );
+		impl.createPackageSnapshot(pkg.getName(), "SNAPPY 1", false, "");
 
-        impl.createPackageSnapshot( pkg.getName(), "SNAPX", true, "yeah");
+		ByteArrayOutputStream out = new ByteArrayOutputStream();
+		String fileName = uploadHelper.loadBinaryPackage(pkg.getName(),
+				PackageSnapshotView.LATEST_SNAPSHOT, true, out);
+		assertEquals("testGetBinaryPackageServlet.pkg", fileName);
+		byte[] file = out.toByteArray();
+		assertNotNull(file);
+		assertEquals("foo", new String(file));
 
-        long lastMod2 = uploadHelper.getLastModified( pkg.getName(), "SNAPX");
-        assertTrue(lastMod < lastMod2);
+		out = new ByteArrayOutputStream();
+		fileName = uploadHelper.loadBinaryPackage(pkg.getName(), "SNAPPY 1",
+				false, out);
+		assertEquals("testGetBinaryPackageServlet_SNAPPY+1.pkg", fileName);
+		file = out.toByteArray();
+		assertNotNull(file);
+		assertEquals("foo", new String(file));
 
+		Thread.sleep(100);
+		impl.createPackageSnapshot(pkg.getName(), "SNAPX", false, "");
 
-    }
+		long lastMod = uploadHelper.getLastModified(pkg.getName(), "SNAPPY 1");
+		assertTrue(pkg.getLastModified().getTimeInMillis() < lastMod);
 
-    public void testClassicDRLImport() throws Exception {
-        FileManagerUtils fm = new FileManagerUtils();
-        fm.repository = new RulesRepository(TestEnvironmentSessionHelper.getSession());
-        String drl = "package testClassicDRLImport\n import blah \n rule 'ola' \n when \n then \n end \n rule 'hola' \n when \n then \n end";
-        InputStream in = new ByteArrayInputStream(drl.getBytes());
-        fm.importClassicDRL( in );
+		Thread.sleep(100);
 
-        PackageItem pkg = fm.repository.loadPackage( "testClassicDRLImport" );
-        assertNotNull(pkg);
+		impl.createPackageSnapshot(pkg.getName(), "SNAPX", true, "yeah");
 
+		long lastMod2 = uploadHelper.getLastModified(pkg.getName(), "SNAPX");
+		assertTrue(lastMod < lastMod2);
 
-        List<AssetItem> rules = iteratorToList(pkg.getAssets());
-        assertEquals(2, rules.size());
+	}
 
-        final AssetItem rule1 = rules.get( 0 );
-        assertEquals("ola", rule1.getName());
-        assertNotNull(rule1.getContent());
-        assertEquals(AssetFormats.DRL, rule1.getFormat());
-        assertTrue(rule1.getContent().indexOf( "when" ) > -1);
+	public void testClassicDRLImport() throws Exception {
+		FileManagerUtils fm = new FileManagerUtils();
+		fm.repository = new RulesRepository(TestEnvironmentSessionHelper
+				.getSession());
+		String drl = "package testClassicDRLImport\n import blah \n rule 'ola' \n when \n then \n end \n rule 'hola' \n when \n then \n end";
+		InputStream in = new ByteArrayInputStream(drl.getBytes());
+		fm.importClassicDRL(in);
 
+		PackageItem pkg = fm.repository.loadPackage("testClassicDRLImport");
+		assertNotNull(pkg);
 
-        final AssetItem rule2 = rules.get( 1 );
-        assertEquals("hola", rule2.getName());
-        assertNotNull(rule2.getContent());
-        assertEquals(AssetFormats.DRL, rule2.getFormat());
-        assertTrue(rule2.getContent().indexOf( "when" ) > -1);
+		List<AssetItem> rules = iteratorToList(pkg.getAssets());
+		assertEquals(2, rules.size());
 
-        assertNotNull(pkg.getHeader());
-        assertTrue(pkg.getHeader().indexOf( "import" ) > -1);
+		final AssetItem rule1 = rules.get(0);
+		assertEquals("ola", rule1.getName());
+		assertNotNull(rule1.getContent());
+		assertEquals(AssetFormats.DRL, rule1.getFormat());
+		assertTrue(rule1.getContent().indexOf("when") > -1);
 
+		final AssetItem rule2 = rules.get(1);
+		assertEquals("hola", rule2.getName());
+		assertNotNull(rule2.getContent());
+		assertEquals(AssetFormats.DRL, rule2.getFormat());
+		assertTrue(rule2.getContent().indexOf("when") > -1);
 
-        //now lets import an existing thing
-        drl = "package testClassicDRLImport\n import should not see \n rule 'ola2' \n when \n then \n end \n rule 'hola' \n when \n then \n end";
-        in = new ByteArrayInputStream(drl.getBytes());
-        fm.importClassicDRL( in );
+		assertNotNull(pkg.getHeader());
+		assertTrue(pkg.getHeader().indexOf("import") > -1);
 
-        pkg = fm.repository.loadPackage( "testClassicDRLImport" );
-        assertNotNull(pkg);
+		// now lets import an existing thing
+		drl = "package testClassicDRLImport\n import should not see \n rule 'ola2' \n when \n then \n end \n rule 'hola' \n when \n then \n end";
+		in = new ByteArrayInputStream(drl.getBytes());
+		fm.importClassicDRL(in);
 
-        //it should not overwrite this.
-        assertTrue(pkg.getHeader().indexOf( "import should not see" ) == -1);
+		pkg = fm.repository.loadPackage("testClassicDRLImport");
+		assertNotNull(pkg);
 
-        rules = iteratorToList(pkg.getAssets());
-        assertEquals(3, rules.size());
+		// it should not overwrite this.
+		assertTrue(pkg.getHeader().indexOf("import should not see") == -1);
 
+		rules = iteratorToList(pkg.getAssets());
+		assertEquals(3, rules.size());
 
-        //now we will import a change, check that it appears. a change to the "ola" rule
-        AssetItem assetOriginal = fm.repository.loadPackage("testClassicDRLImport").loadAsset("ola");
-        long ver = assetOriginal.getVersionNumber();
+		// now we will import a change, check that it appears. a change to the
+		// "ola" rule
+		AssetItem assetOriginal = fm.repository.loadPackage(
+				"testClassicDRLImport").loadAsset("ola");
+		long ver = assetOriginal.getVersionNumber();
 
+		drl = "package testClassicDRLImport\n import blah \n rule 'ola' \n when CHANGED\n then \n end \n rule 'hola' \n when \n then \n end";
+		in = new ByteArrayInputStream(drl.getBytes());
+		fm.importClassicDRL(in);
+		pkg = fm.repository.loadPackage("testClassicDRLImport");
+		AssetItem asset = pkg.loadAsset("ola");
 
+		assertTrue(asset.getContent().indexOf("CHANGED") > 0);
+		assertEquals(ver + 1, asset.getVersionNumber());
 
-        drl = "package testClassicDRLImport\n import blah \n rule 'ola' \n when CHANGED\n then \n end \n rule 'hola' \n when \n then \n end";
-        in = new ByteArrayInputStream(drl.getBytes());
-        fm.importClassicDRL( in );
-        pkg = fm.repository.loadPackage("testClassicDRLImport");
-        AssetItem asset = pkg.loadAsset("ola");
+	}
 
-        assertTrue(asset.getContent().indexOf("CHANGED") > 0);
-        assertEquals(ver + 1, asset.getVersionNumber());
+	public void testClassicDRLImportWithDSL() throws Exception {
+		FileManagerUtils fm = new FileManagerUtils();
+		fm.repository = new RulesRepository(TestEnvironmentSessionHelper
+				.getSession());
+		String drl = "package testClassicDRLImportDSL\n import blah \n expander goo \n rule 'ola' \n when \n then \n end \n rule 'hola' \n when \n then \n end";
+		InputStream in = new ByteArrayInputStream(drl.getBytes());
+		fm.importClassicDRL(in);
 
-    }
+		PackageItem pkg = fm.repository.loadPackage("testClassicDRLImportDSL");
+		assertNotNull(pkg);
 
-    public void testClassicDRLImportWithDSL() throws Exception {
-        FileManagerUtils fm = new FileManagerUtils();
-        fm.repository = new RulesRepository(TestEnvironmentSessionHelper.getSession());
-        String drl = "package testClassicDRLImportDSL\n import blah \n expander goo \n rule 'ola' \n when \n then \n end \n rule 'hola' \n when \n then \n end";
-        InputStream in = new ByteArrayInputStream(drl.getBytes());
-        fm.importClassicDRL( in );
+		List<AssetItem> rules = iteratorToList(pkg.getAssets());
+		assertEquals(2, rules.size());
 
-        PackageItem pkg = fm.repository.loadPackage( "testClassicDRLImportDSL" );
-        assertNotNull(pkg);
+		final AssetItem rule1 = rules.get(0);
+		assertEquals("ola", rule1.getName());
+		assertNotNull(rule1.getContent());
+		assertEquals(AssetFormats.DSL_TEMPLATE_RULE, rule1.getFormat());
+		assertTrue(rule1.getContent().indexOf("when") > -1);
 
+		final AssetItem rule2 = rules.get(1);
+		assertEquals("hola", rule2.getName());
+		assertNotNull(rule2.getContent());
+		assertEquals(AssetFormats.DSL_TEMPLATE_RULE, rule2.getFormat());
+		assertTrue(rule2.getContent().indexOf("when") > -1);
 
-        List<AssetItem> rules = iteratorToList(pkg.getAssets());
-        assertEquals(2, rules.size());
+		assertNotNull(pkg.getHeader());
+		assertTrue(pkg.getHeader().indexOf("import") > -1);
 
-        final AssetItem rule1 = rules.get( 0 );
-        assertEquals("ola", rule1.getName());
-        assertNotNull(rule1.getContent());
-        assertEquals(AssetFormats.DSL_TEMPLATE_RULE, rule1.getFormat());
-        assertTrue(rule1.getContent().indexOf( "when" ) > -1);
+	}
 
+	private List iteratorToList(Iterator assets) {
+		List<AssetItem> list = new ArrayList<AssetItem>();
+		for (Iterator iter = assets; iter.hasNext();) {
+			AssetItem rule = (AssetItem) iter.next();
+			list.add(rule);
+		}
+		return list;
 
-        final AssetItem rule2 = rules.get( 1 );
-        assertEquals("hola", rule2.getName());
-        assertNotNull(rule2.getContent());
-        assertEquals(AssetFormats.DSL_TEMPLATE_RULE, rule2.getFormat());
-        assertTrue(rule2.getContent().indexOf( "when" ) > -1);
+	}
 
-        assertNotNull(pkg.getHeader());
-        assertTrue(pkg.getHeader().indexOf( "import" ) > -1);
-
-    }
-
-
-    private List iteratorToList(Iterator assets) {
-        List<AssetItem> list = new ArrayList<AssetItem>();
-        for ( Iterator iter = assets; iter.hasNext(); ) {
-            AssetItem rule = (AssetItem) iter.next();
-            list.add( rule );
-        }
-        return list;
-
-    }
-
 }
 
 class MockFile implements FileItem {
 
-    private static final long serialVersionUID = 400L;
-    InputStream stream = new ByteArrayInputStream("foo bar".getBytes());
+	private static final long serialVersionUID = 400L;
 
-    public void setInputStream(InputStream is) throws IOException {
-        stream.close();
-        stream = is;
-    }
+	InputStream stream = new ByteArrayInputStream("foo bar".getBytes());
 
-    public void delete() {
-    }
+	public void setInputStream(InputStream is) throws IOException {
+		stream.close();
+		stream = is;
+	}
 
-    public byte[] get() {
+	public void delete() {
+	}
 
-        return null;
-    }
+	public byte[] get() {
 
-    public String getContentType() {
+		return null;
+	}
 
-        return null;
-    }
+	public String getContentType() {
 
-    public String getFieldName() {
+		return null;
+	}
 
-        return null;
-    }
+	public String getFieldName() {
 
-    public InputStream getInputStream() throws IOException {
-        return stream;
-    }
+		return null;
+	}
 
-    public String getName() {
-        return "foo.bar";
-    }
+	public InputStream getInputStream() throws IOException {
+		return stream;
+	}
 
-    public OutputStream getOutputStream() throws IOException {
+	public String getName() {
+		return "foo.bar";
+	}
 
-        return null;
-    }
+	public OutputStream getOutputStream() throws IOException {
 
-    public long getSize() {
-        return 0;
-    }
+		return null;
+	}
 
-    public String getString() {
-        return null;
-    }
+	public long getSize() {
+		return 0;
+	}
 
-    public String getString(String arg0) throws UnsupportedEncodingException {
-        return null;
-    }
+	public String getString() {
+		return null;
+	}
 
-    public boolean isFormField() {
-        return false;
-    }
+	public String getString(String arg0) throws UnsupportedEncodingException {
+		return null;
+	}
 
-    public boolean isInMemory() {
-        return false;
-    }
+	public boolean isFormField() {
+		return false;
+	}
 
-    public void setFieldName(String arg0) {
+	public boolean isInMemory() {
+		return false;
+	}
 
+	public void setFieldName(String arg0) {
 
-    }
+	}
 
-    public void setFormField(boolean arg0) {
+	public void setFormField(boolean arg0) {
 
+	}
 
-    }
+	public void write(File arg0) throws Exception {
 
-    public void write(File arg0) throws Exception {
+	}
 
-    }
-
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list