Separate repo repos_java
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 10 Feb 2012 18:44:36 +0000 (18:44 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 10 Feb 2012 18:44:36 +0000 (18:44 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@5042 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/jcr.xml
eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/osgi.xml
modules/server/org.argeo.slc.server.repo/META-INF/MANIFEST.MF
modules/server/org.argeo.slc.server.repo/META-INF/spring/jcr.xml
modules/server/org.argeo.slc.server.repo/META-INF/spring/repo-osgi.xml
modules/server/org.argeo.slc.server.repo/META-INF/spring/services.xml
modules/server/org.argeo.slc.server.repo/build.properties
modules/server/org.argeo.slc.server.repo/repo.properties [new file with mode: 0644]
modules/server/org.argeo.slc.server.repo/repository-h2.xml [new file with mode: 0644]
runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/RepoConstants.java
runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/RepoImpl.java

index e92d2fd8505a65a8b919b205f353c24d4894a31e..7c316cd8ea979645a010805d93c20c72fcff685d 100644 (file)
@@ -6,6 +6,6 @@
         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
 
        <bean id="slcSession" class="org.argeo.jcr.spring.ThreadBoundSession">
-               <property name="repository" ref="slcRepository" />
+               <property name="repository" ref="javaRepository" />
        </bean>
 </beans>
index 0b82c900f88d99b0f953c2899dc097148ba7567f..1a6b474711720c965e9c28001dd1180b1de3c38c 100644 (file)
@@ -8,6 +8,6 @@
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"\r
        osgi:default-timeout="30000">\r
 \r
-       <reference id="slcRepository" interface="javax.jcr.Repository"\r
-               filter="(argeo.jcr.repository.alias=slc)" />\r
+       <reference id="javaRepository" interface="javax.jcr.Repository"\r
+               filter="(argeo.jcr.repository.alias=repos_java)" />\r
 </beans:beans>
\ No newline at end of file
index e20ff6597ad9ab6d06009876dbd1a6db3826a88e..bbcba69bb501de671a415d8661211e5a8b1cbf9f 100644 (file)
@@ -10,9 +10,11 @@ Import-Package: javax.jcr;version="2.0.0",
  org.argeo.security.jcr,
  org.argeo.slc.aether,
  org.argeo.slc.aether.spring,
+ org.argeo.slc.jcr,
  org.argeo.slc.repo,
  org.argeo.slc.repo.maven,
  org.argeo.slc.repo.maven.proxy,
  org.h2;resolution:=optional,
  org.sonatype.aether;version="1.9.0",
+ org.springframework.beans.factory.config;version="2.5.6.SEC01",
  org.springframework.security;version="2.0.6.RELEASE"
index 27566c82a97ef441c1112cc6416137da9b369927..25ad02fa6001a4a837fdae55e86c568cef0adab5 100644 (file)
@@ -6,4 +6,20 @@
        <bean id="jcrSession" class="org.argeo.security.jcr.SecureThreadBoundSession">\r
                <property name="repository" ref="jcrRepository" />\r
        </bean>\r
+\r
+       <bean id="jcrRepository" class="org.argeo.jackrabbit.JackrabbitContainer"\r
+               init-method="init" destroy-method="destroy">\r
+               <property name="homeDirectory" value="${osgi.instance.area}/repos/java" />\r
+               <property name="configuration" value="osgibundle:repository-h2.xml" />\r
+               <property name="variables" value="osgibundle:/repo.properties" />\r
+               <property name="cndFiles">\r
+                       <list>\r
+                               <value>/org/argeo/jcr/argeo.cnd</value>\r
+                               <value>/org/argeo/slc/jcr/slc.cnd</value>\r
+                               <value>/org/argeo/slc/repo/repo.cnd</value>\r
+                       </list>\r
+               </property>\r
+               <property name="bundleContext" ref="bundleContext" />\r
+       </bean>\r
+\r
 </beans>
\ No newline at end of file
index bd143cfde09721b7868e0940b54cdf65d018884f..5e3d4ce9f0208dd93634ed8e8c30d2368ace7d59 100644 (file)
        <!-- Security -->\r
        <reference id="authenticationManager"\r
                interface="org.springframework.security.AuthenticationManager" />\r
-       <reference id="jcrRepository" interface="javax.jcr.Repository"\r
-               filter="(argeo.jcr.repository.alias=slc)" />\r
+<!--   <reference id="jcrRepository" interface="javax.jcr.Repository" -->\r
+<!--           filter="(argeo.jcr.repository.alias=slc)" /> -->\r
+       <service ref="jcrRepository" interface="javax.jcr.Repository">\r
+               <service-properties>\r
+                       <beans:entry key="argeo.jcr.repository.alias" value="repos_java" />\r
+               </service-properties>\r
+       </service>\r
 \r
        <!-- Maven -->\r
 <!--   <reference id="mavenRepositorySystem" interface="org.sonatype.aether.RepositorySystem" -->\r
index 173414f8e074fbad0cf15eb06e9ff1f36e3a7603..206b6d41ec7d3a9f7a5c0dc2c2c6ec4235ee3a23 100644 (file)
@@ -7,7 +7,16 @@
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
        ">
 
-       <bean id="repo" class="org.argeo.slc.repo.RepoImpl" init-method="init" destroy-method="destroy">
+       <bean
+               class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+               <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
+               <property name="locations">
+                       <value>osgibundle:repo.properties</value>
+               </property>
+       </bean>
+
+       <bean id="repo" class="org.argeo.slc.repo.RepoImpl" init-method="init"
+               destroy-method="destroy">
                <property name="jcrRepository" ref="jcrRepository" />
                <property name="nodeIndexers">
                        <list>
index 5f22cdd4480f64cd4765eb82177bb9257920cc0b..ba1e43a1fb4f1a860d968d4c36aa9312e4a16ab8 100644 (file)
@@ -1 +1,3 @@
-bin.includes = META-INF/
+bin.includes = META-INF/,\
+               repo.properties,\
+               repository-h2.xml
diff --git a/modules/server/org.argeo.slc.server.repo/repo.properties b/modules/server/org.argeo.slc.server.repo/repo.properties
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/modules/server/org.argeo.slc.server.repo/repository-h2.xml b/modules/server/org.argeo.slc.server.repo/repository-h2.xml
new file mode 100644 (file)
index 0000000..2f5c774
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
+                            "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">
+<Repository>
+       <!-- Shared datasource -->
+       <DataSources>
+               <DataSource name="dataSource">
+                       <param name="driver" value="org.h2.Driver" />
+                       <param name="url" value="jdbc:h2:${rep.home}/h2/repository" />
+                       <param name="user" value="sa" />
+                       <param name="password" value="" />
+                       <param name="databaseType" value="h2" />
+                       <param name="maxPoolSize" value="30" />
+               </DataSource>
+       </DataSources>
+
+       <!-- File system and datastore -->
+       <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
+               <param name="dataSourceName" value="dataSource" />
+               <param name="schema" value="default" />
+               <param name="schemaObjectPrefix" value="fs_" />
+       </FileSystem>
+       <DataStore class="org.apache.jackrabbit.core.data.FileDataStore" />
+       <!-- <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore"> 
+               <param name="dataSourceName" value="dataSource" /> <param name="schemaObjectPrefix" 
+               value="ds_" /> </DataStore> -->
+
+       <!-- Workspace templates -->
+       <Workspaces rootPath="${rep.home}/workspaces"
+               defaultWorkspace="main" />
+       <Workspace name="${wsp.name}">
+               <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
+                       <param name="dataSourceName" value="dataSource" />
+                       <param name="schema" value="default" />
+                       <param name="schemaObjectPrefix" value="${wsp.name}_fs_" />
+               </FileSystem>
+               <PersistenceManager
+                       class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
+                       <param name="dataSourceName" value="dataSource" />
+                       <param name="schemaObjectPrefix" value="${wsp.name}_pm_" />
+               </PersistenceManager>
+               <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
+                       <param name="path" value="${wsp.home}/index" />
+               </SearchIndex>
+       </Workspace>
+
+       <!-- Versioning -->
+       <Versioning rootPath="${rep.home}/version">
+               <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
+                       <param name="dataSourceName" value="dataSource" />
+                       <param name="schema" value="default" />
+                       <param name="schemaObjectPrefix" value="fs_ver_" />
+               </FileSystem>
+               <PersistenceManager
+                       class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
+                       <param name="dataSourceName" value="dataSource" />
+                       <param name="schemaObjectPrefix" value="pm_ver_" />
+               </PersistenceManager>
+       </Versioning>
+
+       <!-- Indexing -->
+       <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
+               <param name="path" value="${rep.home}/repository/index" />
+               <param name="extractorPoolSize" value="2" />
+               <param name="supportHighlighting" value="true" />
+       </SearchIndex>
+
+       <!-- Security -->
+       <Security appName="Jackrabbit">
+               <SecurityManager class="org.argeo.security.jackrabbit.ArgeoSecurityManager"
+                       workspaceName="security">
+               </SecurityManager>
+               <AccessManager class="org.argeo.security.jackrabbit.ArgeoAccessManager">
+               </AccessManager>
+               <LoginModule class="org.argeo.security.jackrabbit.ArgeoLoginModule">
+               </LoginModule>
+       </Security>
+</Repository>
\ No newline at end of file
index 6a02828285b9092555f08aedbad2b4348e6a4867..e304907e2902ca94334355e2250ed2f778fce50f 100644 (file)
@@ -2,6 +2,8 @@ package org.argeo.slc.repo;
 
 /** SLC repository constants */
 public interface RepoConstants {
-       public final static String ARTIFACTS_BASE_PATH = "/repo";
-       public final static String PROXIED_REPOSITORIES = "/slc/repo/sources";
+       public final static String ARTIFACTS_BASE_PATH = "/";
+       public final static String REPO_BASEPATH = "/slc:repo";
+       public final static String PROXIED_REPOSITORIES = REPO_BASEPATH
+                       + "/slc:sources";
 }
index 9951b33bad122590e436f97f0d0765eb347067d7..b2c8fc01175e8a85819cf6340371f8e52a5ae525 100644 (file)
@@ -1,6 +1,7 @@
 package org.argeo.slc.repo;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import javax.jcr.Node;
@@ -35,6 +36,12 @@ public class RepoImpl {
                                        .addEventListener(artifactListener, Event.NODE_ADDED,
                                                        RepoConstants.ARTIFACTS_BASE_PATH, true, null,
                                                        null, true);
+                       // localrepo
+                       String localrepoWorkspace = "localrepo";
+                       if (!Arrays.asList(
+                                       adminSession.getWorkspace().getAccessibleWorkspaceNames())
+                                       .contains(localrepoWorkspace))
+                               adminSession.getWorkspace().createWorkspace(localrepoWorkspace);
                } catch (RepositoryException e) {
                        throw new SlcException("Cannot initialize repository backend", e);
                }