]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1327] implement alternative or improve repository metadata storage: if no reposi...
authorOlivier Lamy <olamy@apache.org>
Wed, 5 Oct 2011 14:49:22 +0000 (14:49 +0000)
committerOlivier Lamy <olamy@apache.org>
Wed, 5 Oct 2011 14:49:22 +0000 (14:49 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1179245 13f79535-47bb-0310-9956-ffa450edef68

archiva-jetty/src/main/conf/repository.xml [deleted file]
archiva-modules/archiva-web/archiva-webapp/pom.xml
archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/repository.xml [deleted file]
archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/startup/ArchivaJcrRepositoryConfig.java [new file with mode: 0644]
archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/spring-context.xml
archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/repository.xml [new file with mode: 0644]

diff --git a/archiva-jetty/src/main/conf/repository.xml b/archiva-jetty/src/main/conf/repository.xml
deleted file mode 100644 (file)
index 4cf264f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
-    "http://jackrabbit.apache.org/dtd/repository-1.6.dtd">
-
-<Repository>
-  <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-    <param name="path" value="${rep.home}/repository"/>
-  </FileSystem>
-  <Security appName="Jackrabbit">
-    <SecurityManager class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" workspaceName="security"/>
-    <AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager"/>
-    <LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule"/>
-  </Security>
-  <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
-  <Workspace name="${wsp.name}">
-    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-      <param name="path" value="${wsp.home}"/>
-    </FileSystem>
-    <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
-    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
-      <param name="path" value="${wsp.home}/index"/>
-    </SearchIndex>
-  </Workspace>
-  <Versioning rootPath="${rep.home}/version">
-    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-      <param name="path" value="${rep.home}/version"/>
-    </FileSystem>
-    <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
-  </Versioning>
-</Repository>
index bb1650e85360cb1e7383f40c206c1fc6817b1bc0..4926e87314667796bdd4874d575719a17cf38e9f 100644 (file)
     <dependency>
       <groupId>org.apache.jackrabbit</groupId>
       <artifactId>jackrabbit-core</artifactId>
-      <scope>runtime</scope>
       <exclusions>
         <exclusion>
           <groupId>commons-logging</groupId>
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/repository.xml b/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/repository.xml
deleted file mode 100644 (file)
index 4cf264f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
-    "http://jackrabbit.apache.org/dtd/repository-1.6.dtd">
-
-<Repository>
-  <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-    <param name="path" value="${rep.home}/repository"/>
-  </FileSystem>
-  <Security appName="Jackrabbit">
-    <SecurityManager class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" workspaceName="security"/>
-    <AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager"/>
-    <LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule"/>
-  </Security>
-  <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
-  <Workspace name="${wsp.name}">
-    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-      <param name="path" value="${wsp.home}"/>
-    </FileSystem>
-    <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
-    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
-      <param name="path" value="${wsp.home}/index"/>
-    </SearchIndex>
-  </Workspace>
-  <Versioning rootPath="${rep.home}/version">
-    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-      <param name="path" value="${rep.home}/version"/>
-    </FileSystem>
-    <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
-  </Versioning>
-</Repository>
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/startup/ArchivaJcrRepositoryConfig.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/startup/ArchivaJcrRepositoryConfig.java
new file mode 100644 (file)
index 0000000..9c41413
--- /dev/null
@@ -0,0 +1,55 @@
+package org.apache.archiva.web.startup;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.jackrabbit.core.config.ConfigurationException;
+import org.apache.jackrabbit.core.config.RepositoryConfig;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+
+/**
+ * @author Olivier Lamy
+ */
+public class ArchivaJcrRepositoryConfig
+{
+    public static RepositoryConfig create( String file, String home )
+        throws ConfigurationException
+    {
+        File homeFile = new File( home );
+        if ( !homeFile.exists( ) )
+        {
+            homeFile.mkdirs( );
+
+        }
+
+        File configurationFile = new File( file );
+        if ( !configurationFile.exists( ) )
+        {
+            String resourcePath = "org/apache/archiva/repository.xml";
+            LoggerFactory.getLogger( ArchivaJcrRepositoryConfig.class ).info(
+                "now repository.xml file in path {} so use default from resources path {}", file, resourcePath );
+            // use bundled repository.xml
+            return RepositoryConfig.create(
+                Thread.currentThread( ).getContextClassLoader( ).getResourceAsStream( resourcePath ), home );
+        }
+
+        return RepositoryConfig.create( file, home );
+    }
+}
index 034abf343d6f00c4b0aadcd1c78616bb07d8157c..13ffc0015e7805f3261d7dfa293a03093a0c86fc 100755 (executable)
@@ -38,7 +38,7 @@
   <bean id="jcr-repository" class="org.apache.jackrabbit.core.RepositoryImpl" destroy-method="shutdown" lazy-init="true">
     <constructor-arg ref="jcr-config"/>
   </bean>
-  <bean id="jcr-config" class="org.apache.jackrabbit.core.config.RepositoryConfig" factory-method="create">
+  <bean id="jcr-config" class="org.apache.archiva.web.startup.ArchivaJcrRepositoryConfig" factory-method="create">
     <constructor-arg value="${appserver.base}/conf/repository.xml"/>
     <constructor-arg value="${appserver.base}/jcr"/>
   </bean>
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/repository.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/repository.xml
new file mode 100644 (file)
index 0000000..4cf264f
--- /dev/null
@@ -0,0 +1,48 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
+    "http://jackrabbit.apache.org/dtd/repository-1.6.dtd">
+
+<Repository>
+  <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+    <param name="path" value="${rep.home}/repository"/>
+  </FileSystem>
+  <Security appName="Jackrabbit">
+    <SecurityManager class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" workspaceName="security"/>
+    <AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager"/>
+    <LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule"/>
+  </Security>
+  <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
+  <Workspace name="${wsp.name}">
+    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+      <param name="path" value="${wsp.home}"/>
+    </FileSystem>
+    <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
+    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
+      <param name="path" value="${wsp.home}/index"/>
+    </SearchIndex>
+  </Workspace>
+  <Versioning rootPath="${rep.home}/version">
+    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+      <param name="path" value="${rep.home}/version"/>
+    </FileSystem>
+    <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
+  </Versioning>
+</Repository>