aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Porter <brett@apache.org>2007-02-09 15:39:41 +0000
committerBrett Porter <brett@apache.org>2007-02-09 15:39:41 +0000
commit39ef9035afc4475b1309760b669ea2b94501b452 (patch)
tree465e0c7b9825f462daaafb66459b17a2342befdc
parente4f213c88e8ac8e7a76f6b8109e63222cf8fcb68 (diff)
downloadarchiva-39ef9035afc4475b1309760b669ea2b94501b452.tar.gz
archiva-39ef9035afc4475b1309760b669ea2b94501b452.zip
move to a registry based configuration
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@505329 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--archiva-configuration/pom.xml11
-rw-r--r--archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java (renamed from archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationChangeListener.java)36
-rw-r--r--archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationChangeException.java34
-rw-r--r--archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStore.java58
-rw-r--r--archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStoreException.java39
-rw-r--r--archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java85
-rw-r--r--archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultConfigurationStore.java162
-rw-r--r--archiva-configuration/src/test/conf/repository-manager.xml2
-rw-r--r--archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java (renamed from archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ConfigurationStoreTest.java)84
-rw-r--r--archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml112
-rw-r--r--archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ConfigurationStoreTest.xml56
-rw-r--r--archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java18
-rw-r--r--archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java38
-rw-r--r--archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java52
-rw-r--r--archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java33
-rw-r--r--archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java48
-rw-r--r--archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java10
-rw-r--r--archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml10
-rw-r--r--archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml10
-rw-r--r--archiva-plexus-runtime/pom.xml3
-rw-r--r--archiva-plexus-runtime/src/conf/plexus.xml9
-rwxr-xr-xarchiva-reports-standard/pom.xml2
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java8
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java15
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java6
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java12
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java42
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java21
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java13
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java16
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java3
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java5
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java18
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java6
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java48
-rw-r--r--archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java67
-rw-r--r--archiva-webapp/src/main/resources/META-INF/plexus/application.xml29
37 files changed, 507 insertions, 714 deletions
diff --git a/archiva-configuration/pom.xml b/archiva-configuration/pom.xml
index 833c594b0..8cdde8197 100644
--- a/archiva-configuration/pom.xml
+++ b/archiva-configuration/pom.xml
@@ -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>
diff --git a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationChangeListener.java b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java
index 819bc060e..a914ce712 100644
--- a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationChangeListener.java
+++ b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ArchivaConfiguration.java
@@ -19,21 +19,35 @@ package org.apache.maven.archiva.configuration;
* under the License.
*/
+import org.codehaus.plexus.registry.RegistryException;
+import org.codehaus.plexus.registry.RegistryListener;
+
/**
- * Component capable of noticing configuration changes and adjusting accordingly.
- * This is not a Plexus role.
- *
- * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * Configuration holder for the model read from the registry.
*/
-public interface ConfigurationChangeListener
+public interface ArchivaConfiguration
{
/**
- * Notify the object that there has been a configuration change.
+ * 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 configuration the new configuration
- * @throws InvalidConfigurationException if there is a problem with the new configuration
- * @throws ConfigurationChangeException if there is a problem changing the configuration, but the configuration is valid
+ * @param listener the listener
*/
- void notifyOfConfigurationChange( Configuration configuration )
- throws InvalidConfigurationException, ConfigurationChangeException;
+ void addChangeListener( RegistryListener listener );
}
diff --git a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationChangeException.java b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationChangeException.java
deleted file mode 100644
index 864ac1423..000000000
--- a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationChangeException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-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.
- */
-
-/**
- * An error changing the configuration
- *
- * @author <a href="mailto:brett@apache.org">Brett Porter</a>
- */
-public class ConfigurationChangeException
- extends Exception
-{
- public ConfigurationChangeException( String message, Throwable cause )
- {
- super( message, cause );
- }
-}
diff --git a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStore.java b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStore.java
deleted file mode 100644
index b5a338c9f..000000000
--- a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStore.java
+++ /dev/null
@@ -1,58 +0,0 @@
-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.
- */
-
-/**
- * A component for loading the configuration into the model.
- *
- * @author <a href="mailto:brett@apache.org">Brett Porter</a>
- * @todo this is something that could possibly be generalised into Modello.
- */
-public interface ConfigurationStore
-{
- /**
- * The Plexus role for the component.
- */
- String ROLE = ConfigurationStore.class.getName();
-
- /**
- * Get the configuration from the store. A cached version may be used.
- *
- * @return the configuration
- * @throws ConfigurationStoreException if there is a problem loading the configuration
- */
- Configuration getConfigurationFromStore()
- throws ConfigurationStoreException;
-
- /**
- * Save the configuration to the store.
- *
- * @param configuration the configuration to store
- */
- void storeConfiguration( Configuration configuration )
- throws ConfigurationStoreException, InvalidConfigurationException, ConfigurationChangeException;
-
- /**
- * Add a configuration change listener.
- *
- * @param listener the listener
- */
- void addChangeListener( ConfigurationChangeListener listener );
-}
diff --git a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStoreException.java b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStoreException.java
deleted file mode 100644
index 501c7c60b..000000000
--- a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ConfigurationStoreException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-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.
- */
-
-/**
- * Exception occurring using the configuration store.
- *
- * @author <a href="mailto:brett@apache.org">Brett Porter</a>
- */
-public class ConfigurationStoreException
- extends Exception
-{
- public ConfigurationStoreException( String message )
- {
- super( message );
- }
-
- public ConfigurationStoreException( String message, Throwable e )
- {
- super( message, e );
- }
-}
diff --git a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
new file mode 100644
index 000000000..7c467c884
--- /dev/null
+++ b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
@@ -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 );
+ }
+}
diff --git a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultConfigurationStore.java b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultConfigurationStore.java
deleted file mode 100644
index b99e7735e..000000000
--- a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultConfigurationStore.java
+++ /dev/null
@@ -1,162 +0,0 @@
-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.commons.io.IOUtils;
-import org.apache.maven.archiva.configuration.io.xpp3.ConfigurationXpp3Reader;
-import org.apache.maven.archiva.configuration.io.xpp3.ConfigurationXpp3Writer;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Load and store the configuration. No synchronization is used, but it is unnecessary as the old configuration object
- * can continue to be used.
- *
- * @author <a href="mailto:brett@apache.org">Brett Porter</a>
- * @todo would be great for plexus to do this for us - so the configuration would be a component itself rather than this store
- * @todo would be good to monitor the store file for changes
- * @todo support other implementations than XML file
- * @plexus.component
- */
-public class DefaultConfigurationStore
- extends AbstractLogEnabled
- implements ConfigurationStore
-{
- /**
- * @plexus.configuration default-value="${configuration.store.file}"
- */
- private File file;
-
- /**
- * The cached configuration.
- */
- private Configuration configuration;
-
- /**
- * List of listeners to configuration changes.
- */
- private List/*<ConfigurationChangeListener>*/ listeners = new LinkedList();
-
- public Configuration getConfigurationFromStore()
- throws ConfigurationStoreException
- {
- if ( configuration == null )
- {
- ConfigurationXpp3Reader reader = new ConfigurationXpp3Reader();
-
- if ( file == null )
- {
- file = new File( System.getProperty( "user.home" ), "/.m2/archiva.xml" );
-
- // migration for those with the old file
- if ( !file.exists() )
- {
- File file = new File( System.getProperty( "user.home" ), "/.m2/repository-manager.xml" );
- if ( file.exists() )
- {
- getLogger().info( "Migrating " + file + " to " + this.file );
- file.renameTo( this.file );
- }
- }
- }
-
- FileReader fileReader;
- try
- {
- fileReader = new FileReader( file );
- }
- catch ( FileNotFoundException e )
- {
- getLogger().warn( "Configuration file: " + file + " not found. Using defaults." );
- configuration = new Configuration();
- return configuration;
- }
-
- getLogger().info( "Reading configuration from " + file );
- try
- {
- configuration = reader.read( fileReader, false );
- configuration.sanitize();
- }
- catch ( IOException e )
- {
- throw new ConfigurationStoreException( e.getMessage(), e );
- }
- catch ( XmlPullParserException e )
- {
- throw new ConfigurationStoreException( e.getMessage(), e );
- }
- finally
- {
- IOUtils.closeQuietly( fileReader );
- }
- }
- return configuration;
- }
-
- public void storeConfiguration( Configuration configuration )
- throws ConfigurationStoreException, InvalidConfigurationException, ConfigurationChangeException
- {
- for ( Iterator i = listeners.iterator(); i.hasNext(); )
- {
- ConfigurationChangeListener listener = (ConfigurationChangeListener) i.next();
-
- listener.notifyOfConfigurationChange( configuration );
- }
-
- ConfigurationXpp3Writer writer = new ConfigurationXpp3Writer();
-
- getLogger().info( "Writing configuration to " + file );
- FileWriter fileWriter = null;
- try
- {
- //does file directory exist ?
- if ( file.getParentFile() != null && !file.getParentFile().exists() )
- {
- file.getParentFile().mkdirs();
- }
-
- fileWriter = new FileWriter( file );
- writer.write( fileWriter, configuration );
- }
- catch ( IOException e )
- {
- throw new ConfigurationStoreException( e.getMessage(), e );
- }
- finally
- {
- IOUtils.closeQuietly( fileWriter );
- }
- }
-
- public void addChangeListener( ConfigurationChangeListener listener )
- {
- listeners.add( listener );
- }
-}
diff --git a/archiva-configuration/src/test/conf/repository-manager.xml b/archiva-configuration/src/test/conf/repository-manager.xml
index 6c38902b7..4008e2503 100644
--- a/archiva-configuration/src/test/conf/repository-manager.xml
+++ b/archiva-configuration/src/test/conf/repository-manager.xml
@@ -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>
diff --git a/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ConfigurationStoreTest.java b/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
index 87b73d4e2..c22524e24 100644
--- a/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ConfigurationStoreTest.java
+++ b/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
@@ -20,7 +20,6 @@ package org.apache.maven.archiva.configuration;
*/
import org.codehaus.plexus.PlexusTestCase;
-import org.easymock.MockControl;
import java.io.File;
import java.util.Properties;
@@ -29,17 +28,17 @@ import java.util.Properties;
* Test the configuration store.
*
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
- * @noinspection JavaDoc
*/
-public class ConfigurationStoreTest
+public class ArchivaConfigurationTest
extends PlexusTestCase
{
- public void testInvalidFile()
+ public void testDefaults()
throws Exception
{
- ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "invalid-file" );
+ ArchivaConfiguration archivaConfiguration =
+ (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-defaults" );
- Configuration configuration = configurationStore.getConfigurationFromStore();
+ Configuration configuration = archivaConfiguration.getConfiguration();
// check default configuration
assertNotNull( "check configuration returned", configuration );
@@ -49,29 +48,13 @@ public class ConfigurationStoreTest
assertTrue( "check configuration has default elements", configuration.getRepositories().isEmpty() );
}
- public void testCorruptFile()
- throws Exception
- {
- ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "corrupt-file" );
-
- try
- {
- configurationStore.getConfigurationFromStore();
- fail( "Configuration should not have succeeded" );
- }
- catch ( ConfigurationStoreException e )
- {
- // expected
- assertTrue( true );
- }
- }
-
public void testGetConfiguration()
throws Exception
{
- ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "default" );
+ ArchivaConfiguration archivaConfiguration =
+ (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-configuration" );
- Configuration configuration = configurationStore.getConfigurationFromStore();
+ Configuration configuration = archivaConfiguration.getConfiguration();
assertEquals( "check indexPath", ".index", configuration.getIndexPath() );
assertEquals( "check localRepository", "local-repository", configuration.getLocalRepository() );
@@ -113,45 +96,44 @@ public class ConfigurationStoreTest
assertEquals( "check synced repositories", properties, syncedRepository.getProperties() );
}
- public void testStoreConfiguration()
+ public void testGetConfigurationSystemOverride()
throws Exception
{
- ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "save-file" );
-
- Configuration configuration = new Configuration();
- configuration.setIndexPath( "index-path" );
+ ArchivaConfiguration archivaConfiguration =
+ (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-configuration" );
- File file = getTestFile( "target/test/test-file.xml" );
- file.delete();
- assertFalse( file.exists() );
+ System.setProperty( "org.apache.maven.archiva.localRepository", "system-repository" );
- configurationStore.storeConfiguration( configuration );
+ Configuration configuration = archivaConfiguration.getConfiguration();
- assertTrue( "Check file exists", file.exists() );
-
- // read it back
- configuration = configurationStore.getConfigurationFromStore();
- assertEquals( "check value", "index-path", configuration.getIndexPath() );
+ assertEquals( "check localRepository", "system-repository", configuration.getLocalRepository() );
+ assertEquals( "check indexPath", ".index", configuration.getIndexPath() );
}
- /**
- * @noinspection JUnitTestMethodWithNoAssertions
- */
- public void testChangeListeners()
+ public void testStoreConfiguration()
throws Exception
{
- ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "save-file" );
+ File file = getTestFile( "target/test/test-file.xml" );
+ file.delete();
+ assertFalse( file.exists() );
- MockControl control = MockControl.createControl( ConfigurationChangeListener.class );
- ConfigurationChangeListener mock = (ConfigurationChangeListener) control.getMock();
- configurationStore.addChangeListener( mock );
+ ArchivaConfiguration archivaConfiguration =
+ (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save" );
Configuration configuration = new Configuration();
- mock.notifyOfConfigurationChange( configuration );
- control.replay();
+ configuration.setIndexPath( "index-path" );
- configurationStore.storeConfiguration( configuration );
+ archivaConfiguration.save( configuration );
- control.verify();
+ 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() );
}
}
diff --git a/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml b/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml
new file mode 100644
index 000000000..fcdc6e1b9
--- /dev/null
+++ b/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml
@@ -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>
diff --git a/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ConfigurationStoreTest.xml b/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ConfigurationStoreTest.xml
deleted file mode 100644
index 5b6491796..000000000
--- a/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ConfigurationStoreTest.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?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.ConfigurationStore</role>
- <role-hint>default</role-hint>
- <implementation>org.apache.maven.archiva.configuration.DefaultConfigurationStore</implementation>
- <configuration>
- <file>${basedir}/src/test/conf/repository-manager.xml</file>
- </configuration>
- </component>
- <component>
- <role>org.apache.maven.archiva.configuration.ConfigurationStore</role>
- <role-hint>corrupt-file</role-hint>
- <implementation>org.apache.maven.archiva.configuration.DefaultConfigurationStore</implementation>
- <configuration>
- <file>${basedir}/src/test/conf/corrupt.xml</file>
- </configuration>
- </component>
- <component>
- <role>org.apache.maven.archiva.configuration.ConfigurationStore</role>
- <role-hint>invalid-file</role-hint>
- <implementation>org.apache.maven.archiva.configuration.DefaultConfigurationStore</implementation>
- <configuration>
- <file>${basedir}/src/test/conf/nada.txt</file>
- </configuration>
- </component>
- <component>
- <role>org.apache.maven.archiva.configuration.ConfigurationStore</role>
- <role-hint>save-file</role-hint>
- <implementation>org.apache.maven.archiva.configuration.DefaultConfigurationStore</implementation>
- <configuration>
- <file>${basedir}/target/test/test-file.xml</file>
- </configuration>
- </component>
- </components>
-</component-set>
diff --git a/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java b/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java
index e519fa7a7..28381ee95 100644
--- a/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java
+++ b/archiva-core/src/main/java/org/apache/maven/archiva/repositories/ActiveManagedRepositories.java
@@ -27,32 +27,32 @@ import org.apache.maven.project.MavenProject;
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 );
}
diff --git a/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java b/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java
index b85584d12..14d4478a5 100644
--- a/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java
+++ b/archiva-core/src/main/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositories.java
@@ -24,13 +24,9 @@ import org.apache.maven.archiva.artifact.ManagedArtifact;
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.apache.maven.project.ProjectBuildingException;
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 @@ public class DefaultActiveManagedRepositories
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
/**
* @plexus.requirement
@@ -191,21 +189,8 @@ public class DefaultActiveManagedRepositories
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 @@ public class DefaultActiveManagedRepositories
this.configuration = config;
this.artifactCache.clear();
this.projectCache.clear();
-
+
repositories = repositoryFactory.createRepositories( this.configuration );
localRepository = repositoryFactory.createLocalRepository( this.configuration );
}
@@ -281,4 +266,9 @@ public class DefaultActiveManagedRepositories
return path;
}
+
+ public void notifyOfConfigurationChange( Registry registry )
+ {
+ configureSelf( archivaConfiguration.getConfiguration() );
+ }
}
diff --git a/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java b/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java
index 8a5b7682c..62a1cb355 100644
--- a/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java
+++ b/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/DefaultRepositoryTaskScheduler.java
@@ -19,12 +19,8 @@ package org.apache.maven.archiva.scheduler;
* 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.logging.AbstractLogEnabled;
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 @@ import java.text.ParseException;
*/
public class DefaultRepositoryTaskScheduler
extends AbstractLogEnabled
- implements RepositoryTaskScheduler, Startable, ConfigurationChangeListener
+ implements RepositoryTaskScheduler, Startable, RegistryListener
{
/**
* @plexus.requirement
@@ -75,7 +73,7 @@ public class DefaultRepositoryTaskScheduler
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
/**
* @plexus.requirement
@@ -89,16 +87,8 @@ public class DefaultRepositoryTaskScheduler
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 class DefaultRepositoryTaskScheduler
}
}
- 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 class DefaultRepositoryTaskScheduler
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() );
diff --git a/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java b/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java
index 6282e5c5e..25d390592 100644
--- a/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java
+++ b/archiva-core/src/main/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutor.java
@@ -19,9 +19,8 @@ package org.apache.maven.archiva.scheduler.executors;
* 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 @@ public class IndexerTaskExecutor
*
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
/**
* @plexus.requirement
@@ -128,15 +127,7 @@ public class IndexerTaskExecutor
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 class IndexerTaskExecutor
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 @@ public class IndexerTaskExecutor
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 @@ public class IndexerTaskExecutor
MetadataDiscoverer metadataDiscoverer = (MetadataDiscoverer) metadataDiscoverers
.get( layoutProperty );
- List metadata = metadataDiscoverer.discoverMetadata( repository, blacklistedPatterns,
- metadataFilter );
+ List metadata =
+ metadataDiscoverer.discoverMetadata( repository, blacklistedPatterns, metadataFilter );
if ( !metadata.isEmpty() )
{
diff --git a/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java b/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java
index 52a117d52..a535307e2 100644
--- a/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java
+++ b/archiva-core/src/test/java/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.java
@@ -25,7 +25,7 @@ import org.apache.maven.archiva.artifact.ManagedJavaArtifact;
import org.codehaus.plexus.PlexusTestCase;
/**
- * DefaultActiveManagedRepositoriesTest
+ * DefaultActiveManagedRepositoriesTest
*
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
* @version $Id$
@@ -40,11 +40,11 @@ public class DefaultActiveManagedRepositoriesTest
{
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 @@ public class DefaultActiveManagedRepositoriesTest
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 @@ public class DefaultActiveManagedRepositoriesTest
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 @@ public class DefaultActiveManagedRepositoriesTest
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 @@ public class DefaultActiveManagedRepositoriesTest
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 @@ public class DefaultActiveManagedRepositoriesTest
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 @@ public class DefaultActiveManagedRepositoriesTest
}
/**
- * Test a java find of a snapshot artifact.
+ * Test a java find of a snapshot artifact.
*/
public void testFindArtifactJavaSnapshot()
{
@@ -133,8 +133,8 @@ public class DefaultActiveManagedRepositoriesTest
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 @@ public class DefaultActiveManagedRepositoriesTest
}
/**
- * 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 @@ public class DefaultActiveManagedRepositoriesTest
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 @@ public class DefaultActiveManagedRepositoriesTest
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 @@ public class DefaultActiveManagedRepositoriesTest
assertEquals( pathPrefix + "/" + pathArtifactVersion + ".war", warArtifact.getPath() );
assertEquals( pathPrefix + "/" + pathArtifactVersion + "-javadoc.jar", warArtifact.getJavadocPath() );
assertNull( "should have no sources jar.", warArtifact.getSourcesPath() );
- }
+ }
}
diff --git a/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java b/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java
index 18cb1b01f..8729e0ccb 100644
--- a/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java
+++ b/archiva-core/src/test/java/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.java
@@ -20,9 +20,8 @@ package org.apache.maven.archiva.scheduler.executors;
*/
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 org.codehaus.plexus.taskqueue.execution.TaskExecutor;
import java.io.File;
/**
- * IndexerTaskExecutorTest
+ * IndexerTaskExecutorTest
*
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
* @version $Id$
@@ -48,8 +47,9 @@ public class IndexerTaskExecutorTest
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() )
diff --git a/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml b/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml
index d14f97fd6..2e59f080c 100644
--- a/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml
+++ b/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml
@@ -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>
diff --git a/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml b/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml
index d14f97fd6..2e59f080c 100644
--- a/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml
+++ b/archiva-core/src/test/resources/org/apache/maven/archiva/scheduler/executors/IndexerTaskExecutorTest.xml
@@ -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>
diff --git a/archiva-plexus-runtime/pom.xml b/archiva-plexus-runtime/pom.xml
index 63cd7f540..1c675dc62 100644
--- a/archiva-plexus-runtime/pom.xml
+++ b/archiva-plexus-runtime/pom.xml
@@ -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>
diff --git a/archiva-plexus-runtime/src/conf/plexus.xml b/archiva-plexus-runtime/src/conf/plexus.xml
index 9142f28fc..0a6e1be68 100644
--- a/archiva-plexus-runtime/src/conf/plexus.xml
+++ b/archiva-plexus-runtime/src/conf/plexus.xml
@@ -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
diff --git a/archiva-reports-standard/pom.xml b/archiva-reports-standard/pom.xml
index c51aa8352..2f0dd0644 100755
--- a/archiva-reports-standard/pom.xml
+++ b/archiva-reports-standard/pom.xml
@@ -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>
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java
index 2870fff4b..c62bf45d3 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractConfiguredAction.java
@@ -19,9 +19,8 @@ package org.apache.maven.archiva.web.action;
* 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 @@ public abstract class AbstractConfiguredAction
/**
* @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 );
}
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java
index d69b24797..b2af23c83 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java
@@ -20,9 +20,8 @@ package org.apache.maven.archiva.web.action;
*/
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 @@ public class BrowseAction
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
private List groups;
@@ -81,7 +80,7 @@ public class BrowseAction
private static long groupCacheTime;
public String browse()
- throws ConfigurationStoreException, RepositoryIndexException, IOException
+ throws RepositoryIndexException, IOException
{
RepositoryArtifactIndex index = getIndex();
@@ -99,7 +98,7 @@ public class BrowseAction
}
public String browseGroup()
- throws ConfigurationStoreException, RepositoryIndexException, IOException, RepositoryIndexSearchException
+ throws RepositoryIndexException, IOException, RepositoryIndexSearchException
{
RepositoryArtifactIndex index = getIndex();
@@ -146,7 +145,7 @@ public class BrowseAction
}
public String browseArtifact()
- throws ConfigurationStoreException, RepositoryIndexException, IOException, RepositoryIndexSearchException
+ throws RepositoryIndexException, IOException, RepositoryIndexSearchException
{
RepositoryArtifactIndex index = getIndex();
@@ -245,9 +244,9 @@ public class BrowseAction
}
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 );
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
index eaa0d501b..de64abe26 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
@@ -20,8 +20,8 @@ package org.apache.maven.archiva.web.action;
*/
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 @@ public class ReportsAction
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
/**
* @plexus.requirement
@@ -209,7 +209,7 @@ public class ReportsAction
public void prepare()
throws Exception
{
- configuration = configurationStore.getConfigurationFromStore();
+ configuration = archivaConfiguration.getConfiguration();
}
public Configuration getConfiguration()
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java
index ceed539a8..f356f6cfc 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java
@@ -23,9 +23,8 @@ import org.apache.lucene.index.Term;
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 @@ public class SearchAction
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
private static final String RESULTS = "results";
@@ -86,8 +85,7 @@ public class SearchAction
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 @@ public class SearchAction
}
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 );
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
index c67953fa2..f8f8ca318 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
@@ -22,9 +22,8 @@ package org.apache.maven.archiva.web.action;
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 @@ public class ShowArtifactAction
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
/**
* @plexus.requirement
@@ -134,8 +133,8 @@ public class ShowArtifactAction
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 class ShowArtifactAction
}
public String dependencies()
- throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException
+ throws IOException, XmlPullParserException, ProjectBuildingException
{
if ( !checkParameters() )
{
@@ -168,7 +167,7 @@ public class ShowArtifactAction
}
public String mailingLists()
- throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException
+ throws IOException, XmlPullParserException, ProjectBuildingException
{
if ( !checkParameters() )
{
@@ -178,15 +177,15 @@ public class ShowArtifactAction
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 class ShowArtifactAction
}
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 @@ public class ShowArtifactAction
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 @@ public class ShowArtifactAction
}
}
- 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 @@ public class ShowArtifactAction
}
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 @@ public class ShowArtifactAction
return false;
}
if ( getQualifier() != null ? !getQualifier().equals( that.getQualifier() )
- : that.getQualifier() != null )
+ : that.getQualifier() != null )
{
return false;
}
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java
index 9e78eb976..2b3c71124 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractConfigureRepositoryAction.java
@@ -22,14 +22,13 @@ package org.apache.maven.archiva.web.action.admin;
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 @@ public abstract class AbstractConfigureRepositoryAction
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
/**
* @plexus.requirement role-hint="archiva"
@@ -74,8 +73,7 @@ public abstract class AbstractConfigureRepositoryAction
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 abstract class AbstractConfigureRepositoryAction
}
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 @@ public abstract class AbstractConfigureRepositoryAction
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 @@ public abstract class AbstractConfigureRepositoryAction
protected abstract AbstractRepositoryConfiguration createRepository();
public void prepare()
- throws ConfigurationStoreException
{
- configuration = configurationStore.getConfigurationFromStore();
+ configuration = archivaConfiguration.getConfiguration();
if ( repository == null )
{
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java
index 067704a64..b5f792092 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java
@@ -20,13 +20,12 @@ package org.apache.maven.archiva.web.action.admin;
*/
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 @@ public abstract class AbstractDeleteRepositoryAction
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
/**
* The repository ID to lookup when editing a repository.
@@ -65,13 +64,13 @@ public abstract class AbstractDeleteRepositoryAction
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 @@ public abstract class AbstractDeleteRepositoryAction
removeRepository( configuration, existingRepository );
- configurationStore.storeConfiguration( configuration );
+ archivaConfiguration.save( configuration );
if ( "delete-contents".equals( operation ) )
{
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java
index e4806ed6f..34e3a981a 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAction.java
@@ -22,15 +22,14 @@ package org.apache.maven.archiva.web.action.admin;
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 @@ public class ConfigureAction
/**
* @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 class ConfigureAction
}
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 @@ public class ConfigureAction
// 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 class ConfigureAction
}
public void prepare()
- throws ConfigurationStoreException
{
- configuration = configurationStore.getConfigurationFromStore();
+ configuration = archivaConfiguration.getConfiguration();
}
public String getLastIndexingTime()
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java
index 3d7418443..7d9473593 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureAppearanceAction.java
@@ -80,8 +80,7 @@ public class ConfigureAppearanceAction
}
public void prepare()
- throws ConfigurationStoreException, ProjectBuildingException, ArtifactMetadataRetrievalException,
- org.apache.maven.archiva.configuration.ConfigurationStoreException
+ throws ConfigurationStoreException, ProjectBuildingException, ArtifactMetadataRetrievalException
{
configuration = appConfigurationStore.getConfigurationFromStore();
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java
index 4d10f269a..563b2dc23 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/EditPomAction.java
@@ -70,7 +70,7 @@ public class EditPomAction
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 class EditPomAction
}
public void prepare()
- throws ConfigurationStoreException, ProjectBuildingException, ArtifactMetadataRetrievalException,
- org.apache.maven.archiva.configuration.ConfigurationStoreException
+ throws ConfigurationStoreException, ProjectBuildingException, ArtifactMetadataRetrievalException
{
configuration = appConfigurationStore.getConfigurationFromStore();
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java
index a163db7a5..b9794d97d 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/check/RoleExistanceEnvironmentCheck.java
@@ -19,8 +19,8 @@ package org.apache.maven.archiva.web.check;
* 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 @@ public class RoleExistanceEnvironmentCheck
/**
* @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 @@ public class RoleExistanceEnvironmentCheck
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(); )
{
@@ -79,11 +80,6 @@ public class RoleExistanceEnvironmentCheck
}
}
}
- catch ( ConfigurationStoreException cse )
- {
- list.add( this.getClass().getName() + " error loading configuration store: " + cse.getMessage() );
- getLogger().info( "error loading configuration store", cse );
- }
catch ( RoleProfileException rpe )
{
list.add( this.getClass().getName() + "error initializing roles: " + rpe.getMessage() );
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java
index 3d206c44d..a406c10b6 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java
@@ -21,8 +21,8 @@ package org.apache.maven.archiva.web.interceptor;
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 @@ public class ConfigurationInterceptor
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
/**
* @param actionInvocation
@@ -49,7 +49,7 @@ public class ConfigurationInterceptor
public String intercept( ActionInvocation actionInvocation )
throws Exception
{
- Configuration configuration = configurationStore.getConfigurationFromStore();
+ Configuration configuration = archivaConfiguration.getConfiguration();
if ( !configuration.isValid() )
{
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java
index 9fda5da30..77e45ebfd 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java
@@ -20,9 +20,8 @@ package org.apache.maven.archiva.web.repository;
*/
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.configuration.ProxiedRepositoryConfiguration;
import org.apache.maven.archiva.configuration.Proxy;
@@ -38,25 +37,23 @@ import org.codehaus.plexus.webdav.DavServerException;
import org.codehaus.plexus.webdav.servlet.DavServerRequest;
import org.codehaus.plexus.webdav.util.WebdavMethodUtil;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
-
/**
- * ProxiedDavServer
+ * ProxiedDavServer
*
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
* @version $Id$
- *
- * @plexus.component role="org.codehaus.plexus.webdav.DavServerComponent"
- * role-hint="proxied"
- * instantiation-strategy="per-lookup"
+ * @plexus.component role="org.codehaus.plexus.webdav.DavServerComponent"
+ * role-hint="proxied"
+ * instantiation-strategy="per-lookup"
*/
public class ProxiedDavServer
extends AbstractDavServerComponent
@@ -69,7 +66,7 @@ public class ProxiedDavServer
/**
* @plexus.requirement
*/
- private ConfigurationStore configurationStore;
+ private ArchivaConfiguration archivaConfiguration;
/**
* @plexus.requirement role="org.apache.maven.archiva.proxy.ProxyRequestHandler"
@@ -117,30 +114,23 @@ public class ProxiedDavServer
proxiedRepositories = new ArrayList();
- try
- {
- Configuration config = configurationStore.getConfigurationFromStore();
+ Configuration config = archivaConfiguration.getConfiguration();
- wagonProxy = createWagonProxy( config.getProxy() );
+ wagonProxy = createWagonProxy( config.getProxy() );
- repositoryConfiguration = config.getRepositoryByUrlName( getPrefix() );
+ repositoryConfiguration = config.getRepositoryByUrlName( getPrefix() );
- managedRepository = repositoryFactory.createRepository( repositoryConfiguration );
+ managedRepository = repositoryFactory.createRepository( repositoryConfiguration );
- for ( Iterator i = config.getProxiedRepositories().iterator(); i.hasNext(); )
- {
- ProxiedRepositoryConfiguration proxiedRepoConfig = (ProxiedRepositoryConfiguration) i.next();
+ for ( Iterator i = config.getProxiedRepositories().iterator(); i.hasNext(); )
+ {
+ ProxiedRepositoryConfiguration proxiedRepoConfig = (ProxiedRepositoryConfiguration) i.next();
- if ( proxiedRepoConfig.getManagedRepository().equals( repositoryConfiguration.getId() ) )
- {
- proxiedRepositories.add( repositoryFactory.createProxiedRepository( proxiedRepoConfig ) );
- }
+ if ( proxiedRepoConfig.getManagedRepository().equals( repositoryConfiguration.getId() ) )
+ {
+ proxiedRepositories.add( repositoryFactory.createProxiedRepository( proxiedRepoConfig ) );
}
}
- catch ( ConfigurationStoreException e )
- {
- throw new DavServerException( "Unable to obtain configuration.", e );
- }
}
public void process( DavServerRequest request, HttpServletResponse response )
diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java
index 3f3010f91..85ab6a2ce 100644
--- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java
+++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java
@@ -19,14 +19,12 @@ package org.apache.maven.archiva.web.repository;
* 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.configuration.RepositoryConfiguration;
import org.apache.maven.archiva.security.ArchivaRoleConstants;
+import org.codehaus.plexus.registry.Registry;
+import org.codehaus.plexus.registry.RegistryListener;
import org.codehaus.plexus.security.authentication.AuthenticationException;
import org.codehaus.plexus.security.authentication.AuthenticationResult;
import org.codehaus.plexus.security.authorization.AuthorizationException;
@@ -42,25 +40,24 @@ import org.codehaus.plexus.webdav.servlet.DavServerRequest;
import org.codehaus.plexus.webdav.servlet.multiplexed.MultiplexedWebDavServlet;
import org.codehaus.plexus.webdav.util.WebdavMethodUtil;
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
/**
- * RepositoryServlet
+ * RepositoryServlet
*
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
* @version $Id$
*/
public class RepositoryServlet
extends MultiplexedWebDavServlet
- implements ConfigurationChangeListener
+ implements RegistryListener
{
/**
* @plexus.requirement
@@ -77,49 +74,42 @@ public class RepositoryServlet
*/
private AuditLog audit;
- private Configuration config;
+ private Configuration configuration;
+
+ private ArchivaConfiguration archivaConfiguration;
public void initComponents()
throws ServletException
{
super.initComponents();
- ConfigurationStore configurationStore;
-
- configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE );
securitySystem = (SecuritySystem) lookup( SecuritySystem.ROLE );
httpAuth = (HttpAuthenticator) lookup( HttpAuthenticator.ROLE, "basic" );
audit = (AuditLog) lookup( AuditLog.ROLE );
- try
- {
- config = configurationStore.getConfigurationFromStore();
- configurationStore.addChangeListener( this );
- }
- catch ( ConfigurationStoreException e )
- {
- throw new ServletException( "Unable to obtain configuration.", e );
- }
+ archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName() );
+ configuration = archivaConfiguration.getConfiguration();
+ archivaConfiguration.addChangeListener( this );
}
public void initServers( ServletConfig servletConfig )
throws DavServerException
{
- List repositories = config.getRepositories();
+ List repositories = configuration.getRepositories();
Iterator itrepos = repositories.iterator();
while ( itrepos.hasNext() )
{
RepositoryConfiguration repoConfig = (RepositoryConfiguration) itrepos.next();
- DavServerComponent server = createServer( repoConfig.getUrlName(), new File( repoConfig.getDirectory() ),
- servletConfig );
+ DavServerComponent server =
+ createServer( repoConfig.getUrlName(), new File( repoConfig.getDirectory() ), servletConfig );
server.addListener( audit );
}
}
public RepositoryConfiguration getRepositoryConfiguration( DavServerRequest request )
{
- return config.getRepositoryByUrlName( request.getPrefix() );
+ return configuration.getRepositoryByUrlName( request.getPrefix() );
}
public String getRepositoryName( DavServerRequest request )
@@ -189,16 +179,16 @@ public class RepositoryServlet
permission = ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD;
}
- AuthorizationResult authzResult = securitySystem.authorize( securitySession, permission,
- getRepositoryConfiguration( davRequest )
- .getId() );
+ AuthorizationResult authzResult =
+ securitySystem.authorize( securitySession, permission, getRepositoryConfiguration( davRequest )
+ .getId() );
if ( !authzResult.isAuthorized() )
{
if ( authzResult.getException() != null )
{
- log( "Authorization Denied [ip=" + request.getRemoteAddr() + ",isWriteRequest=" + isWriteRequest
- + ",permission=" + permission + "] : " + authzResult.getException().getMessage() );
+ log( "Authorization Denied [ip=" + request.getRemoteAddr() + ",isWriteRequest=" + isWriteRequest +
+ ",permission=" + permission + "] : " + authzResult.getException().getMessage() );
}
// Issue HTTP Challenge.
@@ -214,11 +204,10 @@ public class RepositoryServlet
return true;
}
-
- public void notifyOfConfigurationChange( Configuration newConfiguration )
- throws InvalidConfigurationException, ConfigurationChangeException
+
+ public void notifyOfConfigurationChange( Registry registry )
{
- config = newConfiguration;
+ configuration = archivaConfiguration.getConfiguration();
getDavManager().removeAllServers();
@@ -228,7 +217,7 @@ public class RepositoryServlet
}
catch ( DavServerException e )
{
- throw new ConfigurationChangeException( "Unable to process configuration change.", e );
+ log( "Error restarting WebDAV server after configuration change - service disabled: " + e.getMessage(), e );
}
}
}
diff --git a/archiva-webapp/src/main/resources/META-INF/plexus/application.xml b/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
index 2c50e69b1..811489d43 100644
--- a/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
+++ b/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
@@ -22,14 +22,27 @@
<components>
<component>
- <role>org.codehaus.plexus.security.configuration.UserConfiguration</role>
- <implementation>org.codehaus.plexus.security.configuration.UserConfiguration</implementation>
+ <role>org.codehaus.plexus.registry.Registry</role>
+ <implementation>org.codehaus.plexus.registry.CommonsConfigurationRegistry</implementation>
+ <role-hint>commons-configuration</role-hint>
<configuration>
- <configs>
- <config>${user.home}/.m2/security.properties</config>
- <config>${user.home}/.m2/archiva.properties</config>
- <config>/org/apache/maven/archiva/security.properties</config>
- </configs>
+ <properties>
+ <system/>
+ <jndi prefix="java:comp/env" config-optional="true"/>
+ <xml fileName="${user.home}/.m2/archiva.xml" config-optional="true" config-name="org.apache.maven.archiva"
+ config-at="org.apache.maven.archiva" config-forceCreate="true"/>
+ <xml fileName="${user.home}/.m2/shared.xml" config-optional="true"/>
+ <properties fileName="${user.home}/.m2/security.properties" config-optional="true"
+ config-at="org.codehaus.plexus.security"/>
+ <properties fileName="${user.home}/.m2/archiva.properties" config-optional="true"
+ config-at="org.codehaus.plexus.security"/>
+ <xml fileName="${appserver.base}/conf/archiva.xml" config-optional="true"
+ config-at="org.apache.maven.archiva"/>
+ <xml fileName="${appserver.base}/conf/common.xml" config-optional="true"/>
+ <xml fileName="${appserver.home}/conf/archiva.xml" config-optional="true"
+ config-at="org.apache.maven.archiva"/>
+ <xml fileName="${appserver.home}/conf/common.xml" config-optional="true"/>
+ </properties>
</configuration>
</component>
@@ -40,7 +53,7 @@
<jndiSessionName>java:comp/env/mail/Session</jndiSessionName>
</configuration>
</component>
-
+
<component>
<role>org.codehaus.plexus.webdav.DavServerManager</role>
<role-hint>default</role-hint>