[jboss-svn-commits] JBL Code SVN: r20550 - in labs/jbossrules/trunk/drools-jbrms/src: test/java/org/drools/brms/server/files and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 17 02:56:48 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-06-17 02:56:48 -0400 (Tue, 17 Jun 2008)
New Revision: 20550
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/PackageDeploymentServlet.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/DeploymentURIHelperTest.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/PackageDeploymentServletTest.java
Log:
JBRULES-1648 URL to access generated DRL
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 2008-06-17 06:42:58 UTC (rev 20549)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java 2008-06-17 06:56:48 UTC (rev 20550)
@@ -23,14 +23,17 @@
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.drools.brms.client.common.HTMLFileManagerFields;
import org.drools.brms.server.ServiceImplementation;
+import org.drools.brms.server.builder.BRMSPackageBuilder;
import org.drools.brms.server.builder.ContentPackageAssembler;
import org.drools.brms.server.contenthandler.ContentHandler;
import org.drools.brms.server.contenthandler.ContentManager;
+import org.drools.brms.server.contenthandler.IRuleAsset;
import org.drools.brms.server.contenthandler.ModelContentHandler;
import org.drools.brms.server.util.ClassicDRLImporter;
import org.drools.brms.server.util.ClassicDRLImporter.Asset;
import org.drools.brms.server.util.FormData;
import org.drools.compiler.DroolsParserException;
+import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.repository.AssetItem;
import org.drools.repository.PackageItem;
import org.drools.repository.RulesRepository;
@@ -44,6 +47,8 @@
import javax.jcr.RepositoryException;
import javax.servlet.http.HttpServletRequest;
+
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -271,4 +276,35 @@
return item.getLastModified().getTimeInMillis();
}
+ public String loadSourceAsset(String packageName, String packageVersion,
+ boolean isLatest, String assetName, ByteArrayOutputStream out) throws IOException {
+ PackageItem pkg = null;
+ if ( isLatest ) {
+ pkg = repository.loadPackage( packageName );
+ } else {
+ pkg = repository.loadPackageSnapshot( packageName, packageVersion );
+ }
+
+ AssetItem item = pkg.loadAsset(assetName);
+ ContentHandler handler = ContentManager.getHandler( item.getFormat() );//new AssetContentFormatHandler();
+ StringBuffer buf = new StringBuffer();
+ if (handler.isRuleAsset()) {
+
+ BRMSPackageBuilder builder = new BRMSPackageBuilder(new PackageBuilderConfiguration());
+ //now we load up the DSL files
+ builder.setDSLFiles( BRMSPackageBuilder.getDSLMappingFiles( item.getPackage(), new BRMSPackageBuilder.DSLErrorEvent() {
+ public void recordError(AssetItem asset, String message) {
+ //ignore at this point...
+ }
+ }));
+ ((IRuleAsset) handler).assembleDRL( builder, item, buf );
+ out.write(buf.toString().getBytes());
+ return item.getName() + ".drl";
+ } else {
+ out.write(item.getContent().getBytes());
+ return item.getName() + ".drl";
+ }
+
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentServlet.java 2008-06-17 06:42:58 UTC (rev 20549)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentServlet.java 2008-06-17 06:56:48 UTC (rev 20550)
@@ -100,7 +100,11 @@
FileManagerUtils fm = getFileManager();
String fileName = null;
if (helper.isSource()) {
- fileName = fm.loadSourcePackage(helper.getPackageName(), helper.getVersion(), helper.isLatest(), out );
+ if (helper.isAsset()) {
+ fileName = fm.loadSourceAsset(helper.getPackageName(), helper.getVersion(), helper.isLatest(), helper.getAssetName(), out);
+ } else {
+ fileName = fm.loadSourcePackage(helper.getPackageName(), helper.getVersion(), helper.isLatest(), out );
+ }
} else {
fileName = fm.loadBinaryPackage( helper.getPackageName(), helper.getVersion(), helper.isLatest(), out );
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java 2008-06-17 06:42:58 UTC (rev 20549)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java 2008-06-17 06:56:48 UTC (rev 20550)
@@ -36,6 +36,7 @@
private String version;
private String packageName;
+ private String assetName = null;
private boolean source;
public PackageDeploymentURIHelper(String uri) throws UnsupportedEncodingException {
@@ -54,6 +55,9 @@
String []mtoks = result.split( "/" );
this.version = mtoks[1];
this.packageName = mtoks[0];
+ if (mtoks.length == 3) {
+ this.assetName = mtoks[2];
+ }
}
}
@@ -73,4 +77,13 @@
return source;
}
+
+ public String getAssetName() {
+ return this.assetName;
+
+ }
+
+ public boolean isAsset() {
+ return assetName != null;
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/DeploymentURIHelperTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/DeploymentURIHelperTest.java 2008-06-17 06:42:58 UTC (rev 20549)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/DeploymentURIHelperTest.java 2008-06-17 06:56:48 UTC (rev 20550)
@@ -33,7 +33,7 @@
helper = new PackageDeploymentURIHelper("/asset/bar/LATEST");
assertTrue(helper.isLatest());
assertEquals("bar", helper.getPackageName());
-
+ assertFalse(helper.isAsset());
}
public void testGetPackageWithDRL() throws Exception {
@@ -44,8 +44,20 @@
assertEquals( "ya man", helper.getVersion() );
assertEquals( "boo", helper.getPackageName() );
assertFalse(helper.isLatest());
+ assertFalse(helper.isAsset());
+ }
+ public void testGetAssetDRL() throws Exception {
+ String uri = "/org.drools.brms.JBRMS/package/packName/LATEST/assetName.drl";
+ PackageDeploymentURIHelper helper = new PackageDeploymentURIHelper(uri);
+ assertTrue(helper.isSource());
+ assertEquals("LATEST", helper.getVersion());
+ assertEquals("packName", helper.getPackageName());
+ assertEquals("assetName", helper.getAssetName());
+ assertTrue(helper.isAsset());
+
+
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/PackageDeploymentServletTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/PackageDeploymentServletTest.java 2008-06-17 06:42:58 UTC (rev 20549)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/PackageDeploymentServletTest.java 2008-06-17 06:56:48 UTC (rev 20550)
@@ -88,6 +88,19 @@
assertEquals(bin_.length, bin.length);
+ //now get an individual asset source
+ serv = new PackageDeploymentServlet();
+ req = new MockHTTPRequest("/package/testPDSGetPackage/SNAP1/someRule.drl", null);
+ out = new ByteArrayOutputStream();
+ res = new MockHTTPResponse(out);
+ serv.doGet(req, res);
+
+ assertNotNull(out.toByteArray());
+ drl = new String(out.toByteArray());
+ System.err.println(drl);
+ assertTrue(drl.indexOf("rule") > -1);
+ assertEquals(-1, drl.indexOf("package"));
+
}
private void assertSameArray(byte[] bin_, byte[] bin) {
More information about the jboss-svn-commits
mailing list