[jboss-svn-commits] JBL Code SVN: r10528 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/server/util and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Mar 25 07:50:15 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-03-25 07:50:15 -0400 (Sun, 25 Mar 2007)
New Revision: 10528

Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/RepositoryManager.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/RepositoryManagerTest.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/TestEnvironmentSessionHelper.java
Log:
JBRULES-649 Changed upload component to use Seam etc.

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java	2007-03-25 08:04:54 UTC (rev 10527)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java	2007-03-25 11:50:15 UTC (rev 10528)
@@ -17,10 +17,12 @@
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;
 import org.drools.brms.client.packages.ModelAttachmentFileWidget;
-import org.drools.brms.server.util.RepositoryManager;
+import org.drools.brms.server.util.TestEnvironmentSessionHelper;
 import org.drools.repository.AssetItem;
 import org.drools.repository.RulesRepository;
 import org.drools.repository.RulesRepositoryException;
+import org.jboss.seam.Component;
+import org.jboss.seam.contexts.Contexts;
 
 /**
  * Files can be uploaded as part of the repo (eg model classes, spreadsheets).
@@ -48,7 +50,7 @@
         }
         
         
-        RulesRepository repo = getRepository( request );
+        RulesRepository repo = getRepository( );
         attachFile( uploadItem, repo );
         
         uploadItem.file.getInputStream().close();
@@ -70,7 +72,7 @@
             res.sendError( HttpServletResponse.SC_BAD_REQUEST );
             return;
         }
-        AssetItem item = getRepository( req ).loadAssetByUUID( uuid );
+        AssetItem item = getRepository( ).loadAssetByUUID( uuid );
         
         res.setContentType("application/x-download");
         res.setHeader("Content-Disposition", "attachment; filename=" + item.getBinaryContentAttachmentFileName());
@@ -84,10 +86,22 @@
         
     }    
 
-    private RulesRepository getRepository(HttpServletRequest request) {
-        RepositoryManager repoMan = new RepositoryManager();
-        RulesRepository repo = repoMan.getRepositoryFrom( request.getSession() );
-        return repo;
+    private RulesRepository getRepository() {
+        if (Contexts.isApplicationContextActive()) {
+            return (RulesRepository) Component.getInstance( "repository" );
+        } else {
+            //MN: NOTE THIS IS MY HACKERY TO GET IT WORKING IN GWT HOSTED MODE.
+            //THIS IS ALL THAT IS NEEDED.
+            System.out.println("WARNING: RUNNING IN NON SEAM MODE SINGLE USER MODE - ONLY FOR TESTING AND DEBUGGING !!!!!");
+            ServiceImplementation impl = new ServiceImplementation();
+             
+            try {
+                return new RulesRepository(TestEnvironmentSessionHelper.getSession(false));
+            } catch ( Exception e ) {
+                throw new IllegalStateException("Unable to launch debug mode...");
+            }            
+        }
+
     }
 
     void attachFile(FormData uploadItem,

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/RepositoryManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/RepositoryManager.java	2007-03-25 08:04:54 UTC (rev 10527)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/RepositoryManager.java	2007-03-25 11:50:15 UTC (rev 10528)
@@ -1,96 +0,0 @@
-package org.drools.brms.server.util;
-
-import javax.jcr.LoginException;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.SimpleCredentials;
-import javax.servlet.http.HttpSession;
-
-import org.drools.repository.JackrabbitRepositoryConfigurator;
-import org.drools.repository.JCRRepositoryConfigurator;
-import org.drools.repository.RulesRepository;
-
-/**
- * Currently a collection of hacked utilities for setting up the repo.
- * TODO: repository itself should be injected into the context,
- * and session should be created on each request.
- * 
- * Also, repository creation should be distinct from instantiation.
- * 
- * @author Michael Neale
- *
- */
-public class RepositoryManager {
-
-    /**
-     * The shared repository instance. This could be bound to JNDI eventually.
-     */
-    public static Repository repository;
-    
-    /** This will create a new repository instance (should only happen once after startup) */
-    private Session initialiseRepo(JCRRepositoryConfigurator config) throws LoginException,
-                                                                 RepositoryException {
-        Session session = getJCRRepository(config).login(
-                                           new SimpleCredentials("alan_parsons", "password".toCharArray()));
-
-
-        
-        config.setupRulesRepository( session );
-        return session;
-    }
-    
-    public synchronized static Repository getJCRRepository(JCRRepositoryConfigurator config) {
-        if (repository == null) {
-            repository = config.getJCRRepository(null);
-        }
-        return repository;
-    }
-    
-    /** Initialse the repository, set it up if it is brand new */
-    public RulesRepository createRuleRepositoryInstance() {
-        
-        JCRRepositoryConfigurator config = new JackrabbitRepositoryConfigurator();
-
-        try {
-            
-            Session session;
-            if (repository == null) {
-                //this should only need to be done on server startup
-                long start = System.currentTimeMillis();
-                session = initialiseRepo( config );
-                System.out.println("initialise repo time: " + (System.currentTimeMillis() - start));
-            }  else {
-                //ok this is probably fast enough to do with each request I think
-                long start = System.currentTimeMillis();
-                session = repository.login(
-                                                   new SimpleCredentials("alan_parsons", "password".toCharArray()));
-
-                System.out.println("login repo time: " + (System.currentTimeMillis() - start));
-                
-            }
-            
-            return new RulesRepository( session );
-        } catch ( LoginException e ) {
-            throw new RuntimeException( e );
-        } catch ( RepositoryException e ) {
-            throw new RuntimeException( "Unable to get a repository: " + e.getMessage() );
-        }
-    }
-    
-    /**
-     * Pull or create the repository from session.
-     * If it is not found, it will create one and then bind it to the session.
-     */
-    public RulesRepository getRepositoryFrom(HttpSession session) {
-//        Object obj = session.getAttribute( "drools.repository" );
-//        if ( obj == null ) {
-//            obj = createRuleRepositoryInstance();
-//            session.setAttribute( "drools.repository",
-//                                  obj );
-//        }
-//        return (RulesRepository) obj;
-        return createRuleRepositoryInstance();
-    }
-    
-}

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/TestEnvironmentSessionHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/TestEnvironmentSessionHelper.java	2007-03-25 08:04:54 UTC (rev 10527)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/TestEnvironmentSessionHelper.java	2007-03-25 11:50:15 UTC (rev 10528)
@@ -1,11 +1,15 @@
 package org.drools.brms.server.util;
 
+import javax.jcr.LoginException;
 import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
+import javax.servlet.http.HttpSession;
 
 import org.drools.repository.JCRRepositoryConfigurator;
 import org.drools.repository.JackrabbitRepositoryConfigurator;
+import org.drools.repository.RulesRepository;
 import org.drools.repository.RulesRepositoryAdministrator;
 
 /**
@@ -17,7 +21,59 @@
 
 
     public static Session testSession;
+    public static Repository repository;
     
+    /** This will create a new repository instance (should only happen once after startup) */
+    private Session initialiseRepo(JCRRepositoryConfigurator config) throws LoginException,
+                                                                 RepositoryException {
+        Session session = getJCRRepository(config).login(
+                                           new SimpleCredentials("alan_parsons", "password".toCharArray()));
+
+
+        
+        config.setupRulesRepository( session );
+        return session;
+    }
+    
+    synchronized static Repository getJCRRepository(JCRRepositoryConfigurator config) {
+        if (repository == null) {
+            repository = config.getJCRRepository(null);
+        }
+        return repository;
+    }
+    
+    /** Initialse the repository, set it up if it is brand new */
+    public RulesRepository createRuleRepositoryInstance() {
+        
+        JCRRepositoryConfigurator config = new JackrabbitRepositoryConfigurator();
+
+        try {
+            
+            Session session;
+            if (repository == null) {
+                //this should only need to be done on server startup
+                long start = System.currentTimeMillis();
+                session = initialiseRepo( config );
+                System.out.println("initialise repo time: " + (System.currentTimeMillis() - start));
+            }  else {
+                //ok this is probably fast enough to do with each request I think
+                long start = System.currentTimeMillis();
+                session = repository.login(
+                                                   new SimpleCredentials("alan_parsons", "password".toCharArray()));
+
+                System.out.println("login repo time: " + (System.currentTimeMillis() - start));
+                
+            }
+            
+            return new RulesRepository( session );
+        } catch ( LoginException e ) {
+            throw new RuntimeException( e );
+        } catch ( RepositoryException e ) {
+            throw new RuntimeException( "Unable to get a repository: " + e.getMessage() );
+        }
+    }
+    
+    
     public static Session getSession() throws Exception {
         return getSession(true);
     }
@@ -25,7 +81,7 @@
     public static Session getSession(boolean erase) throws Exception {
         if (testSession == null) {
             JCRRepositoryConfigurator config = new JackrabbitRepositoryConfigurator();
-            Repository repo = RepositoryManager.getJCRRepository( config );
+            Repository repo = getJCRRepository( config );
             testSession = repo.login(
                                                                      new SimpleCredentials("alan_parsons", "password".toCharArray()));
 

Deleted: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/RepositoryManagerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/RepositoryManagerTest.java	2007-03-25 08:04:54 UTC (rev 10527)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/RepositoryManagerTest.java	2007-03-25 11:50:15 UTC (rev 10528)
@@ -1,122 +0,0 @@
-package org.drools.brms.server;
-
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionContext;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.drools.brms.server.util.RepositoryManager;
-import org.drools.repository.RulesRepository;
-
-/**
- * This tests the basic http stuff for the servlet.
- */
-public class RepositoryManagerTest extends TestCase {
-
-    public void NOTNEEDED_testInit() throws Exception {
-        RepositoryManager serv = new RepositoryManager();
-        MockHttpSession session = new MockHttpSession();
-        RulesRepository repo = serv.getRepositoryFrom( session );
-        assertTrue(session.sessionData.containsKey( "drools.repository" ));
-        assertEquals(repo, session.getAttribute( "drools.repository" ));
-        
-        RulesRepository repo2 = serv.getRepositoryFrom( session );
-        assertSame(repo, repo2);
-        
-        
-    }
-    
-    public void testGetRepository() throws Exception {
-        RepositoryManager serv = new RepositoryManager();
-        RulesRepository repo = serv.createRuleRepositoryInstance();
-        assertNotNull(repo);
-    }
-    
-
-
-    
-    
-    static class MockHttpSession implements HttpSession {
-
-        public Map sessionData = new HashMap();
-        
-        public Object getAttribute(String arg0) {
-            
-            return sessionData.get( arg0 );
-        }
-
-        public Enumeration getAttributeNames() {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public long getCreationTime() {
-            return 0;
-        }
-
-        public String getId() {
-            return null;
-        }
-
-        public long getLastAccessedTime() {
-            return 0;
-        }
-
-        public int getMaxInactiveInterval() {
-            return 0;
-        }
-
-        public ServletContext getServletContext() {
-            return null;
-        }
-
-        public HttpSessionContext getSessionContext() {
-            return null;
-        }
-
-        public Object getValue(String arg0) {
-            return null;
-        }
-
-        public String[] getValueNames() {
-            return null;
-        }
-
-        public void invalidate() {
-        }
-
-        public boolean isNew() {
-            return false;
-        }
-
-        public void putValue(String arg0,
-                             Object arg1) {
-            Assert.fail("DO NOT USE THIS METHOD !");
-            
-        }
-
-        public void removeAttribute(String arg0) {
-            this.sessionData.remove( arg0 );
-        }
-
-        public void removeValue(String arg0) {
-        }
-
-        public void setAttribute(String arg0,
-                                 Object arg1) {
-            sessionData.put( arg0, arg1 );
-        }
-
-        public void setMaxInactiveInterval(int arg0) {
-            
-            
-        }
-        
-    }
-}




More information about the jboss-svn-commits mailing list