You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2007/02/09 16:39:43 UTC

svn commit: r505329 [1/2] - in /maven/archiva/trunk: archiva-configuration/ archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ archiva-configuration/src/test/conf/ archiva-configuration/src/test/java/org/apache/maven/archiva/co...

Author: brett
Date: Fri Feb  9 07:39:41 2007
New Revision: 505329

URL: http://svn.apache.org/viewvc?view=rev&rev=505329
Log:
move to a registry based configuration

Added:
    maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java   (with props)
    maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java   (with props)
    maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java   (with props)
    maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml   (with props)
Removed:
    maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationChangeException.java
    maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationChangeListener.java
    maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStore.java
    maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStoreException.java
    maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultConfigurationStore.java
    maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ConfigurationStoreTest.java
    maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ConfigurationStoreTest.xml
Modified:
    maven/archiva/trunk/archiva-configuration/pom.xml
    maven/archiva/trunk/archiva-configuration/src/test/conf/repository-manager.xml
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java
    maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java
    maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java
    maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml
    maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml
    maven/archiva/trunk/archiva-plexus-runtime/pom.xml
    maven/archiva/trunk/archiva-plexus-runtime/src/conf/plexus.xml
    maven/archiva/trunk/archiva-reports-standard/pom.xml
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java
    maven/archiva/trunk/archiva-webapp/src/main/resources/META-INF/plexus/application.xml

Modified: maven/archiva/trunk/archiva-configuration/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-configuration/pom.xml?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-configuration/pom.xml (original)
+++ maven/archiva/trunk/archiva-configuration/pom.xml Fri Feb  9 07:39:41 2007
@@ -51,19 +51,24 @@
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-registry</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
   </dependencies>
   <build>
     <plugins>
       <plugin>
         <groupId>org.codehaus.modello</groupId>
         <artifactId>modello-maven-plugin</artifactId>
-        <version>1.0-alpha-10</version>
+        <version>1.0-alpha-14-SNAPSHOT</version>
         <executions>
           <execution>
             <goals>
-              <goal>xpp3-writer</goal>
               <goal>java</goal>
-              <goal>xpp3-reader</goal>
+              <goal>registry-reader</goal>
+              <goal>registry-writer</goal>
             </goals>
           </execution>
         </executions>

Added: maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java?view=auto&rev=505329
==============================================================================
--- maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java (added)
+++ maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java Fri Feb  9 07:39:41 2007
@@ -0,0 +1,53 @@
+package org.apache.maven.archiva.configuration;
+
+/*
+ * 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.codehaus.plexus.registry.RegistryException;
+import org.codehaus.plexus.registry.RegistryListener;
+
+/**
+ * Configuration holder for the model read from the registry.
+ */
+public interface ArchivaConfiguration
+{
+    /**
+     * Get the configuration.
+     *
+     * @return the configuration
+     */
+    Configuration getConfiguration();
+
+    /**
+     * Save any updated configuration.
+     *
+     * @param configuration the configuration to save
+     * @throws org.codehaus.plexus.registry.RegistryException
+     *          if there is a problem saving the registry data
+     */
+    void save( Configuration configuration )
+        throws RegistryException;
+
+    /**
+     * Add a change listener so that registry changes are propogated.
+     *
+     * @param listener the listener
+     */
+    void addChangeListener( RegistryListener listener );
+}

Propchange: maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java?view=auto&rev=505329
==============================================================================
--- maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java (added)
+++ maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java Fri Feb  9 07:39:41 2007
@@ -0,0 +1,85 @@
+package org.apache.maven.archiva.configuration;
+
+/*
+ * 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.maven.archiva.configuration.io.registry.ConfigurationRegistryReader;
+import org.apache.maven.archiva.configuration.io.registry.ConfigurationRegistryWriter;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.registry.Registry;
+import org.codehaus.plexus.registry.RegistryException;
+import org.codehaus.plexus.registry.RegistryListener;
+
+/**
+ * Implementation of configuration holder that retrieves it from the registry.
+ *
+ * @plexus.component
+ */
+public class DefaultArchivaConfiguration
+    implements ArchivaConfiguration, RegistryListener, Initializable
+{
+    /**
+     * Plexus registry to read the configuration from.
+     *
+     * @plexus.requirement role-hint="commons-configuration"
+     */
+    private Registry registry;
+
+    /**
+     * The configuration that has been converted.
+     */
+    private Configuration configuration;
+
+    private static final String KEY = "org.apache.maven.archiva";
+
+    public synchronized Configuration getConfiguration()
+    {
+        if ( configuration == null )
+        {
+            // TODO: should this be the same as section? make sure unnamed sections still work (eg, sys properties)
+            configuration = new ConfigurationRegistryReader().read( registry.getSubset( KEY ) );
+        }
+        return configuration;
+    }
+
+    public void save( Configuration configuration )
+        throws RegistryException
+    {
+        Registry section = registry.getSection( KEY );
+        new ConfigurationRegistryWriter().write( configuration, section );
+        section.save();
+    }
+
+    public void addChangeListener( RegistryListener listener )
+    {
+        registry.addChangeListener( listener );
+    }
+
+    public synchronized void notifyOfConfigurationChange( Registry registry )
+    {
+        configuration = null;
+    }
+
+    public void initialize()
+        throws InitializationException
+    {
+        registry.addChangeListener( this );
+    }
+}

Propchange: maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/archiva/trunk/archiva-configuration/src/test/conf/repository-manager.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-configuration/src/test/conf/repository-manager.xml?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-configuration/src/test/conf/repository-manager.xml (original)
+++ maven/archiva/trunk/archiva-configuration/src/test/conf/repository-manager.xml Fri Feb  9 07:39:41 2007
@@ -30,8 +30,6 @@
     <proxiedRepository>
       <url>http://www.ibiblio.org/maven2/</url>
       <managedRepository>local</managedRepository>
-      <snapshotsInterval></snapshotsInterval>
-      <releasesInterval></releasesInterval>
       <useNetworkProxy>true</useNetworkProxy>
       <id>ibiblio</id>
       <name>Ibiblio</name>

Added: maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java?view=auto&rev=505329
==============================================================================
--- maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java (added)
+++ maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java Fri Feb  9 07:39:41 2007
@@ -0,0 +1,139 @@
+package org.apache.maven.archiva.configuration;
+
+/*
+ * 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.codehaus.plexus.PlexusTestCase;
+
+import java.io.File;
+import java.util.Properties;
+
+/**
+ * Test the configuration store.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public class ArchivaConfigurationTest
+    extends PlexusTestCase
+{
+    public void testDefaults()
+        throws Exception
+    {
+        ArchivaConfiguration archivaConfiguration =
+            (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-defaults" );
+
+        Configuration configuration = archivaConfiguration.getConfiguration();
+
+        // check default configuration
+        assertNotNull( "check configuration returned", configuration );
+        assertEquals( "check configuration has default elements", "0 0,30 * * * ?",
+                      configuration.getIndexerCronExpression() );
+        assertNull( "check configuration has default elements", configuration.getIndexPath() );
+        assertTrue( "check configuration has default elements", configuration.getRepositories().isEmpty() );
+    }
+
+    public void testGetConfiguration()
+        throws Exception
+    {
+        ArchivaConfiguration archivaConfiguration =
+            (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-configuration" );
+
+        Configuration configuration = archivaConfiguration.getConfiguration();
+
+        assertEquals( "check indexPath", ".index", configuration.getIndexPath() );
+        assertEquals( "check localRepository", "local-repository", configuration.getLocalRepository() );
+
+        assertEquals( "check managed repositories", 1, configuration.getRepositories().size() );
+        RepositoryConfiguration repository =
+            (RepositoryConfiguration) configuration.getRepositories().iterator().next();
+
+        assertEquals( "check managed repositories", "managed-repository", repository.getDirectory() );
+        assertEquals( "check managed repositories", "local", repository.getName() );
+        assertEquals( "check managed repositories", "local", repository.getId() );
+        assertEquals( "check managed repositories", "default", repository.getLayout() );
+        assertTrue( "check managed repositories", repository.isIndexed() );
+
+        assertEquals( "check proxied repositories", 1, configuration.getProxiedRepositories().size() );
+        ProxiedRepositoryConfiguration proxiedRepository =
+            (ProxiedRepositoryConfiguration) configuration.getProxiedRepositories().iterator().next();
+
+        assertEquals( "check proxied repositories", "local", proxiedRepository.getManagedRepository() );
+        assertEquals( "check proxied repositories", "http://www.ibiblio.org/maven2/", proxiedRepository.getUrl() );
+        assertEquals( "check proxied repositories", "ibiblio", proxiedRepository.getId() );
+        assertEquals( "check proxied repositories", "Ibiblio", proxiedRepository.getName() );
+        assertEquals( "check proxied repositories", 0, proxiedRepository.getSnapshotsInterval() );
+        assertEquals( "check proxied repositories", 0, proxiedRepository.getReleasesInterval() );
+        assertTrue( "check proxied repositories", proxiedRepository.isUseNetworkProxy() );
+
+        assertEquals( "check synced repositories", 1, configuration.getSyncedRepositories().size() );
+        SyncedRepositoryConfiguration syncedRepository =
+            (SyncedRepositoryConfiguration) configuration.getSyncedRepositories().iterator().next();
+
+        assertEquals( "check synced repositories", "local", syncedRepository.getManagedRepository() );
+        assertEquals( "check synced repositories", "apache", syncedRepository.getId() );
+        assertEquals( "check synced repositories", "ASF", syncedRepository.getName() );
+        assertEquals( "check synced repositories", "0 0 * * * ?", syncedRepository.getCronExpression() );
+        assertEquals( "check synced repositories", "rsync", syncedRepository.getMethod() );
+        Properties properties = new Properties();
+        properties.setProperty( "rsyncHost", "host" );
+        properties.setProperty( "rsyncMethod", "ssh" );
+        assertEquals( "check synced repositories", properties, syncedRepository.getProperties() );
+    }
+
+    public void testGetConfigurationSystemOverride()
+        throws Exception
+    {
+        ArchivaConfiguration archivaConfiguration =
+            (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-configuration" );
+
+        System.setProperty( "org.apache.maven.archiva.localRepository", "system-repository" );
+
+        Configuration configuration = archivaConfiguration.getConfiguration();
+
+        assertEquals( "check localRepository", "system-repository", configuration.getLocalRepository() );
+        assertEquals( "check indexPath", ".index", configuration.getIndexPath() );
+    }
+
+    public void testStoreConfiguration()
+        throws Exception
+    {
+        File file = getTestFile( "target/test/test-file.xml" );
+        file.delete();
+        assertFalse( file.exists() );
+
+        ArchivaConfiguration archivaConfiguration =
+            (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save" );
+
+        Configuration configuration = new Configuration();
+        configuration.setIndexPath( "index-path" );
+
+        archivaConfiguration.save( configuration );
+
+        assertTrue( "Check file exists", file.exists() );
+
+        // check it
+        configuration = archivaConfiguration.getConfiguration();
+        assertEquals( "check value", "index-path", configuration.getIndexPath() );
+
+        // read it back
+        archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-read-saved" );
+        configuration = archivaConfiguration.getConfiguration();
+        assertEquals( "check value", "index-path", configuration.getIndexPath() );
+    }
+}

Propchange: maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml?view=auto&rev=505329
==============================================================================
--- maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml (added)
+++ maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml Fri Feb  9 07:39:41 2007
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  ~ 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.
+  -->
+
+<component-set>
+  <components>
+    <component>
+      <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
+      <role-hint>test-defaults</role-hint>
+      <implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
+      <requirements>
+        <requirement>
+          <role>org.codehaus.plexus.registry.Registry</role>
+          <role-hint>empty</role-hint>
+        </requirement>
+      </requirements>
+    </component>
+    <component>
+      <role>org.codehaus.plexus.registry.Registry</role>
+      <role-hint>empty</role-hint>
+      <implementation>org.codehaus.plexus.registry.CommonsConfigurationRegistry</implementation>
+      <configuration>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
+      <role-hint>test-configuration</role-hint>
+      <implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
+      <requirements>
+        <requirement>
+          <role>org.codehaus.plexus.registry.Registry</role>
+          <role-hint>configured</role-hint>
+        </requirement>
+      </requirements>
+    </component>
+    <component>
+      <role>org.codehaus.plexus.registry.Registry</role>
+      <role-hint>configured</role-hint>
+      <implementation>org.codehaus.plexus.registry.CommonsConfigurationRegistry</implementation>
+      <configuration>
+        <properties>
+          <system/>
+          <xml fileName="${basedir}/src/test/conf/repository-manager.xml"
+               config-name="org.apache.maven.archiva" config-at="org.apache.maven.archiva"/>
+        </properties>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
+      <role-hint>test-save</role-hint>
+      <implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
+      <requirements>
+        <requirement>
+          <role>org.codehaus.plexus.registry.Registry</role>
+          <role-hint>save</role-hint>
+        </requirement>
+      </requirements>
+    </component>
+    <component>
+      <role>org.codehaus.plexus.registry.Registry</role>
+      <role-hint>save</role-hint>
+      <implementation>org.codehaus.plexus.registry.CommonsConfigurationRegistry</implementation>
+      <configuration>
+        <properties>
+          <xml fileName="${basedir}/target/test/test-file.xml" config-optional="true" config-forceCreate="true"
+               config-name="org.apache.maven.archiva" config-at="org.apache.maven.archiva"/>
+        </properties>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
+      <role-hint>test-read-saved</role-hint>
+      <implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
+      <requirements>
+        <requirement>
+          <role>org.codehaus.plexus.registry.Registry</role>
+          <role-hint>read-saved</role-hint>
+        </requirement>
+      </requirements>
+    </component>
+    <component>
+      <role>org.codehaus.plexus.registry.Registry</role>
+      <role-hint>read-saved</role-hint>
+      <implementation>org.codehaus.plexus.registry.CommonsConfigurationRegistry</implementation>
+      <configuration>
+        <properties>
+          <xml fileName="${basedir}/target/test/test-file.xml" config-optional="true" config-forceCreate="true"
+               config-name="org.apache.maven.archiva" config-at="org.apache.maven.archiva"/>
+        </properties>
+      </configuration>
+    </component>
+  </components>
+</component-set>

Propchange: maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java (original)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java Fri Feb  9 07:39:41 2007
@@ -27,32 +27,32 @@
 import org.apache.maven.project.ProjectBuildingException;
 
 /**
- * ActiveManagedRepositories 
+ * ActiveManagedRepositories
  *
  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
  * @version $Id$
  */
 public interface ActiveManagedRepositories
 {
-    public static final String ROLE = ActiveManagedRepositories.class.getName();
+    String ROLE = ActiveManagedRepositories.class.getName();
 
     /**
      * Obtain the ArtifactRepository for the specified Repository ID.
-     * 
+     *
      * @param id the ID of the repository.
      * @return the ArtifactRepository associated with the provided ID, or null if none found.
      */
-    public ArtifactRepository getArtifactRepository( String id );
+    ArtifactRepository getArtifactRepository( String id );
 
-    public RepositoryConfiguration getRepositoryConfiguration( String id );
+    RepositoryConfiguration getRepositoryConfiguration( String id );
 
-    public MavenProject findProject( String groupId, String artifactId, String version )
+    MavenProject findProject( String groupId, String artifactId, String version )
         throws ProjectBuildingException;
 
-    public ManagedArtifact findArtifact( String groupId, String artifactId, String version )
+    ManagedArtifact findArtifact( String groupId, String artifactId, String version )
         throws ProjectBuildingException;
 
-    public ManagedArtifact findArtifact( String groupId, String artifactId, String version, String type );
+    ManagedArtifact findArtifact( String groupId, String artifactId, String version, String type );
 
-    public ManagedArtifact findArtifact( Artifact artifact );
+    ManagedArtifact findArtifact( Artifact artifact );
 }

Modified: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java (original)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java Fri Feb  9 07:39:41 2007
@@ -24,13 +24,9 @@
 import org.apache.maven.archiva.artifact.ManagedArtifactTypes;
 import org.apache.maven.archiva.artifact.ManagedEjbArtifact;
 import org.apache.maven.archiva.artifact.ManagedJavaArtifact;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationChangeException;
-import org.apache.maven.archiva.configuration.ConfigurationChangeListener;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
-import org.apache.maven.archiva.configuration.InvalidConfigurationException;
 import org.apache.maven.archiva.configuration.RepositoryConfiguration;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
@@ -42,20 +38,22 @@
 import org.codehaus.plexus.cache.Cache;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.registry.Registry;
+import org.codehaus.plexus.registry.RegistryListener;
 
 import java.io.File;
 import java.util.Iterator;
 import java.util.List;
 
 /**
- * DefaultActiveManagedRepositories 
+ * DefaultActiveManagedRepositories
  *
  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
  * @version $Id$
  * @plexus.component role="org.apache.maven.archiva.repositories.ActiveManagedRepositories"
  */
 public class DefaultActiveManagedRepositories
-    implements ActiveManagedRepositories, ConfigurationChangeListener, Initializable
+    implements ActiveManagedRepositories, Initializable, RegistryListener
 {
     /**
      * @plexus.requirement role-hint="artifactCache"
@@ -70,7 +68,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @plexus.requirement
@@ -191,21 +189,8 @@
     public void initialize()
         throws InitializationException
     {
-        Configuration config;
-        try
-        {
-            config = configurationStore.getConfigurationFromStore();
-            configureSelf( config );
-        }
-        catch ( ConfigurationStoreException e )
-        {
-            throw new InitializationException( "Unable to load configuration.", e );
-        }
-    }
-
-    public void notifyOfConfigurationChange( Configuration config )
-        throws InvalidConfigurationException, ConfigurationChangeException
-    {
+        Configuration config = archivaConfiguration.getConfiguration();
+        archivaConfiguration.addChangeListener( this );
         configureSelf( config );
     }
 
@@ -229,7 +214,7 @@
         this.configuration = config;
         this.artifactCache.clear();
         this.projectCache.clear();
-        
+
         repositories = repositoryFactory.createRepositories( this.configuration );
         localRepository = repositoryFactory.createLocalRepository( this.configuration );
     }
@@ -280,5 +265,10 @@
         }
 
         return path;
+    }
+
+    public void notifyOfConfigurationChange( Registry registry )
+    {
+        configureSelf( archivaConfiguration.getConfiguration() );
     }
 }

Modified: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java (original)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java Fri Feb  9 07:39:41 2007
@@ -19,12 +19,8 @@
  * under the License.
  */
 
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationChangeException;
-import org.apache.maven.archiva.configuration.ConfigurationChangeListener;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
-import org.apache.maven.archiva.configuration.InvalidConfigurationException;
 import org.apache.maven.archiva.indexer.RepositoryArtifactIndex;
 import org.apache.maven.archiva.indexer.RepositoryArtifactIndexFactory;
 import org.apache.maven.archiva.indexer.RepositoryIndexException;
@@ -35,6 +31,8 @@
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException;
+import org.codehaus.plexus.registry.Registry;
+import org.codehaus.plexus.registry.RegistryListener;
 import org.codehaus.plexus.scheduler.Scheduler;
 import org.codehaus.plexus.taskqueue.TaskQueue;
 import org.codehaus.plexus.taskqueue.TaskQueueException;
@@ -55,7 +53,7 @@
  */
 public class DefaultRepositoryTaskScheduler
     extends AbstractLogEnabled
-    implements RepositoryTaskScheduler, Startable, ConfigurationChangeListener
+    implements RepositoryTaskScheduler, Startable, RegistryListener
 {
     /**
      * @plexus.requirement
@@ -75,7 +73,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @plexus.requirement
@@ -89,16 +87,8 @@
     public void start()
         throws StartingException
     {
-        Configuration configuration;
-        try
-        {
-            configuration = configurationStore.getConfigurationFromStore();
-            configurationStore.addChangeListener( this );
-        }
-        catch ( ConfigurationStoreException e )
-        {
-            throw new StartingException( "Unable to read configuration from the store", e );
-        }
+        Configuration configuration = archivaConfiguration.getConfiguration();
+        archivaConfiguration.addChangeListener( this );
 
         try
         {
@@ -166,26 +156,30 @@
         }
     }
 
-    public void notifyOfConfigurationChange( Configuration configuration )
-        throws InvalidConfigurationException, ConfigurationChangeException
+    public void notifyOfConfigurationChange( Registry registry )
     {
         try
         {
             stop();
-
-            scheduleJobs( configuration );
         }
         catch ( StoppingException e )
         {
-            throw new ConfigurationChangeException( "Unable to unschedule previous tasks", e );
+            getLogger().warn( "Error stopping task scheduler: " + e.getMessage(), e );
+        }
+
+        try
+        {
+            scheduleJobs( archivaConfiguration.getConfiguration() );
         }
         catch ( ParseException e )
         {
-            throw new InvalidConfigurationException( "indexerCronExpression", "Invalid cron expression", e );
+            getLogger().error(
+                "Error restarting task scheduler after configuration change, due to configuration error: " +
+                    e.getMessage(), e );
         }
         catch ( SchedulerException e )
         {
-            throw new ConfigurationChangeException( "Unable to schedule new tasks", e );
+            getLogger().error( "Error restarting task scheduler after configuration change: " + e.getMessage(), e );
         }
     }
 
@@ -207,15 +201,7 @@
     public void queueNowIfNeeded()
         throws org.codehaus.plexus.taskqueue.execution.TaskExecutionException
     {
-        Configuration configuration;
-        try
-        {
-            configuration = configurationStore.getConfigurationFromStore();
-        }
-        catch ( ConfigurationStoreException e )
-        {
-            throw new TaskExecutionException( e.getMessage(), e );
-        }
+        Configuration configuration = archivaConfiguration.getConfiguration();
 
         File indexPath = new File( configuration.getIndexPath() );
 

Modified: maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java (original)
+++ maven/archiva/trunk/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java Fri Feb  9 07:39:41 2007
@@ -19,9 +19,8 @@
  * under the License.
  */
 
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
 import org.apache.maven.archiva.configuration.RepositoryConfiguration;
 import org.apache.maven.archiva.discoverer.ArtifactDiscoverer;
@@ -69,7 +68,7 @@
      *
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @plexus.requirement
@@ -128,15 +127,7 @@
     public void execute()
         throws TaskExecutionException
     {
-        Configuration configuration;
-        try
-        {
-            configuration = configurationStore.getConfigurationFromStore();
-        }
-        catch ( ConfigurationStoreException e )
-        {
-            throw new TaskExecutionException( e.getMessage(), e );
-        }
+        Configuration configuration = archivaConfiguration.getConfiguration();
 
         File indexPath = new File( configuration.getIndexPath() );
 
@@ -146,15 +137,7 @@
     public void executeNowIfNeeded()
         throws TaskExecutionException
     {
-        Configuration configuration;
-        try
-        {
-            configuration = configurationStore.getConfigurationFromStore();
-        }
-        catch ( ConfigurationStoreException e )
-        {
-            throw new TaskExecutionException( e.getMessage(), e );
-        }
+        Configuration configuration = archivaConfiguration.getConfiguration();
 
         File indexPath = new File( configuration.getIndexPath() );
 
@@ -241,8 +224,8 @@
                         for ( int j = 0; j < artifacts.size(); j += ARTIFACT_BUFFER_SIZE )
                         {
                             int end = j + ARTIFACT_BUFFER_SIZE;
-                            List currentArtifacts = artifacts.subList( j, end > artifacts.size() ? artifacts.size()
-                                                                                                : end );
+                            List currentArtifacts =
+                                artifacts.subList( j, end > artifacts.size() ? artifacts.size() : end );
 
                             // TODO: proper queueing of this in case it was triggered externally (not harmful to do so at present, but not optimal)
 
@@ -262,8 +245,8 @@
 
                     MetadataDiscoverer metadataDiscoverer = (MetadataDiscoverer) metadataDiscoverers
                         .get( layoutProperty );
-                    List metadata = metadataDiscoverer.discoverMetadata( repository, blacklistedPatterns,
-                                                                         metadataFilter );
+                    List metadata =
+                        metadataDiscoverer.discoverMetadata( repository, blacklistedPatterns, metadataFilter );
 
                     if ( !metadata.isEmpty() )
                     {

Modified: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java (original)
+++ maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java Fri Feb  9 07:39:41 2007
@@ -25,7 +25,7 @@
 import org.codehaus.plexus.PlexusTestCase;
 
 /**
- * DefaultActiveManagedRepositoriesTest 
+ * DefaultActiveManagedRepositoriesTest
  *
  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
  * @version $Id$
@@ -40,11 +40,11 @@
     {
         super.setUp();
 
-        managedRepos = (DefaultActiveManagedRepositories) lookup( ActiveManagedRepositories.ROLE );
+        managedRepos = (ActiveManagedRepositories) lookup( ActiveManagedRepositories.ROLE );
     }
 
     /**
-     * Test a simple java find artifact with extras (sources / javadoc). 
+     * Test a simple java find artifact with extras (sources / javadoc).
      */
     public void testFindArtifactJavaWithExtras()
     {
@@ -53,8 +53,8 @@
 
         if ( !( artifact instanceof ManagedJavaArtifact ) )
         {
-            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
-                + artifact.getClass().getName() + ">." );
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
+                artifact.getClass().getName() + ">." );
         }
 
         ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
@@ -68,7 +68,7 @@
         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", javaArtifact.getJavadocPath() );
         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", javaArtifact.getSourcesPath() );
     }
-    
+
     /**
      * Test a simple java find artifact with no extras.
      */
@@ -79,8 +79,8 @@
 
         if ( !( artifact instanceof ManagedJavaArtifact ) )
         {
-            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
-                + artifact.getClass().getName() + ">." );
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
+                artifact.getClass().getName() + ">." );
         }
 
         ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
@@ -93,10 +93,10 @@
         assertEquals( pathPrefix + "/" + pathArtifactVersion + ".jar", javaArtifact.getPath() );
         assertNull( "should have no javadoc jar.", javaArtifact.getJavadocPath() );
         assertNull( "should have no sources jar.", javaArtifact.getSourcesPath() );
-    }    
+    }
 
     /**
-     * Test a java find of a snapshot artifact that uses a timestamp format. 
+     * Test a java find of a snapshot artifact that uses a timestamp format.
      */
     public void testFindArtifactJavaSnapshotTimestamp()
     {
@@ -106,8 +106,8 @@
 
         if ( !( artifact instanceof ManagedJavaArtifact ) )
         {
-            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
-                + artifact.getClass().getName() + ">." );
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
+                artifact.getClass().getName() + ">." );
         }
 
         ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
@@ -123,7 +123,7 @@
     }
 
     /**
-     * Test a java find of a snapshot artifact. 
+     * Test a java find of a snapshot artifact.
      */
     public void testFindArtifactJavaSnapshot()
     {
@@ -133,8 +133,8 @@
 
         if ( !( artifact instanceof ManagedJavaArtifact ) )
         {
-            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
-                + artifact.getClass().getName() + ">." );
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
+                artifact.getClass().getName() + ">." );
         }
 
         ManagedJavaArtifact javaArtifact = (ManagedJavaArtifact) artifact;
@@ -150,18 +150,18 @@
     }
 
     /**
-     * Test a ejb find of a snapshot artifact that also has a client jar available. 
+     * Test a ejb find of a snapshot artifact that also has a client jar available.
      */
     public void testFindArtifactEjbSnapshot()
     {
-        ManagedArtifact artifact = managedRepos.findArtifact( "org.apache.geronimo.daytrader", "daytrader-ejb",
-                                                              "2.0-SNAPSHOT", "ejb" );
+        ManagedArtifact artifact =
+            managedRepos.findArtifact( "org.apache.geronimo.daytrader", "daytrader-ejb", "2.0-SNAPSHOT", "ejb" );
         assertNotNull( artifact );
 
         if ( !( artifact instanceof ManagedEjbArtifact ) )
         {
-            fail( "Expected artifact to be type <" + ManagedEjbArtifact.class.getName() + "> but was actually <"
-                + artifact.getClass().getName() + ">." );
+            fail( "Expected artifact to be type <" + ManagedEjbArtifact.class.getName() + "> but was actually <" +
+                artifact.getClass().getName() + ">." );
         }
 
         ManagedEjbArtifact ejbArtifact = (ManagedEjbArtifact) artifact;
@@ -176,7 +176,7 @@
         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", ejbArtifact.getJavadocPath() );
         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-sources.jar", ejbArtifact.getSourcesPath() );
     }
-    
+
     /**
      * Test a simple java find artifact with no extras.
      */
@@ -187,8 +187,8 @@
 
         if ( !( artifact instanceof ManagedJavaArtifact ) )
         {
-            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <"
-                + artifact.getClass().getName() + ">." );
+            fail( "Expected artifact to be type <" + ManagedJavaArtifact.class.getName() + "> but was actually <" +
+                artifact.getClass().getName() + ">." );
         }
 
         ManagedJavaArtifact warArtifact = (ManagedJavaArtifact) artifact;
@@ -201,5 +201,5 @@
         assertEquals( pathPrefix + "/" + pathArtifactVersion + ".war", warArtifact.getPath() );
         assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", warArtifact.getJavadocPath() );
         assertNull( "should have no sources jar.", warArtifact.getSourcesPath() );
-    }    
+    }
 }

Modified: maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java (original)
+++ maven/archiva/trunk/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java Fri Feb  9 07:39:41 2007
@@ -20,9 +20,8 @@
  */
 
 import org.apache.commons.io.FileUtils;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.scheduler.task.IndexerTask;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
@@ -31,7 +30,7 @@
 import java.io.File;
 
 /**
- * IndexerTaskExecutorTest 
+ * IndexerTaskExecutorTest
  *
  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
  * @version $Id$
@@ -48,8 +47,9 @@
 
         taskExecutor = (TaskExecutor) lookup( "org.codehaus.plexus.taskqueue.execution.TaskExecutor", "indexer" );
 
-        ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE );
-        Configuration configuration = configurationStore.getConfigurationFromStore();
+        ArchivaConfiguration archivaConfiguration =
+            (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName() );
+        Configuration configuration = archivaConfiguration.getConfiguration();
 
         File indexPath = new File( configuration.getIndexPath() );
         if ( indexPath.exists() )

Modified: maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml (original)
+++ maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml Fri Feb  9 07:39:41 2007
@@ -21,10 +21,14 @@
 <component-set>
   <components>
     <component>
-      <role>org.apache.maven.archiva.configuration.ConfigurationStore</role>
-      <implementation>org.apache.maven.archiva.configuration.DefaultConfigurationStore</implementation>
+      <role>org.codehaus.plexus.registry.Registry</role>
+      <implementation>org.codehaus.plexus.registry.CommonsConfigurationRegistry</implementation>
+      <role-hint>commons-configuration</role-hint>
       <configuration>
-        <file>${basedir}/src/test/conf/archiva.xml</file>
+        <properties>
+          <xml fileName="${basedir}/src/test/conf/archiva.xml"
+               config-name="org.apache.maven.archiva" config-at="org.apache.maven.archiva"/>
+        </properties>
       </configuration>
     </component>
   </components>

Modified: maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml (original)
+++ maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml Fri Feb  9 07:39:41 2007
@@ -21,10 +21,14 @@
 <component-set>
   <components>
     <component>
-      <role>org.apache.maven.archiva.configuration.ConfigurationStore</role>
-      <implementation>org.apache.maven.archiva.configuration.DefaultConfigurationStore</implementation>
+      <role>org.codehaus.plexus.registry.Registry</role>
+      <implementation>org.codehaus.plexus.registry.CommonsConfigurationRegistry</implementation>
+      <role-hint>commons-configuration</role-hint>
       <configuration>
-        <file>${basedir}/src/test/conf/archiva.xml</file>
+        <properties>
+          <xml fileName="${basedir}/src/test/conf/archiva.xml"
+               config-name="org.apache.maven.archiva" config-at="org.apache.maven.archiva"/>
+        </properties>
       </configuration>
     </component>
   </components>

Modified: maven/archiva/trunk/archiva-plexus-runtime/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-plexus-runtime/pom.xml?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-plexus-runtime/pom.xml (original)
+++ maven/archiva/trunk/archiva-plexus-runtime/pom.xml Fri Feb  9 07:39:41 2007
@@ -76,7 +76,7 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-naming</artifactId>
-      <version>1.0-alpha-2</version>
+      <version>1.0-alpha-3-SNAPSHOT</version>
       <scope>runtime</scope>
     </dependency>
     <dependency>
@@ -118,6 +118,7 @@
             <additionalCoreArtifact>directory-naming:naming-core</additionalCoreArtifact>
             <additionalCoreArtifact>directory-naming:naming-factory</additionalCoreArtifact>
             <additionalCoreArtifact>directory-naming:naming-java</additionalCoreArtifact>
+            <additionalCoreArtifact>directory-naming:naming-config</additionalCoreArtifact>
             <additionalCoreArtifact>javax.mail:mail</additionalCoreArtifact>
             <additionalCoreArtifact>javax.activation:activation</additionalCoreArtifact>
           </additionalCoreArtifacts>

Modified: maven/archiva/trunk/archiva-plexus-runtime/src/conf/plexus.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-plexus-runtime/src/conf/plexus.xml?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-plexus-runtime/src/conf/plexus.xml (original)
+++ maven/archiva/trunk/archiva-plexus-runtime/src/conf/plexus.xml Fri Feb  9 07:39:41 2007
@@ -31,6 +31,15 @@
       <implementation>org.codehaus.plexus.naming.DefaultNaming</implementation>
       <role-hint>dataSources</role-hint>
       <configuration>
+        <!-- Example override:
+                <environments>
+                  <environment>
+                    <name>org/apache/maven/archiva/indexPath</name>
+                    <value>${user.home}/.m2/my-index</value>
+                    <type>java.lang.String</type>
+                  </environment>
+                </environments>
+        -->
         <resources>
           <!--
                Mail Session

Modified: maven/archiva/trunk/archiva-reports-standard/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-reports-standard/pom.xml?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-reports-standard/pom.xml (original)
+++ maven/archiva/trunk/archiva-reports-standard/pom.xml Fri Feb  9 07:39:41 2007
@@ -83,7 +83,7 @@
       <plugin>
         <groupId>org.codehaus.modello</groupId>
         <artifactId>modello-maven-plugin</artifactId>
-        <version>1.0-alpha-10</version>
+        <version>1.0-alpha-14-SNAPSHOT</version>
         <executions>
           <execution>
             <goals>

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java Fri Feb  9 07:39:41 2007
@@ -19,9 +19,8 @@
  * under the License.
  */
 
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.codehaus.plexus.xwork.action.PlexusActionSupport;
@@ -37,12 +36,11 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     protected ArtifactRepository createLocalRepository()
-        throws ConfigurationStoreException
     {
-        Configuration configuration = configurationStore.getConfigurationFromStore();
+        Configuration configuration = archivaConfiguration.getConfiguration();
 
         return repositoryFactory.createLocalRepository( configuration );
     }

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java Fri Feb  9 07:39:41 2007
@@ -20,9 +20,8 @@
  */
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
 import org.apache.maven.archiva.indexer.RepositoryArtifactIndex;
 import org.apache.maven.archiva.indexer.RepositoryArtifactIndexFactory;
@@ -62,7 +61,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     private List groups;
 
@@ -81,7 +80,7 @@
     private static long groupCacheTime;
 
     public String browse()
-        throws ConfigurationStoreException, RepositoryIndexException, IOException
+        throws RepositoryIndexException, IOException
     {
         RepositoryArtifactIndex index = getIndex();
 
@@ -99,7 +98,7 @@
     }
 
     public String browseGroup()
-        throws ConfigurationStoreException, RepositoryIndexException, IOException, RepositoryIndexSearchException
+        throws RepositoryIndexException, IOException, RepositoryIndexSearchException
     {
         RepositoryArtifactIndex index = getIndex();
 
@@ -146,7 +145,7 @@
     }
 
     public String browseArtifact()
-        throws ConfigurationStoreException, RepositoryIndexException, IOException, RepositoryIndexSearchException
+        throws RepositoryIndexException, IOException, RepositoryIndexSearchException
     {
         RepositoryArtifactIndex index = getIndex();
 
@@ -245,9 +244,9 @@
     }
 
     private RepositoryArtifactIndex getIndex()
-        throws ConfigurationStoreException, RepositoryIndexException
+        throws RepositoryIndexException
     {
-        Configuration configuration = configurationStore.getConfigurationFromStore();
+        Configuration configuration = archivaConfiguration.getConfiguration();
         File indexPath = new File( configuration.getIndexPath() );
 
         return factory.createStandardIndex( indexPath );

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java Fri Feb  9 07:39:41 2007
@@ -20,8 +20,8 @@
  */
 
 import com.opensymphony.xwork.Preparable;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
 import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
 import org.apache.maven.archiva.configuration.RepositoryConfiguration;
 import org.apache.maven.archiva.discoverer.DiscovererException;
@@ -58,7 +58,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @plexus.requirement
@@ -209,7 +209,7 @@
     public void prepare()
         throws Exception
     {
-        configuration = configurationStore.getConfigurationFromStore();
+        configuration = archivaConfiguration.getConfiguration();
     }
 
     public Configuration getConfiguration()

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java Fri Feb  9 07:39:41 2007
@@ -23,9 +23,8 @@
 import org.apache.lucene.queryParser.MultiFieldQueryParser;
 import org.apache.lucene.queryParser.ParseException;
 import org.apache.lucene.search.TermQuery;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
 import org.apache.maven.archiva.indexer.RepositoryArtifactIndex;
 import org.apache.maven.archiva.indexer.RepositoryArtifactIndexFactory;
@@ -77,7 +76,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     private static final String RESULTS = "results";
 
@@ -86,8 +85,7 @@
     private String infoMessage;
 
     public String quickSearch()
-        throws MalformedURLException, RepositoryIndexException, RepositoryIndexSearchException,
-        ConfigurationStoreException, ParseException
+        throws MalformedURLException, RepositoryIndexException, RepositoryIndexSearchException, ParseException
     {
         // TODO: give action message if indexing is in progress
 
@@ -153,9 +151,9 @@
     }
 
     private RepositoryArtifactIndex getIndex()
-        throws ConfigurationStoreException, RepositoryIndexException
+        throws RepositoryIndexException
     {
-        Configuration configuration = configurationStore.getConfigurationFromStore();
+        Configuration configuration = archivaConfiguration.getConfiguration();
         File indexPath = new File( configuration.getIndexPath() );
 
         return factory.createStandardIndex( indexPath );

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java Fri Feb  9 07:39:41 2007
@@ -22,9 +22,8 @@
 import org.apache.commons.lang.StringUtils;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.TermQuery;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
 import org.apache.maven.archiva.indexer.RepositoryArtifactIndex;
 import org.apache.maven.archiva.indexer.RepositoryArtifactIndexFactory;
@@ -91,7 +90,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @plexus.requirement
@@ -134,8 +133,8 @@
     private List mailingLists;
 
     public String artifact()
-        throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException,
-        ResourceDoesNotExistException, ProxyException, ArtifactResolutionException
+        throws IOException, XmlPullParserException, ProjectBuildingException, ResourceDoesNotExistException,
+        ProxyException, ArtifactResolutionException
     {
         if ( !checkParameters() )
         {
@@ -150,7 +149,7 @@
     }
 
     public String dependencies()
-        throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException
+        throws IOException, XmlPullParserException, ProjectBuildingException
     {
         if ( !checkParameters() )
         {
@@ -168,7 +167,7 @@
     }
 
     public String mailingLists()
-        throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException
+        throws IOException, XmlPullParserException, ProjectBuildingException
     {
         if ( !checkParameters() )
         {
@@ -178,15 +177,15 @@
         MavenProject project = readProject();
 
         model = project.getModel();
-        
+
         this.mailingLists = project.getMailingLists();
 
         return SUCCESS;
     }
 
     public String dependees()
-        throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException,
-        RepositoryIndexException, RepositoryIndexSearchException
+        throws IOException, XmlPullParserException, ProjectBuildingException, RepositoryIndexException,
+        RepositoryIndexSearchException
     {
         if ( !checkParameters() )
         {
@@ -208,15 +207,14 @@
     }
 
     public String dependencyTree()
-        throws ConfigurationStoreException, ProjectBuildingException, InvalidDependencyVersionException,
-        ArtifactResolutionException
+        throws ProjectBuildingException, InvalidDependencyVersionException, ArtifactResolutionException
     {
         if ( !checkParameters() )
         {
             return ERROR;
         }
 
-        Configuration configuration = configurationStore.getConfigurationFromStore();
+        Configuration configuration = archivaConfiguration.getConfiguration();
         List repositories = repositoryFactory.createRepositories( configuration );
 
         Artifact artifact = artifactFactory.createProjectArtifact( groupId, artifactId, version );
@@ -228,7 +226,7 @@
 
         getLogger().debug( " processing : " + groupId + ":" + artifactId + ":" + version );
 
-        DependencyTree dependencies = collectDependencies( project, artifact, localRepository, repositories );
+        DependencyTree dependencies = collectDependencies( project, localRepository );
 
         this.dependencyTree = new ArrayList();
 
@@ -249,10 +247,8 @@
         }
     }
 
-    private DependencyTree collectDependencies( MavenProject project, Artifact artifact,
-                                                ArtifactRepository localRepository, List repositories )
-        throws ArtifactResolutionException, ProjectBuildingException, InvalidDependencyVersionException,
-        ConfigurationStoreException
+    private DependencyTree collectDependencies( MavenProject project, ArtifactRepository localRepository )
+        throws ArtifactResolutionException, ProjectBuildingException, InvalidDependencyVersionException
     {
         try
         {
@@ -272,18 +268,18 @@
     }
 
     private RepositoryArtifactIndex getIndex()
-        throws ConfigurationStoreException, RepositoryIndexException
+        throws RepositoryIndexException
     {
-        Configuration configuration = configurationStore.getConfigurationFromStore();
+        Configuration configuration = archivaConfiguration.getConfiguration();
         File indexPath = new File( configuration.getIndexPath() );
 
         return factory.createStandardIndex( indexPath );
     }
 
     private MavenProject readProject()
-        throws ConfigurationStoreException, ProjectBuildingException
+        throws ProjectBuildingException
     {
-        Configuration configuration = configurationStore.getConfigurationFromStore();
+        Configuration configuration = archivaConfiguration.getConfiguration();
         List repositories = repositoryFactory.createRepositories( configuration );
 
         Artifact artifact = artifactFactory.createProjectArtifact( groupId, artifactId, version );
@@ -466,7 +462,7 @@
                         return false;
                     }
                     if ( getQualifier() != null ? !getQualifier().equals( that.getQualifier() )
-                                               : that.getQualifier() != null )
+                        : that.getQualifier() != null )
                     {
                         return false;
                     }

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java Fri Feb  9 07:39:41 2007
@@ -22,14 +22,13 @@
 import com.opensymphony.xwork.ModelDriven;
 import com.opensymphony.xwork.Preparable;
 import org.apache.maven.archiva.configuration.AbstractRepositoryConfiguration;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationChangeException;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.InvalidConfigurationException;
 import org.apache.maven.archiva.security.ArchivaRoleConstants;
 import org.codehaus.plexus.rbac.profile.RoleProfileException;
 import org.codehaus.plexus.rbac.profile.RoleProfileManager;
+import org.codehaus.plexus.registry.RegistryException;
 import org.codehaus.plexus.security.rbac.RbacManagerException;
 import org.codehaus.plexus.security.rbac.Resource;
 import org.codehaus.plexus.security.ui.web.interceptor.SecureAction;
@@ -51,7 +50,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @plexus.requirement role-hint="archiva"
@@ -74,8 +73,7 @@
     protected Configuration configuration;
 
     public String add()
-        throws IOException, ConfigurationStoreException, InvalidConfigurationException, ConfigurationChangeException,
-        RbacManagerException, RoleProfileException
+        throws IOException, InvalidConfigurationException, RbacManagerException, RoleProfileException, RegistryException
     {
         // TODO: if this didn't come from the form, go to configure.action instead of going through with re-saving what was just loaded
 
@@ -90,8 +88,7 @@
     }
 
     public String edit()
-        throws IOException, ConfigurationStoreException, InvalidConfigurationException, ConfigurationChangeException,
-        RbacManagerException, RoleProfileException
+        throws IOException, InvalidConfigurationException, RbacManagerException, RoleProfileException, RegistryException
     {
         // TODO: if this didn't come from the form, go to configure.action instead of going through with re-saving what was just loaded
 
@@ -106,12 +103,11 @@
     protected abstract AbstractRepositoryConfiguration getRepository( String id );
 
     private String saveConfiguration()
-        throws IOException, ConfigurationStoreException, InvalidConfigurationException, ConfigurationChangeException,
-        RbacManagerException, RoleProfileException
+        throws IOException, InvalidConfigurationException, RbacManagerException, RoleProfileException, RegistryException
     {
         addRepository();
 
-        configurationStore.storeConfiguration( configuration );
+        archivaConfiguration.save( configuration );
 
         // TODO: do we need to check if indexing is needed?
 
@@ -136,9 +132,8 @@
     protected abstract AbstractRepositoryConfiguration createRepository();
 
     public void prepare()
-        throws ConfigurationStoreException
     {
-        configuration = configurationStore.getConfigurationFromStore();
+        configuration = archivaConfiguration.getConfiguration();
 
         if ( repository == null )
         {

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java Fri Feb  9 07:39:41 2007
@@ -20,13 +20,12 @@
  */
 
 import org.apache.maven.archiva.configuration.AbstractRepositoryConfiguration;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationChangeException;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.InvalidConfigurationException;
 import org.apache.maven.archiva.security.ArchivaRoleConstants;
 import org.codehaus.plexus.rbac.profile.RoleProfileManager;
+import org.codehaus.plexus.registry.RegistryException;
 import org.codehaus.plexus.security.rbac.Resource;
 import org.codehaus.plexus.security.ui.web.interceptor.SecureAction;
 import org.codehaus.plexus.security.ui.web.interceptor.SecureActionBundle;
@@ -47,7 +46,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * The repository ID to lookup when editing a repository.
@@ -65,13 +64,13 @@
     protected RoleProfileManager roleProfileManager;
 
     public String execute()
-        throws ConfigurationStoreException, IOException, InvalidConfigurationException, ConfigurationChangeException
+        throws IOException, InvalidConfigurationException, RegistryException
     {
         // TODO: if this didn't come from the form, go to configure.action instead of going through with re-saving what was just loaded
 
         if ( "delete-entry".equals( operation ) || "delete-contents".equals( operation ) )
         {
-            Configuration configuration = configurationStore.getConfigurationFromStore();
+            Configuration configuration = archivaConfiguration.getConfiguration();
 
             AbstractRepositoryConfiguration existingRepository = getRepository( configuration );
             if ( existingRepository == null )
@@ -84,7 +83,7 @@
 
             removeRepository( configuration, existingRepository );
 
-            configurationStore.storeConfiguration( configuration );
+            archivaConfiguration.save( configuration );
 
             if ( "delete-contents".equals( operation ) )
             {

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java Fri Feb  9 07:39:41 2007
@@ -22,15 +22,14 @@
 import com.opensymphony.xwork.ModelDriven;
 import com.opensymphony.xwork.Preparable;
 import com.opensymphony.xwork.Validateable;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationChangeException;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.InvalidConfigurationException;
 import org.apache.maven.archiva.indexer.RepositoryIndexException;
 import org.apache.maven.archiva.indexer.RepositoryIndexSearchException;
 import org.apache.maven.archiva.scheduler.executors.IndexerTaskExecutor;
 import org.apache.maven.archiva.security.ArchivaRoleConstants;
+import org.codehaus.plexus.registry.RegistryException;
 import org.codehaus.plexus.scheduler.CronExpressionValidator;
 import org.codehaus.plexus.security.rbac.Resource;
 import org.codehaus.plexus.security.ui.web.interceptor.SecureAction;
@@ -54,7 +53,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @plexus.requirement role="org.codehaus.plexus.taskqueue.execution.TaskExecutor" role-hint="indexer"
@@ -96,8 +95,8 @@
     }
 
     public String execute()
-        throws IOException, RepositoryIndexException, RepositoryIndexSearchException, ConfigurationStoreException,
-        InvalidConfigurationException, ConfigurationChangeException
+        throws IOException, RepositoryIndexException, RepositoryIndexSearchException, InvalidConfigurationException,
+        RegistryException
     {
         // TODO: if this didn't come from the form, go to configure.action instead of going through with re-saving what was just loaded
         // TODO: if this is changed, do we move the index or recreate it?
@@ -115,7 +114,7 @@
         // Just double checking that our validation routines line up with what is expected in the configuration
         assert configuration.isValid();
 
-        configurationStore.storeConfiguration( configuration );
+        archivaConfiguration.save( configuration );
 
         // TODO: if the repository has changed, we need to check if indexing is needed!
 
@@ -176,9 +175,8 @@
     }
 
     public void prepare()
-        throws ConfigurationStoreException
     {
-        configuration = configurationStore.getConfigurationFromStore();
+        configuration = archivaConfiguration.getConfiguration();
     }
 
     public String getLastIndexingTime()

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java Fri Feb  9 07:39:41 2007
@@ -80,8 +80,7 @@
     }
 
     public void prepare()
-        throws ConfigurationStoreException, ProjectBuildingException, ArtifactMetadataRetrievalException,
-        org.apache.maven.archiva.configuration.ConfigurationStoreException
+        throws ConfigurationStoreException, ProjectBuildingException, ArtifactMetadataRetrievalException
     {
         configuration = appConfigurationStore.getConfigurationFromStore();
 

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java Fri Feb  9 07:39:41 2007
@@ -70,7 +70,7 @@
 
     public String execute()
         throws IOException, ConfigurationStoreException, InvalidConfigurationException, ConfigurationChangeException,
-        ArtifactInstallationException, org.apache.maven.archiva.configuration.ConfigurationStoreException
+        ArtifactInstallationException
     {
         // TODO: hack for passed in String[]
         String[] logo = (String[]) companyModel.getProperties().get( "organization.logo" );
@@ -90,8 +90,7 @@
     }
 
     public void prepare()
-        throws ConfigurationStoreException, ProjectBuildingException, ArtifactMetadataRetrievalException,
-        org.apache.maven.archiva.configuration.ConfigurationStoreException
+        throws ConfigurationStoreException, ProjectBuildingException, ArtifactMetadataRetrievalException
     {
         configuration = appConfigurationStore.getConfigurationFromStore();
 

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java Fri Feb  9 07:39:41 2007
@@ -19,8 +19,8 @@
  * under the License.
  */
 
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.RepositoryConfiguration;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.rbac.profile.RoleProfileException;
@@ -49,14 +49,14 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @plexus.requirement role-hint="archiva"
      */
     private RoleProfileManager roleProfileManager;
 
-    private boolean checked = false;
+    private boolean checked;
 
     public void validateEnvironment( List list )
     {
@@ -65,9 +65,10 @@
             try
             {
                 // check if there is potential for role/repo disconnect
-                if ( configurationStore.getConfigurationFromStore().isValid() )
+                Configuration configuration = archivaConfiguration.getConfiguration();
+                if ( configuration.isValid() )
                 {
-                    List repos = configurationStore.getConfigurationFromStore().getRepositories();
+                    List repos = configuration.getRepositories();
 
                     for ( Iterator i = repos.iterator(); i.hasNext(); )
                     {
@@ -78,11 +79,6 @@
                         roleProfileManager.getDynamicRole( "archiva-repository-observer", repository.getId() );
                     }
                 }
-            }
-            catch ( ConfigurationStoreException cse )
-            {
-                list.add( this.getClass().getName() + " error loading configuration store: " + cse.getMessage() );
-                getLogger().info( "error loading configuration store", cse );
             }
             catch ( RoleProfileException rpe )
             {

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java Fri Feb  9 07:39:41 2007
@@ -21,8 +21,8 @@
 
 import com.opensymphony.xwork.ActionInvocation;
 import com.opensymphony.xwork.interceptor.Interceptor;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
 /**
@@ -39,7 +39,7 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @param actionInvocation
@@ -49,7 +49,7 @@
     public String intercept( ActionInvocation actionInvocation )
         throws Exception
     {
-        Configuration configuration = configurationStore.getConfigurationFromStore();
+        Configuration configuration = archivaConfiguration.getConfiguration();
 
         if ( !configuration.isValid() )
         {