Clean up JCR repo config.
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 16 Nov 2012 12:15:19 +0000 (12:15 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 16 Nov 2012 12:15:19 +0000 (12:15 +0000)
Add dist and rpm repositories

git-svn-id: https://svn.argeo.org/slc/trunk@5853 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

modules/org.argeo.slc.server.repo/META-INF/spring/jcr.xml
modules/org.argeo.slc.server.repo/META-INF/spring/maven.xml
modules/org.argeo.slc.server.repo/META-INF/spring/repo-osgi.xml
modules/org.argeo.slc.server.repo/META-INF/spring/services.xml
modules/org.argeo.slc.server.repo/repo.properties
modules/org.argeo.slc.server.repo/repository-h2.xml
modules/org.argeo.slc.server.repo/repository-pg-dist.xml [new file with mode: 0644]
modules/org.argeo.slc.server.repo/repository-pg-java.xml [new file with mode: 0644]
modules/org.argeo.slc.server.repo/repository-pg-rpm.xml [new file with mode: 0644]

index 63334a5b2a83edab4db8be904cf0ddecb852a980..7fa468ba9c76442f08a986e95dbbd7352ed5c044 100644 (file)
@@ -3,14 +3,40 @@
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
 \r
-       <bean id="jcrSession" class="org.argeo.security.jcr.SecureThreadBoundSession">\r
-               <property name="repository" ref="jcrRepository" />\r
+       <!-- JCR repositories -->\r
+       <bean id="javaRepository" parent="template.jcrRepository">\r
+               <property name="homeDirectory" value="${slc.repo.jcr.reposBase}/java" />\r
+               <property name="configuration" value="${slc.repo.jcr.configuration.java}" />\r
+       </bean>\r
+       <bean id="distRepository" parent="template.jcrRepository">\r
+               <property name="homeDirectory" value="${slc.repo.jcr.reposBase}/dist" />\r
+               <property name="configuration" value="${slc.repo.jcr.configuration.dist}" />\r
+       </bean>\r
+       <bean id="rpmRepository" parent="template.jcrRepository">\r
+               <property name="homeDirectory" value="${slc.repo.jcr.reposBase}/rpm" />\r
+               <property name="configuration" value="${slc.repo.jcr.configuration.rpm}" />\r
+       </bean>\r
+\r
+       <!-- JCR authorizations -->\r
+       <bean parent="template.jcrAuthorizations">\r
+               <property name="repository" ref="javaRepository" />\r
+       </bean>\r
+       <bean parent="template.jcrAuthorizations">\r
+               <property name="repository" ref="distRepository" />\r
+       </bean>\r
+       <bean parent="template.jcrAuthorizations">\r
+               <property name="repository" ref="rpmRepository" />\r
+       </bean>\r
+\r
+       <bean\r
+               class="org.argeo.security.core.AuthenticatedApplicationContextInitialization">\r
+               <property name="authenticationManager" ref="authenticationManager" />\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
+       <!-- Templates -->\r
+       <bean id="template.jcrRepository" abstract="true"\r
+               class="org.argeo.jackrabbit.JackrabbitContainer" init-method="init"\r
+               destroy-method="destroy">\r
                <property name="variables" value="osgibundle:/repo.properties" />\r
                <property name="cndFiles">\r
                        <list>\r
                        </list>\r
                </property>\r
                <property name="bundleContext" ref="bundleContext" />\r
-               <property name="forceCndImport" value="${org.argeo.slc.repo.forceCndImport}" />\r
+               <property name="forceCndImport" value="${slc.repo.jcr.forceCndImport}" />\r
        </bean>\r
 \r
-       <!-- Security -->\r
-       <bean class="org.argeo.jackrabbit.JackrabbitAuthorizations"\r
-               init-method="run">\r
+       <bean id="template.jcrAuthorizations" abstract="true"\r
+               class="org.argeo.jackrabbit.JackrabbitAuthorizations" init-method="run">\r
                <property name="principalPrivileges">\r
                        <map>\r
                                <entry key="jcr:all" value="ROLE_SLC" />\r
                                <entry key="jcr:all" value="ROLE_ADMIN" />\r
                        </map>\r
                </property>\r
-               <property name="repository" ref="jcrRepository" />\r
                <property name="workspace" value="*" />\r
        </bean>\r
 \r
-       <bean\r
-               class="org.argeo.security.core.AuthenticatedApplicationContextInitialization">\r
-               <property name="authenticationManager" ref="authenticationManager" />\r
-       </bean>\r
+\r
 </beans>
\ No newline at end of file
index 89e98f67266a9069f4097d1ec9c415ce0500eee2..8836ae4ee28f4c1296849b423ea2c29b82364d93 100644 (file)
@@ -9,32 +9,10 @@
 
        <!-- Proxied repositories -->
        <util:list id="defaultMavenRepositories">
-               <ref local="argeo-snapshots" />
-               <ref local="argeo" />
                <ref local="central" />
-               <ref local="com.springsource.repository.bundles.external" />
-               <ref local="com.springsource.repository.bundles.release" />
        </util:list>
 
-<!--   <bean id="localrepo" p:url="http://localrepo:7080/org.argeo.slc.repo.webapp/maven" -->
-<!--           p:username="root" p:password="demo" -->
-<!--           class="org.argeo.slc.aether.spring.RemoteRepositoryFactory" /> -->
-
        <bean id="central" p:url="http://repo1.maven.org/maven2"
                class="org.argeo.slc.aether.spring.RemoteRepositoryFactory" />
 
-       <bean id="com.springsource.repository.bundles.release"
-               p:url="http://repository.springsource.com/maven/bundles/release"
-               class="org.argeo.slc.aether.spring.RemoteRepositoryFactory" />
-
-       <bean id="com.springsource.repository.bundles.external"
-               p:url="http://repository.springsource.com/maven/bundles/external"
-               class="org.argeo.slc.aether.spring.RemoteRepositoryFactory" />
-
-       <bean id="argeo" p:url="http://maven.argeo.org/argeo"
-               class="org.argeo.slc.aether.spring.RemoteRepositoryFactory" />
-
-       <bean id="argeo-snapshots" p:url="http://dev.argeo.org/maven/argeo-snapshots"
-               class="org.argeo.slc.aether.spring.RemoteRepositoryFactory" />
-
 </beans>
\ No newline at end of file
index d15450317444bf877c69cfd0f166b55e43f79994..f7adaad9f3f8ed3623316ee8bff492f5be5726ae 100644 (file)
@@ -9,23 +9,31 @@
        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd">\r
 \r
        <!-- REFERENCES -->\r
-       <!-- 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
-       <service ref="jcrRepository" interface="javax.jcr.Repository">\r
+\r
+       <!-- SERVICES -->\r
+       <service ref="javaRepository" interface="javax.jcr.Repository">\r
                <service-properties>\r
                        <beans:entry key="argeo.jcr.repository.alias" value="java" />\r
                </service-properties>\r
        </service>\r
+       <service ref="distRepository" interface="javax.jcr.Repository">\r
+               <service-properties>\r
+                       <beans:entry key="argeo.jcr.repository.alias" value="dist" />\r
+               </service-properties>\r
+       </service>\r
+       <service ref="rpmRepository" interface="javax.jcr.Repository">\r
+               <service-properties>\r
+                       <beans:entry key="argeo.jcr.repository.alias" value="rpm" />\r
+               </service-properties>\r
+       </service>\r
 \r
-       <!-- Maven -->\r
-<!--   <reference id="mavenRepositorySystem" interface="org.sonatype.aether.RepositorySystem" -->\r
-<!--           filter="(aether.repositorySystemType=maven)" /> -->\r
-<!--   <reference id="mavenRepositorySystemSession" interface="org.sonatype.aether.RepositorySystemSession" -->\r
-<!--           filter="(aether.repositorySystemType=maven)" /> -->\r
-\r
-       <!-- SERVICES -->\r
        <service ref="mavenProxyService" interface="org.argeo.slc.repo.maven.proxy.MavenProxyService" />\r
-</beans:beans>
\ No newline at end of file
+</beans:beans>\r
+\r
+<!-- <reference id="mavenRepositorySystem" interface="org.sonatype.aether.RepositorySystem" -->\r
+<!-- filter="(aether.repositorySystemType=maven)" /> -->\r
+<!-- <reference id="mavenRepositorySystemSession" interface="org.sonatype.aether.RepositorySystemSession" -->\r
+<!-- filter="(aether.repositorySystemType=maven)" /> -->\r
+\r
index 57e0cf6077ee5419a6e4fa43ff7a93b9d8194964..71c2f2a3eb845457c54190541e2da0349299942c 100644 (file)
@@ -17,7 +17,7 @@
 
        <bean id="repo" class="org.argeo.slc.repo.RepoImpl" init-method="init"
                destroy-method="destroy">
-               <property name="jcrRepository" ref="jcrRepository" />
+               <property name="jcrRepository" ref="javaRepository" />
                <property name="nodeIndexers">
                        <list>
                                <bean class="org.argeo.slc.repo.ArtifactIndexer" />
@@ -28,7 +28,7 @@
 
        <bean id="mavenProxyService" class="org.argeo.slc.repo.maven.proxy.MavenProxyServiceImpl"
                init-method="init" destroy-method="destroy">
-               <property name="jcrRepository" ref="jcrRepository" />
+               <property name="jcrRepository" ref="javaRepository" />
                <property name="defaultRepositories" ref="defaultMavenRepositories" />
        </bean>
 
index e7339965cd7ddfa7242942a63f048be060e28597..d54eaa11a33f825e0d622a305b8b3e77e6d5cd56 100644 (file)
@@ -1 +1,10 @@
-org.argeo.slc.repo.forceCndImport=false
\ No newline at end of file
+slc.repo.jcr.reposBase=${osgi.instance.area}/repos
+slc.repo.jcr.forceCndImport=false
+
+slc.repo.jcr.configuration.java=osgibundle:repository-h2.xml
+slc.repo.jcr.configuration.dist=osgibundle:repository-h2.xml
+slc.repo.jcr.configuration.rpm=osgibundle:repository-h2.xml
+
+slc.repo.jcr.dbuser=sa
+slc.repo.jcr.dbpassword=
+slc.repo.jcr.maxPoolSize=10
\ No newline at end of file
index 2f5c774d5954121838ebbb37fb4a7a27e542def4..03d08cf59547c20a3e86ea0470474835805f6add 100644 (file)
@@ -7,10 +7,10 @@
                <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="user" value="${slc.repo.jcr.dbuser}" />
+                       <param name="password" value="${slc.repo.jcr.dbpassword}" />
                        <param name="databaseType" value="h2" />
-                       <param name="maxPoolSize" value="30" />
+                       <param name="maxPoolSize" value="${slc.repo.jcr.maxPoolSize}" />
                </DataSource>
        </DataSources>
 
diff --git a/modules/org.argeo.slc.server.repo/repository-pg-dist.xml b/modules/org.argeo.slc.server.repo/repository-pg-dist.xml
new file mode 100644 (file)
index 0000000..18682b2
--- /dev/null
@@ -0,0 +1,77 @@
+<?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.postgresql.Driver" />
+                       <param name="url" value="${slc.repo.jcr.dburl.dist}" />
+                       <param name="user" value="${slc.repo.jcr.dbuser}" />
+                       <param name="password" value="${slc.repo.jcr.dbpassword}" />
+                       <param name="databaseType" value="postgresql" />
+                       <param name="maxPoolSize" value="${slc.repo.jcr.maxPoolSize}" />
+               </DataSource>
+       </DataSources>
+
+       <!-- File system and datastore -->
+       <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
+               <param name="dataSourceName" value="dataSource" />
+               <param name="schema" value="postgresql" />
+               <param name="schemaObjectPrefix" value="fs_" />
+       </FileSystem>
+       <DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
+               <param name="path" value="${rep.home}/datastore" />
+       </DataStore>
+
+       <!-- Workspace templates -->
+       <Workspaces rootPath="${rep.home}/workspaces"
+               defaultWorkspace="${argeo.node.repo.defaultWorkspace}" />
+       <Workspace name="${wsp.name}">
+               <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
+                       <param name="dataSourceName" value="dataSource" />
+                       <param name="schema" value="postgresql" />
+                       <param name="schemaObjectPrefix" value="${wsp.name}_fs_" />
+               </FileSystem>
+               <PersistenceManager
+                       class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
+                       <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="postgresql" />
+                       <param name="schemaObjectPrefix" value="fs_ver_" />
+               </FileSystem>
+               <PersistenceManager
+                       class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
+                       <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}/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
diff --git a/modules/org.argeo.slc.server.repo/repository-pg-java.xml b/modules/org.argeo.slc.server.repo/repository-pg-java.xml
new file mode 100644 (file)
index 0000000..40f5a2b
--- /dev/null
@@ -0,0 +1,77 @@
+<?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.postgresql.Driver" />
+                       <param name="url" value="${slc.repo.jcr.dburl.java}" />
+                       <param name="user" value="${slc.repo.jcr.dbuser}" />
+                       <param name="password" value="${slc.repo.jcr.dbpassword}" />
+                       <param name="databaseType" value="postgresql" />
+                       <param name="maxPoolSize" value="${slc.repo.jcr.maxPoolSize}" />
+               </DataSource>
+       </DataSources>
+
+       <!-- File system and datastore -->
+       <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
+               <param name="dataSourceName" value="dataSource" />
+               <param name="schema" value="postgresql" />
+               <param name="schemaObjectPrefix" value="fs_" />
+       </FileSystem>
+       <DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
+               <param name="path" value="${rep.home}/datastore" />
+       </DataStore>
+
+       <!-- Workspace templates -->
+       <Workspaces rootPath="${rep.home}/workspaces"
+               defaultWorkspace="${argeo.node.repo.defaultWorkspace}" />
+       <Workspace name="${wsp.name}">
+               <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
+                       <param name="dataSourceName" value="dataSource" />
+                       <param name="schema" value="postgresql" />
+                       <param name="schemaObjectPrefix" value="${wsp.name}_fs_" />
+               </FileSystem>
+               <PersistenceManager
+                       class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
+                       <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="postgresql" />
+                       <param name="schemaObjectPrefix" value="fs_ver_" />
+               </FileSystem>
+               <PersistenceManager
+                       class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
+                       <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}/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
diff --git a/modules/org.argeo.slc.server.repo/repository-pg-rpm.xml b/modules/org.argeo.slc.server.repo/repository-pg-rpm.xml
new file mode 100644 (file)
index 0000000..74d9562
--- /dev/null
@@ -0,0 +1,77 @@
+<?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.postgresql.Driver" />
+                       <param name="url" value="${slc.repo.jcr.dburl.rpm}" />
+                       <param name="user" value="${slc.repo.jcr.dbuser}" />
+                       <param name="password" value="${slc.repo.jcr.dbpassword}" />
+                       <param name="databaseType" value="postgresql" />
+                       <param name="maxPoolSize" value="${slc.repo.jcr.maxPoolSize}" />
+               </DataSource>
+       </DataSources>
+
+       <!-- File system and datastore -->
+       <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
+               <param name="dataSourceName" value="dataSource" />
+               <param name="schema" value="postgresql" />
+               <param name="schemaObjectPrefix" value="fs_" />
+       </FileSystem>
+       <DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
+               <param name="path" value="${rep.home}/datastore" />
+       </DataStore>
+
+       <!-- Workspace templates -->
+       <Workspaces rootPath="${rep.home}/workspaces"
+               defaultWorkspace="${argeo.node.repo.defaultWorkspace}" />
+       <Workspace name="${wsp.name}">
+               <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
+                       <param name="dataSourceName" value="dataSource" />
+                       <param name="schema" value="postgresql" />
+                       <param name="schemaObjectPrefix" value="${wsp.name}_fs_" />
+               </FileSystem>
+               <PersistenceManager
+                       class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
+                       <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="postgresql" />
+                       <param name="schemaObjectPrefix" value="fs_ver_" />
+               </FileSystem>
+               <PersistenceManager
+                       class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
+                       <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}/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