[jboss-svn-commits] JBL Code SVN: r11845 - in labs/jbossrules/trunk/drools-jbrms/src: main/webapp/WEB-INF and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon May 14 16:38:31 EDT 2007


Author: fmeyer
Date: 2007-05-14 16:38:31 -0400 (Mon, 14 May 2007)
New Revision: 11845

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/PackageDeploymentURIHelper.java
   labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/DeploymentURIHelperTest.java
Log:
JBRULES-852
	- corrected a bug on download deployment snapshot 
	- improve to use regular expression pattern matching recover instead StringTokenizer

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	2007-05-14 14:39:36 UTC (rev 11844)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentServlet.java	2007-05-14 20:38:31 UTC (rev 11845)
@@ -7,6 +7,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.log4j.Logger;
+import org.drools.repository.RulesRepository;
+
 /**
  * This servlet deals with providing packages in binary form.
  *   
@@ -15,6 +18,7 @@
 public class PackageDeploymentServlet extends RepositoryServlet {
 
     private static final long serialVersionUID = 3909768997932550498L;
+    private static final Logger log = Logger.getLogger( PackageDeploymentURIHelper.class );
     
 
     /**
@@ -44,6 +48,11 @@
                          HttpServletResponse response) throws ServletException,
                                                  IOException {
         PackageDeploymentURIHelper helper = new PackageDeploymentURIHelper(req.getRequestURI());
+        
+        System.out.println( "PackageName: " + helper.getPackageName() );
+        System.out.println( "PackageVersion: " + helper.getVersion() );
+        System.out.println( "PackageIsLatest: " + helper.isLatest() );
+
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         String fileName = uploadHelper.loadBinaryPackage( helper.getPackageName(), 
                                         helper.getVersion(), helper.isLatest(), out, getRepository() );

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	2007-05-14 14:39:36 UTC (rev 11844)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java	2007-05-14 20:38:31 UTC (rev 11845)
@@ -2,44 +2,45 @@
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
-import java.util.StringTokenizer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.drools.brms.client.packages.PackageSnapshotView;
 
 /**
  * Works out from the path URI what package is being requested.
+ * Uses Regular expression Pattern matching to recover packagename and version
+ * it works both with gwt hosted mode and application server standalone. 
  * 
  * @author Michael Neale
+ * @author Fernando Meyer
  */
 public class PackageDeploymentURIHelper {
-    
 
-    
     private String version;
     private String packageName;
 
     public PackageDeploymentURIHelper(String uri) throws UnsupportedEncodingException {
-        StringTokenizer tok = new StringTokenizer( URLDecoder.decode( uri, "UTF-8" ), "/" );
-        String[] toks = new String[tok.countTokens()];
-        int i = 0;
-        while ( tok.hasMoreTokens() ) {
-            toks[i] = tok.nextToken();
-            i++;
-        }
         
-        if ( i < 3 ) {
-            throw new IllegalArgumentException( "Bad URI - can't get a package binary for " + uri );
+        String url = URLDecoder.decode( uri, "UTF-8" );
+        
+        Pattern pattern = Pattern.compile( ".*/(package|asset)/(.*)" );
+        Matcher m = pattern.matcher( url );
+        if ( m.matches() ) {
+            String result = m.group(2);
+            String []mtoks = result.split( "/" );
+            
+            
+            this.version = mtoks[1];
+            this.packageName = mtoks[0];
         }
         
-        this.version = toks[i - 1];
-        this.packageName = toks[i -2];
     }
 
     public String getPackageName() {
         return packageName;
     }
 
-
     public String getVersion() {
         return version;
     }
@@ -47,10 +48,4 @@
     public boolean isLatest() {
         return PackageSnapshotView.LATEST_SNAPSHOT.equals( version );
     }
-
-
-    
-    
-    
-    
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml	2007-05-14 14:39:36 UTC (rev 11844)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml	2007-05-14 20:38:31 UTC (rev 11845)
@@ -44,7 +44,7 @@
 	</servlet-mapping>
 	<servlet-mapping>
 		<servlet-name>PackageDeploymentServlet</servlet-name>
-		<url-pattern>/org.drools.brms.JBRMS/package</url-pattern>
+		<url-pattern>/org.drools.brms.JBRMS/package/*</url-pattern>
 	</servlet-mapping>
 	<servlet-mapping>
 		<servlet-name>RepositoryBackupServlet</servlet-name>
@@ -53,7 +53,7 @@
 
 	<!-- following are security constraints, this can be modified to suit your environment -->
 	
-	<!-- ************ Uncomment to enable security
+	<!-- ************ Uncomment to enable security 
 	<security-constraint>
 		<web-resource-collection>
 			<web-resource-name>JBRMS Protected Area</web-resource-name>
@@ -92,6 +92,6 @@
 		<description>General user access</description>
 		<role-name>UserRol</role-name>
 	</security-role>
-	-->
+-->
 	
 </web-app>

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	2007-05-14 14:39:36 UTC (rev 11844)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/files/DeploymentURIHelperTest.java	2007-05-14 20:38:31 UTC (rev 11845)
@@ -5,8 +5,7 @@
 public class DeploymentURIHelperTest extends TestCase {
 
     public void testGetPackageToExport() throws Exception {
-        String uri = "/org.drools.brms.JBRMS/asset/boo/ya+man";
-        //from getPathInfo() on req.
+        String uri = "/org.drools.brms.JBRMS/package/boo/ya+man";
 
         PackageDeploymentURIHelper helper = new PackageDeploymentURIHelper(uri);
 
@@ -14,7 +13,7 @@
         assertEquals( "boo", helper.getPackageName() );
         assertFalse(helper.isLatest());
 
-        helper = new PackageDeploymentURIHelper("/foo/bar/LATEST");
+        helper = new PackageDeploymentURIHelper("/asset/bar/LATEST");
         assertTrue(helper.isLatest());
         assertEquals("bar", helper.getPackageName());
         




More information about the jboss-svn-commits mailing list