From: Mathieu Baudier Date: Wed, 25 Nov 2009 11:13:52 +0000 (+0000) Subject: Improve Jackrabbit X-Git-Tag: argeo-commons-2.1.30~1695 X-Git-Url: http://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=bf61aea62d1cb0f17edddd454f86348d5a64465c Improve Jackrabbit git-svn-id: https://svn.argeo.org/commons/trunk@3156 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/sandbox/runtime/org.argeo.sandbox.jackrabbit/pom.xml b/sandbox/runtime/org.argeo.sandbox.jackrabbit/pom.xml index 428f79044..9c1877c4a 100644 --- a/sandbox/runtime/org.argeo.sandbox.jackrabbit/pom.xml +++ b/sandbox/runtime/org.argeo.sandbox.jackrabbit/pom.xml @@ -23,24 +23,29 @@ -clean - + org.argeo.dep.osgi.jackrabbit, org.springframework.osgi.extender, org.springframework.osgi.web.extender, org.argeo.dep.osgi.catalina.start, org.argeo.server.jackrabbit.webapp, org.argeo.server.jackrabbit.repo - - + + ${basedir}/../../../server/modules;in=*;ex=pom.xml;ex=target;ex=.*, ${basedir}/../../../server/demo;in=*;ex=pom.xml;ex=target;ex=.*, - + + + org.argeo.commons.server + org.argeo.server.jackrabbit + 0.1.2-SNAPSHOT + org.argeo.commons.server org.argeo.server.dep.jackrabbit.server @@ -77,7 +82,7 @@ org.springframework.osgi org.springframework.osgi.extender - + org.springframework.osgi diff --git a/server/demo/org.argeo.server.demo.log4j/log4j.properties b/server/demo/org.argeo.server.demo.log4j/log4j.properties index 7e7963325..db64b5579 100644 --- a/server/demo/org.argeo.server.demo.log4j/log4j.properties +++ b/server/demo/org.argeo.server.demo.log4j/log4j.properties @@ -10,7 +10,6 @@ log4j.logger.org.springframework=WARN #log4j.logger.org.springframework.jms=WARN #log4j.logger.org.springframework.security=WARN -#log4j.logger.org.apache.jackrabbit=DEBUG log4j.logger.org.apache.activemq=WARN log4j.logger.org.apache.activemq.transport=WARN @@ -21,6 +20,8 @@ log4j.logger.org.apache.catalina=INFO log4j.logger.org.apache.coyote=INFO log4j.logger.org.apache.tomcat=INFO +log4j.logger.org.apache.jackrabbit=INFO + ## Appenders # console is set to be a ConsoleAppender. log4j.appender.console=org.apache.log4j.ConsoleAppender diff --git a/server/modules/org.argeo.server.jackrabbit.repo/META-INF/MANIFEST.MF b/server/modules/org.argeo.server.jackrabbit.repo/META-INF/MANIFEST.MF index 2b9ebfdca..b989f208d 100644 --- a/server/modules/org.argeo.server.jackrabbit.repo/META-INF/MANIFEST.MF +++ b/server/modules/org.argeo.server.jackrabbit.repo/META-INF/MANIFEST.MF @@ -3,4 +3,5 @@ Bundle-Version: 0.1.2.SNAPSHOT Import-Package: javax.jcr, org.apache.jackrabbit.core, org.apache.jackrabbit.core.config, + org.argeo.server.jackrabbit, org.springframework.beans.factory.config diff --git a/server/modules/org.argeo.server.jackrabbit.repo/META-INF/spring/jackrabbit.xml b/server/modules/org.argeo.server.jackrabbit.repo/META-INF/spring/jackrabbit.xml index 85df7980d..c56a03f59 100644 --- a/server/modules/org.argeo.server.jackrabbit.repo/META-INF/spring/jackrabbit.xml +++ b/server/modules/org.argeo.server.jackrabbit.repo/META-INF/spring/jackrabbit.xml @@ -7,26 +7,24 @@ class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> - - - + + + - - - - - - - - - + \ No newline at end of file diff --git a/server/modules/org.argeo.server.jackrabbit.repo/jackrabbit.properties b/server/modules/org.argeo.server.jackrabbit.repo/jackrabbit.properties new file mode 100644 index 000000000..41eab59bf --- /dev/null +++ b/server/modules/org.argeo.server.jackrabbit.repo/jackrabbit.properties @@ -0,0 +1 @@ +argeo.jackrabbit.repo.configuration=osgibundle:repository.xml \ No newline at end of file diff --git a/server/runtime/org.argeo.server.jackrabbit/.classpath b/server/runtime/org.argeo.server.jackrabbit/.classpath new file mode 100644 index 000000000..16f01e2ee --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/server/runtime/org.argeo.server.jackrabbit/.project b/server/runtime/org.argeo.server.jackrabbit/.project new file mode 100644 index 000000000..a9b82a526 --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/.project @@ -0,0 +1,23 @@ + + + org.argeo.server.jackrabbit + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.maven.ide.eclipse.maven2Nature + org.eclipse.jdt.core.javanature + + diff --git a/server/runtime/org.argeo.server.jackrabbit/.settings/org.eclipse.jdt.core.prefs b/server/runtime/org.argeo.server.jackrabbit/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..736c47e06 --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +#Tue Nov 24 18:41:10 CET 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/server/runtime/org.argeo.server.jackrabbit/.settings/org.maven.ide.eclipse.prefs b/server/runtime/org.argeo.server.jackrabbit/.settings/org.maven.ide.eclipse.prefs new file mode 100644 index 000000000..f23a02cdd --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/.settings/org.maven.ide.eclipse.prefs @@ -0,0 +1,9 @@ +#Tue Nov 24 18:41:03 CET 2009 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +skipCompilerPlugin=true +version=1 diff --git a/server/runtime/org.argeo.server.jackrabbit/pom.xml b/server/runtime/org.argeo.server.jackrabbit/pom.xml new file mode 100644 index 000000000..d19199aef --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/pom.xml @@ -0,0 +1,64 @@ + + 4.0.0 + + org.argeo.commons.server + runtime + 0.1.2-SNAPSHOT + .. + + org.argeo.server.jackrabbit + Commons Server Jackrabbit + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + org.apache.felix + maven-bundle-plugin + ${version.maven-bundle-plugin} + + + + org.argeo.server.jackrabbit.* + + + + + + + + + org.argeo.dep.osgi + org.argeo.dep.osgi.jackrabbit + + + + + org.apache.commons + com.springsource.org.apache.commons.io + + + + + org.springframework + org.springframework.beans + + + + + org.slf4j + com.springsource.slf4j.org.apache.commons.logging + + + diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/JackrabbitContainer.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/JackrabbitContainer.java new file mode 100644 index 000000000..2118ff1a6 --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/JackrabbitContainer.java @@ -0,0 +1,85 @@ +package org.argeo.server.jackrabbit; + +import java.io.File; +import java.io.InputStream; + +import javax.jcr.Credentials; +import javax.jcr.LoginException; +import javax.jcr.NoSuchWorkspaceException; +import javax.jcr.Repository; +import javax.jcr.RepositoryException; +import javax.jcr.Session; + +import org.apache.commons.io.IOUtils; +import org.apache.jackrabbit.core.RepositoryImpl; +import org.apache.jackrabbit.core.config.RepositoryConfig; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.io.Resource; + +public class JackrabbitContainer implements InitializingBean, DisposableBean, + Repository { + private Resource configuration; + private File homeDirectory; + + private RepositoryImpl repository; + + public void afterPropertiesSet() throws Exception { + RepositoryConfig config; + InputStream in = configuration.getInputStream(); + try { + config = RepositoryConfig.create(in, homeDirectory + .getCanonicalPath()); + } catch (Exception e) { + throw new RuntimeException("Cannot read configuration", e); + } finally { + IOUtils.closeQuietly(in); + } + + repository = RepositoryImpl.create(config); + } + + public void destroy() throws Exception { + if (repository != null) + repository.shutdown(); + } + + // JCR REPOSITORY (delegated) + public String getDescriptor(String key) { + return repository.getDescriptor(key); + } + + public String[] getDescriptorKeys() { + return repository.getDescriptorKeys(); + } + + public Session login() throws LoginException, RepositoryException { + return login(); + } + + public Session login(Credentials credentials, String workspaceName) + throws LoginException, NoSuchWorkspaceException, + RepositoryException { + return login(credentials, workspaceName); + } + + public Session login(Credentials credentials) throws LoginException, + RepositoryException { + return login(credentials); + } + + public Session login(String workspaceName) throws LoginException, + NoSuchWorkspaceException, RepositoryException { + return login(workspaceName); + } + + // BEANS METHODS + public void setHomeDirectory(File homeDirectory) { + this.homeDirectory = homeDirectory; + } + + public void setConfiguration(Resource configuration) { + this.configuration = configuration; + } + +} diff --git a/server/runtime/pom.xml b/server/runtime/pom.xml index a643674aa..81f7086e2 100644 --- a/server/runtime/pom.xml +++ b/server/runtime/pom.xml @@ -18,5 +18,6 @@ org.argeo.server.jxl org.argeo.server.hibernate org.argeo.server.ads + org.argeo.server.jackrabbit \ No newline at end of file