From 0e11f046c7af8c6b95aa7372bd912455b40955d5 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 30 Apr 2010 08:41:52 +0000 Subject: [PATCH] Split server Jackrabbit into JCR git-svn-id: https://svn.argeo.org/commons/trunk@3543 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../META-INF/MANIFEST.MF | 2 +- .../WEB-INF/manager-servlet.xml | 10 ++-- .../jackrabbit/webdav/WebDavServlet.java | 31 ----------- .../org.argeo.server.jcr/META-INF/MANIFEST.MF | 51 ++++++++++++------- .../{server => }/jcr/DefaultJcrListener.java | 32 +++--------- .../{server => }/jcr/JcrResourceAdapter.java | 41 +++------------ .../server/jcr/mvc/JcrBrowserController.java | 1 - .../server/jcr/mvc/JcrManagerController.java | 2 +- .../server/jcr/JcrResourceAdapterTest.java | 15 ++---- 9 files changed, 61 insertions(+), 124 deletions(-) rename server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/{server => }/jcr/DefaultJcrListener.java (74%) rename server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/{server => }/jcr/JcrResourceAdapter.java (87%) diff --git a/server/modules/org.argeo.server.jackrabbit.webdav/META-INF/MANIFEST.MF b/server/modules/org.argeo.server.jackrabbit.webdav/META-INF/MANIFEST.MF index fabe0aebb..0d0d056c1 100644 --- a/server/modules/org.argeo.server.jackrabbit.webdav/META-INF/MANIFEST.MF +++ b/server/modules/org.argeo.server.jackrabbit.webdav/META-INF/MANIFEST.MF @@ -6,7 +6,7 @@ Import-Package: javax.jcr, javax.servlet.http, javax.servlet.resources, org.argeo.server.jackrabbit.webdav, - org.argeo.server.jcr, + org.argeo.jcr, org.argeo.server.jcr.mvc, org.argeo.server.json, org.argeo.server.mvc, diff --git a/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/manager-servlet.xml b/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/manager-servlet.xml index 8dd19947d..077b77bf1 100644 --- a/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/manager-servlet.xml +++ b/server/modules/org.argeo.server.jackrabbit.webdav/WEB-INF/manager-servlet.xml @@ -13,10 +13,12 @@ - - - - + + + + + + diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java index c7b42e6df..a2683a1fa 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java @@ -26,8 +26,6 @@ public class WebDavServlet extends SimpleWebdavServlet { } - // private Session session; - @Override public void init() throws ServletException { super.init(); @@ -42,18 +40,8 @@ public class WebDavServlet extends SimpleWebdavServlet { } setResourceConfig(resourceConfig); } - - // try { - // session().getWorkspace().getObservationManager().addEventListener( - // this, Event.NODE_ADDED, "/", true, null, null, false); - // if (log.isDebugEnabled()) - // log.debug("Registered listener"); - // } catch (Exception e) { - // throw new ArgeoException("Cannot register event listener", e); - // } } - @SuppressWarnings("restriction") @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { @@ -68,25 +56,6 @@ public class WebDavServlet extends SimpleWebdavServlet { } } - // public void onEvent(EventIterator events) { - // while (events.hasNext()) { - // Event event = events.nextEvent(); - // log.debug(event); - // } - // - // } - - // protected Session session() { - // if (session == null) - // try { - // session = getRepository().login( - // new SimpleCredentials("demo", "demo".toCharArray())); - // } catch (Exception e) { - // throw new ArgeoException("Cannot open session", e); - // } - // return session; - // } - public Repository getRepository() { return repository; } diff --git a/server/runtime/org.argeo.server.jcr/META-INF/MANIFEST.MF b/server/runtime/org.argeo.server.jcr/META-INF/MANIFEST.MF index 39e03ff76..29061a0b2 100644 --- a/server/runtime/org.argeo.server.jcr/META-INF/MANIFEST.MF +++ b/server/runtime/org.argeo.server.jcr/META-INF/MANIFEST.MF @@ -1,23 +1,40 @@ Manifest-Version: 1.0 Created-By: 1.5.0_16 (Sun Microsystems Inc.) Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt -Import-Package: javax.activation;version="1.1",javax.jcr;version="1.0" - ,javax.jcr.nodetype;version="1.0",javax.jcr.observation;version="1.0" - ,javax.jcr.query;version="1.0",javax.jcr.version;version="1.0",javax. - servlet;version="2.5",javax.servlet.http;version="2.5",javax.xml.pars - ers,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.s - tream,org.apache.commons.fileupload;version="1.2",org.apache.commons. - fileupload.disk;version="1.2",org.apache.commons.fileupload.servlet;v - ersion="1.2",org.apache.commons.io;version="1.4",org.apache.commons.l - ogging;version="1.1",org.argeo;version="0.1",org.argeo.jcr;version="0 - .1",org.argeo.server;version="0.1",org.argeo.server.jcr;version="0.1" - ,org.argeo.server.jcr.mvc;version="0.1",org.argeo.server.mvc;version= - "0.1",org.springframework.beans;version="2.5",org.springframework.bea - ns.factory;version="2.5",org.springframework.core.io;version="2.5",or - g.springframework.stereotype;version="2.5",org.springframework.ui;ver - sion="2.5",org.springframework.web.bind.annotation;version="2.5",org. - springframework.web.context.request;version="2.5",org.springframework - .xml.dom;version="1.5",org.w3c.dom,org.xml.sax +Import-Package: javax.activation;version="1.1", + javax.jcr;version="1.0", + javax.jcr.nodetype;version="1.0", + javax.jcr.observation;version="1.0", + javax.jcr.query;version="1.0", + javax.jcr.version;version="1.0", + javax.servlet;version="2.5", + javax.servlet.http;version="2.5", + javax.xml.parsers, + javax.xml.transform, + javax.xml.transform.dom, + javax.xml.transform.stream, + org.apache.commons.fileupload;version="1.2", + org.apache.commons.fileupload.disk;version="1.2", + org.apache.commons.fileupload.servlet;version="1.2", + org.apache.commons.io;version="1.4", + org.apache.commons.logging;version="1.1", + org.argeo;version="0.1", + org.argeo.jcr;version="0.1", + org.argeo.server;version="0.1", + org.argeo.server.jackrabbit.unit;version="0.1.3.SNAPSHOT-r3520", + org.argeo.server.jcr;version="0.1", + org.argeo.server.jcr.mvc;version="0.1", + org.argeo.server.mvc;version="0.1", + org.springframework.beans;version="2.5", + org.springframework.beans.factory;version="2.5", + org.springframework.core.io;version="2.5", + org.springframework.stereotype;version="2.5", + org.springframework.ui;version="2.5", + org.springframework.web.bind.annotation;version="2.5", + org.springframework.web.context.request;version="2.5", + org.springframework.xml.dom;version="1.5", + org.w3c.dom, + org.xml.sax Bundle-RequiredExecutionEnvironment: J2SE-1.5 Export-Package: org.argeo.jcr;uses:="org.springframework.beans,javax.j cr,org.argeo,javax.jcr.query,org.apache.commons.logging,javax.jcr.nod diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/DefaultJcrListener.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/DefaultJcrListener.java similarity index 74% rename from server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/DefaultJcrListener.java rename to server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/DefaultJcrListener.java index 4b233086d..85f495daa 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/DefaultJcrListener.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/DefaultJcrListener.java @@ -1,9 +1,7 @@ -package org.argeo.server.jcr; +package org.argeo.jcr; -import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; -import javax.jcr.SimpleCredentials; import javax.jcr.observation.Event; import javax.jcr.observation.EventIterator; import javax.jcr.observation.EventListener; @@ -17,11 +15,8 @@ import org.argeo.ArgeoException; public class DefaultJcrListener implements EventListener { private final static Log log = LogFactory.getLog(DefaultJcrListener.class); private Session session; - private Repository repository; private String path = "/"; private Boolean deep = true; - private String username = "demo"; - private String password = "demo"; public void start() { try { @@ -65,29 +60,10 @@ public class DefaultJcrListener implements EventListener { null, null, false); } - protected Session session() { - if (session == null) - try { - session = repository.login(new SimpleCredentials(username, - password.toCharArray())); - } catch (Exception e) { - throw new ArgeoException("Cannot open session", e); - } + private Session session() { return session; } - public void setRepository(Repository repository) { - this.repository = repository; - } - - public void setUsername(String username) { - this.username = username; - } - - public void setPassword(String password) { - this.password = password; - } - public void setPath(String path) { this.path = path; } @@ -96,4 +72,8 @@ public class DefaultJcrListener implements EventListener { this.deep = deep; } + public void setSession(Session session) { + this.session = session; + } + } diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrResourceAdapter.java similarity index 87% rename from server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java rename to server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrResourceAdapter.java index 020672b86..3c69e0b1e 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrResourceAdapter.java @@ -1,4 +1,4 @@ -package org.argeo.server.jcr; +package org.argeo.jcr; import java.io.IOException; import java.io.InputStream; @@ -9,10 +9,8 @@ import java.util.List; import javax.activation.MimetypesFileTypeMap; import javax.jcr.Node; import javax.jcr.Property; -import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; -import javax.jcr.SimpleCredentials; import javax.jcr.version.Version; import javax.jcr.version.VersionHistory; import javax.jcr.version.VersionIterator; @@ -21,19 +19,11 @@ import org.apache.commons.io.FilenameUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.ArgeoException; -import org.argeo.jcr.JcrUtils; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; import org.springframework.core.io.Resource; -public class JcrResourceAdapter implements InitializingBean, DisposableBean { +public class JcrResourceAdapter { private final static Log log = LogFactory.getLog(JcrResourceAdapter.class); - private Repository repository; - - private String username; - private String password; - private Session session; private Boolean versioning = true; @@ -206,27 +196,6 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { return session; } - public void afterPropertiesSet() throws Exception { - session = repository.login(new SimpleCredentials(username, password - .toCharArray())); - } - - public void destroy() throws Exception { - session.logout(); - } - - public void setRepository(Repository repository) { - this.repository = repository; - } - - public void setUsername(String username) { - this.username = username; - } - - public void setPassword(String password) { - this.password = password; - } - public void setVersioning(Boolean versioning) { this.versioning = versioning; } @@ -243,4 +212,10 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { } return str; } + + public void setSession(Session session) { + this.session = session; + } + + } diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrBrowserController.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrBrowserController.java index cddc8b01e..849fff1ed 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrBrowserController.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrBrowserController.java @@ -3,7 +3,6 @@ package org.argeo.server.jcr.mvc; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; import javax.jcr.Item; import javax.jcr.NodeIterator; diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrManagerController.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrManagerController.java index 37fca841c..7edd5378b 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrManagerController.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/server/jcr/mvc/JcrManagerController.java @@ -12,8 +12,8 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.argeo.jcr.JcrResourceAdapter; import org.argeo.server.ServerAnswer; -import org.argeo.server.jcr.JcrResourceAdapter; import org.argeo.server.mvc.MvcConstants; import org.springframework.core.io.ByteArrayResource; import org.springframework.stereotype.Controller; diff --git a/server/runtime/org.argeo.server.jcr/src/test/java/org/argeo/server/jcr/JcrResourceAdapterTest.java b/server/runtime/org.argeo.server.jcr/src/test/java/org/argeo/server/jcr/JcrResourceAdapterTest.java index 1588fd7e0..65063e040 100644 --- a/server/runtime/org.argeo.server.jcr/src/test/java/org/argeo/server/jcr/JcrResourceAdapterTest.java +++ b/server/runtime/org.argeo.server.jcr/src/test/java/org/argeo/server/jcr/JcrResourceAdapterTest.java @@ -6,9 +6,12 @@ import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.List; +import javax.jcr.SimpleCredentials; + import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.argeo.jcr.JcrResourceAdapter; import org.argeo.server.jackrabbit.unit.AbstractJcrTestCase; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; @@ -74,16 +77,8 @@ public class JcrResourceAdapterTest extends AbstractJcrTestCase { protected void setUp() throws Exception { super.setUp(); jra = new JcrResourceAdapter(); - jra.setRepository(getRepository()); - jra.setUsername("demo"); - jra.setPassword("demo"); - jra.afterPropertiesSet(); - } - - @Override - protected void tearDown() throws Exception { - jra.destroy(); - super.tearDown(); + jra.setSession(getRepository().login( + new SimpleCredentials("demo", "demo".toCharArray()))); } protected File getRepositoryFile() throws Exception { -- 2.30.2