[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