[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