From a9e4e6bdc775333bc89ca1c9a5bcb0a199c5e7ca Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 24 Feb 2011 13:02:18 +0000 Subject: [PATCH 1/1] Configure locarepo git-svn-id: https://svn.argeo.org/commons/trunk@4186 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../META-INF/MANIFEST.MF | 11 ++- ...jackrabbit-osgi.xml => localrepo-osgi.xml} | 14 ++- .../spring/{jackrabbit.xml => localrepo.xml} | 12 ++- .../localrepo.properties | 15 +++- .../repository-h2.xml | 87 +++++++++++-------- .../repository-postgresql.xml | 15 ++-- .../java/org/argeo/jcr/ArgeoJcrConstants.java | 8 ++ .../argeo/jcr/DefaultRepositoryRegister.java | 36 ++++---- .../org/argeo/jcr/RepositoryRegister.java | 2 - 9 files changed, 119 insertions(+), 81 deletions(-) rename server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/{jackrabbit-osgi.xml => localrepo-osgi.xml} (52%) rename server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/{jackrabbit.xml => localrepo.xml} (65%) create mode 100644 server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java diff --git a/server/modules/org.argeo.jackrabbit.localrepo/META-INF/MANIFEST.MF b/server/modules/org.argeo.jackrabbit.localrepo/META-INF/MANIFEST.MF index 9e035e21b..25fedeac4 100644 --- a/server/modules/org.argeo.jackrabbit.localrepo/META-INF/MANIFEST.MF +++ b/server/modules/org.argeo.jackrabbit.localrepo/META-INF/MANIFEST.MF @@ -3,10 +3,13 @@ Bundle-ManifestVersion: 2 Bundle-Name: Jackrabbit Local Repository Bundle-SymbolicName: org.argeo.jackrabbit.localrepo Bundle-Version: 0.2.3.SNAPSHOT -Import-Package: javax.jcr, - org.apache.jackrabbit.core, - org.apache.jackrabbit.core.config, - org.apache.lucene.util;version="2.4.1", +Import-Package: com.mysql.jdbc;version="[5.0.0,6.0.0)";resolution:=optional, + javax.jcr;version="[2.0.0,3.0.0)", + org.apache.jackrabbit.core;version="[2.0.0,3.0.0)", + org.apache.jackrabbit.core.config;version="[2.0.0,3.0.0)", org.apache.xalan.processor, org.argeo.jackrabbit, + org.argeo.jcr, + org.h2;version="[1.0.0,2.0.0)";resolution:=optional, + org.postgresql;version="[8.0.0,9.0.0)";resolution:=optional, org.springframework.beans.factory.config diff --git a/server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/jackrabbit-osgi.xml b/server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/localrepo-osgi.xml similarity index 52% rename from server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/jackrabbit-osgi.xml rename to server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/localrepo-osgi.xml index 7a3c71ad5..aa1f1e08b 100644 --- a/server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/jackrabbit-osgi.xml +++ b/server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/localrepo-osgi.xml @@ -1,14 +1,22 @@ + http://www.springframework.org/schema/beans/spring-beans-2.5.xsd + http://www.springframework.org/schema/util + http://www.springframework.org/schema/util/spring-util-2.5.xsd"> - + - + + + + + diff --git a/server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/jackrabbit.xml b/server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/localrepo.xml similarity index 65% rename from server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/jackrabbit.xml rename to server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/localrepo.xml index 0ac070e02..431482e6f 100644 --- a/server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/jackrabbit.xml +++ b/server/modules/org.argeo.jackrabbit.localrepo/META-INF/spring/localrepo.xml @@ -6,18 +6,16 @@ - - osgibundle:jackrabbit.properties + osgibundle:localrepo.properties - - - - + + + + diff --git a/server/modules/org.argeo.jackrabbit.localrepo/localrepo.properties b/server/modules/org.argeo.jackrabbit.localrepo/localrepo.properties index c046ca46d..e582e60c0 100644 --- a/server/modules/org.argeo.jackrabbit.localrepo/localrepo.properties +++ b/server/modules/org.argeo.jackrabbit.localrepo/localrepo.properties @@ -1 +1,14 @@ -argeo.localrepo.configuration=osgibundle:repository.xml \ No newline at end of file +argeo.localrepo.home=${user.home}/.argeo/localrepo + +## H2 Embedded (DEFAULT) +argeo.localrepo.configuration=osgibundle:repository-h2.xml +argeo.localrepo.dburl=jdbc:h2:file:${rep.home}/h2/localrepo_db +argeo.localrepo.dbuser=sa +argeo.localrepo.dbpassword= + +## Remote +# Remote repository URI (overrides other configurations if not empty) +argeo.localrepo.uri= + +# ADVANCED +argeo.localrepo.maxPoolSize=10 \ No newline at end of file diff --git a/server/modules/org.argeo.jackrabbit.localrepo/repository-h2.xml b/server/modules/org.argeo.jackrabbit.localrepo/repository-h2.xml index 7b1d3bf24..e6e8ac5fa 100644 --- a/server/modules/org.argeo.jackrabbit.localrepo/repository-h2.xml +++ b/server/modules/org.argeo.jackrabbit.localrepo/repository-h2.xml @@ -2,63 +2,80 @@ - - - + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + - + defaultWorkspace="prod" /> - - + + + + - - + + - - + - - + + + + - - + + + - + + + + + + + + + + + \ No newline at end of file diff --git a/server/modules/org.argeo.jackrabbit.localrepo/repository-postgresql.xml b/server/modules/org.argeo.jackrabbit.localrepo/repository-postgresql.xml index 9f95adf5e..51ddfc503 100644 --- a/server/modules/org.argeo.jackrabbit.localrepo/repository-postgresql.xml +++ b/server/modules/org.argeo.jackrabbit.localrepo/repository-postgresql.xml @@ -6,11 +6,11 @@ - - - + + + - + @@ -74,13 +74,8 @@ - - - - - + class="org.springframework.security.providers.jaas.SecurityContextLoginModule"> \ No newline at end of file diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java new file mode 100644 index 000000000..1202268ea --- /dev/null +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java @@ -0,0 +1,8 @@ +package org.argeo.jcr; + +/** JCR related constants*/ +public interface ArgeoJcrConstants { + + public final static String JCR_REPOSITORY_ALIAS = "argeo.jcr.repository.alias"; + +} diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/DefaultRepositoryRegister.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/DefaultRepositoryRegister.java index fc2fb529d..a39ab8751 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/DefaultRepositoryRegister.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/DefaultRepositoryRegister.java @@ -1,10 +1,8 @@ package org.argeo.jcr; import java.util.Collections; -import java.util.HashMap; import java.util.Map; import java.util.Observable; -import java.util.SortedMap; import java.util.TreeMap; import javax.jcr.Repository; @@ -25,15 +23,15 @@ public class DefaultRepositoryRegister extends Observable implements @SuppressWarnings("rawtypes") public synchronized Repository getRepository(Map parameters) throws RepositoryException { - if (!parameters.containsKey(JCR_REPOSITORY_NAME)) - throw new RepositoryException("Parameter " + JCR_REPOSITORY_NAME + if (!parameters.containsKey(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS)) + throw new RepositoryException("Parameter " + ArgeoJcrConstants.JCR_REPOSITORY_ALIAS + " has to be defined."); - String name = parameters.get(JCR_REPOSITORY_NAME).toString(); - if (!repositories.containsKey(name)) - throw new RepositoryException("No repository registered with name " - + name); + String alias = parameters.get(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS).toString(); + if (!repositories.containsKey(alias)) + throw new RepositoryException( + "No repository registered with alias " + alias); - return repositories.get(name); + return repositories.get(alias); } /** Access to the read-only map */ @@ -45,37 +43,37 @@ public class DefaultRepositoryRegister extends Observable implements @SuppressWarnings("rawtypes") public synchronized void register(Repository repository, Map properties) { // TODO: also check bean name? - if (properties == null || !properties.containsKey(JCR_REPOSITORY_NAME)) { + if (properties == null || !properties.containsKey(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS)) { log.warn("Cannot register a repository without property " - + JCR_REPOSITORY_NAME); + + ArgeoJcrConstants.JCR_REPOSITORY_ALIAS); return; } - String name = properties.get(JCR_REPOSITORY_NAME).toString(); + String alias = properties.get(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS).toString(); Map map = new TreeMap( repositories); - map.put(name, repository); + map.put(alias, repository); repositories = Collections.unmodifiableMap(map); setChanged(); - notifyObservers(repository); + notifyObservers(alias); } /** Unregisters a service, typically called when OSGi services are unbound. */ @SuppressWarnings("rawtypes") public synchronized void unregister(Repository repository, Map properties) { // TODO: also check bean name? - if (properties == null || !properties.containsKey(JCR_REPOSITORY_NAME)) { + if (properties == null || !properties.containsKey(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS)) { log.warn("Cannot unregister a repository without property " - + JCR_REPOSITORY_NAME); + + ArgeoJcrConstants.JCR_REPOSITORY_ALIAS); return; } - String name = properties.get(JCR_REPOSITORY_NAME).toString(); + String alias = properties.get(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS).toString(); Map map = new TreeMap( repositories); - map.put(name, repository); + map.put(alias, repository); repositories = Collections.unmodifiableMap(map); setChanged(); - notifyObservers(repository); + notifyObservers(alias); } } diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/RepositoryRegister.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/RepositoryRegister.java index 8f6e17ba6..9bada021e 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/RepositoryRegister.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/RepositoryRegister.java @@ -7,8 +7,6 @@ import javax.jcr.RepositoryFactory; /** Allows to register repositories by name. */ public interface RepositoryRegister extends RepositoryFactory { - public final static String JCR_REPOSITORY_NAME = "argeo.jcr.repository.name"; - /** * The registered {@link Repository} as a read-only map. Note that this * method should be called for each access in order to be sure to be up to -- 2.39.2