[jboss-svn-commits] JBL Code SVN: r19771 - in labs/jbossrules/trunk/drools-jbrms/src: test/java/org/drools/brms/server/files and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Apr 29 20:47:09 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-04-29 20:47:09 -0400 (Tue, 29 Apr 2008)
New Revision: 19771
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/util/FileManagerUtilsTest.java
Log:
JBRULES-1562 can download DRL now for packages - just ad .drl to the end of the url
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-04-30 00:46:14 UTC (rev 19770)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/FileManagerUtils.java 2008-04-30 00:47:09 UTC (rev 19771)
@@ -33,6 +33,7 @@
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.builder.ContentPackageAssembler;
import org.drools.brms.server.contenthandler.ContentHandler;
import org.drools.brms.server.contenthandler.ModelContentHandler;
import org.drools.brms.server.util.ClassicDRLImporter;
@@ -169,6 +170,34 @@
}
+
+ /**
+ * Load up the approproate package version.
+ * @param packageName The name of the package.
+ * @param packageVersion The version (if it is a snapshot).
+ * @param isLatest true if the latest package binary will be used (ie NOT a snapshot).
+ * @return The filename if its all good.
+ */
+ public String loadSourcePackage(String packageName, String packageVersion, boolean isLatest, OutputStream out) throws IOException {
+ PackageItem item = null;
+ if ( isLatest ) {
+ item = repository.loadPackage( packageName );
+ ContentPackageAssembler asm = new ContentPackageAssembler(item, false);
+ String drl = asm.getDRL();
+ out.write( drl.getBytes() );
+ out.flush();
+ return packageName + ".drl";
+ } else {
+ item = repository.loadPackageSnapshot( packageName, packageVersion );
+ ContentPackageAssembler asm = new ContentPackageAssembler(item, false);
+ String drl = asm.getDRL();
+ out.write( drl.getBytes() );
+ out.flush();
+ return packageName + "_" + URLEncoder.encode( packageVersion, "UTF-8" ) + ".drl";
+ }
+
+ }
+
public byte[] exportRulesRepository() {
try {
return this.repository.exportRulesRepository();
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-04-30 00:46:14 UTC (rev 19770)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentServlet.java 2008-04-30 00:47:09 UTC (rev 19771)
@@ -96,7 +96,11 @@
System.out.println( "PackageIsLatest: " + helper.isLatest() );
ByteArrayOutputStream out = new ByteArrayOutputStream();
- String fileName = getFileManager().loadBinaryPackage( helper.getPackageName(),
+ FileManagerUtils fm = getFileManager();
+ String fileName = (helper.isSource()) ? fm.loadBinaryPackage( helper.getPackageName(),
+ helper.getVersion(), helper.isLatest(), out )
+ :
+ fm.loadSourcePackage(helper.getPackageName(),
helper.getVersion(), helper.isLatest(), out );
response.setContentType( "application/x-download" );
response.setHeader( "Content-Disposition",
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-04-30 00:46:14 UTC (rev 19770)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java 2008-04-30 00:47:09 UTC (rev 19771)
@@ -36,11 +36,17 @@
private String version;
private String packageName;
+ private boolean source;
public PackageDeploymentURIHelper(String uri) throws UnsupportedEncodingException {
String url = URLDecoder.decode( uri, "UTF-8" );
+ if (url.endsWith(".drl")) {
+ source = true;
+ url = url.substring(0, url.length() - 4);
+ }
+
Pattern pattern = Pattern.compile( ".*/(package|asset)/(.*)" );
Matcher m = pattern.matcher( url );
if ( m.matches() ) {
@@ -62,4 +68,9 @@
public boolean isLatest() {
return Snapshot.LATEST_SNAPSHOT.equals( version );
}
+
+ public boolean isSource() {
+
+ return source;
+ }
}
\ 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-04-30 00:46:14 UTC (rev 19770)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/DeploymentURIHelperTest.java 2008-04-30 00:47:09 UTC (rev 19771)
@@ -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.
@@ -33,7 +33,19 @@
helper = new PackageDeploymentURIHelper("/asset/bar/LATEST");
assertTrue(helper.isLatest());
assertEquals("bar", helper.getPackageName());
-
+
}
+ public void testGetPackageWithDRL() throws Exception {
+ String uri = "/org.drools.brms.JBRMS/package/boo/ya+man.drl";
+ PackageDeploymentURIHelper helper = new PackageDeploymentURIHelper(uri);
+
+ assertTrue(helper.isSource());
+ assertEquals( "ya man", helper.getVersion() );
+ assertEquals( "boo", helper.getPackageName() );
+ assertFalse(helper.isLatest());
+
+
+ }
+
}
\ No newline at end of file
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 2008-04-30 00:46:14 UTC (rev 19770)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/FileManagerUtilsTest.java 2008-04-30 00:47:09 UTC (rev 19771)
@@ -134,7 +134,7 @@
assertEquals("foo.bar", filename);
}
- public void testGetBinaryPackage() throws Exception {
+ public void testGetPackageBinaryAndSource() throws Exception {
RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper
.getSession());
@@ -165,6 +165,13 @@
assertEquals("foo", new String(file));
out = new ByteArrayOutputStream();
+ String drlName = uploadHelper.loadSourcePackage(pkg.getName(), Snapshot.LATEST_SNAPSHOT, true, out);
+ String drl = new String(out.toByteArray());
+ assertEquals(pkg.getName() + ".drl", drlName);
+ assertNotNull(drl);
+ assertTrue(drl.indexOf("import java.util.List") > -1);
+
+ out = new ByteArrayOutputStream();
fileName = uploadHelper.loadBinaryPackage(pkg.getName(), "SNAPPY 1",
false, out);
assertEquals("testGetBinaryPackageServlet_SNAPPY+1.pkg", fileName);
@@ -172,6 +179,13 @@
assertNotNull(file);
assertEquals("foo", new String(file));
+ out = new ByteArrayOutputStream();
+ fileName = uploadHelper.loadSourcePackage(pkg.getName(), "SNAPPY 1", false, out);
+ assertEquals("testGetBinaryPackageServlet_SNAPPY+1.drl", fileName);
+ drl = new String(out.toByteArray());
+ assertTrue(drl.indexOf("import java.util.List") > -1);
+
+
Thread.sleep(100);
impl.createPackageSnapshot(pkg.getName(), "SNAPX", false, "");
More information about the jboss-svn-commits
mailing list