[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