Return-Path: Delivered-To: apmail-maven-archiva-commits-archive@locus.apache.org Received: (qmail 6909 invoked from network); 8 Mar 2007 09:47:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 8 Mar 2007 09:47:27 -0000 Received: (qmail 36076 invoked by uid 500); 8 Mar 2007 09:47:36 -0000 Delivered-To: apmail-maven-archiva-commits-archive@maven.apache.org Received: (qmail 36029 invoked by uid 500); 8 Mar 2007 09:47:35 -0000 Mailing-List: contact archiva-commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: archiva-dev@maven.apache.org Delivered-To: mailing list archiva-commits@maven.apache.org Received: (qmail 36013 invoked by uid 99); 8 Mar 2007 09:47:35 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Mar 2007 01:47:35 -0800 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Mar 2007 01:47:26 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id D396A1A9838; Thu, 8 Mar 2007 01:47:05 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r515991 - in /maven/archiva/trunk: archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ archiva-configuration/src/test/resources/org/apache/m... Date: Thu, 08 Mar 2007 09:47:05 -0000 To: archiva-commits@maven.apache.org From: brett@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070308094705.D396A1A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: brett Date: Thu Mar 8 01:47:04 2007 New Revision: 515991 URL: http://svn.apache.org/viewvc?view=rev&rev=515991 Log: [MRM-288] line up configuration so that it always works, regardless of the existence of files. Add tests, and document the behaviour. Added: maven/archiva/trunk/archiva-site/src/site/apt/guides/configuration.apt maven/archiva/trunk/archiva-webapp/src/appserver-base/ maven/archiva/trunk/archiva-webapp/src/appserver-base/conf/ maven/archiva/trunk/archiva-webapp/src/appserver-base/conf/archiva.xml (with props) Modified: maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml maven/archiva/trunk/archiva-core/pom.xml maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml maven/archiva/trunk/archiva-site/src/site/apt/guides/security-configuration.apt maven/archiva/trunk/archiva-site/src/site/site.xml maven/archiva/trunk/archiva-webapp/pom.xml maven/archiva/trunk/archiva-webapp/src/main/resources/META-INF/plexus/application.xml Modified: maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java?view=diff&rev=515991&r1=515990&r2=515991 ============================================================================== --- maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java (original) +++ maven/archiva/trunk/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java Thu Mar 8 01:47:04 2007 @@ -26,6 +26,7 @@ import org.codehaus.plexus.registry.Registry; import org.codehaus.plexus.registry.RegistryException; import org.codehaus.plexus.registry.RegistryListener; +import org.codehaus.plexus.util.StringUtils; import java.util.Iterator; @@ -74,7 +75,11 @@ public void save( Configuration configuration ) throws RegistryException { - Registry section = registry.getSection( KEY ); + Registry section = registry.getSection( KEY + ".user" ); + if ( section == null ) + { + section = registry.getSection( KEY + ".base" ); + } new ConfigurationRegistryWriter().write( configuration, section ); section.save(); @@ -83,8 +88,16 @@ public void addChangeListener( RegistryListener listener ) { - Registry section = registry.getSection( KEY ); - section.addChangeListener( listener ); + Registry section = registry.getSection( KEY + ".user" ); + if ( section != null ) + { + section.addChangeListener( listener ); + } + section = registry.getSection( KEY + ".base" ); + if ( section != null ) + { + section.addChangeListener( listener ); + } } public void initialize() @@ -105,8 +118,10 @@ private String removeExpressions( String directory ) { - String value = org.codehaus.plexus.util.StringUtils.replace( directory, "${appserver.base}", registry.getString( "appserver.base", "${appserver.base}" ) ); - value = org.codehaus.plexus.util.StringUtils.replace( value, "${appserver.home}", registry.getString( "appserver.home", "${appserver.home}" ) ); + String value = StringUtils.replace( directory, "${appserver.base}", + registry.getString( "appserver.base", "${appserver.base}" ) ); + value = StringUtils.replace( value, "${appserver.home}", + registry.getString( "appserver.home", "${appserver.home}" ) ); return value; } Modified: maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java?view=diff&rev=515991&r1=515990&r2=515991 ============================================================================== --- maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java (original) +++ maven/archiva/trunk/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java Thu Mar 8 01:47:04 2007 @@ -142,6 +142,68 @@ assertEquals( "check value", "index-path", configuration.getIndexPath() ); } + public void testStoreConfigurationUser() + throws Exception + { + File baseFile = getTestFile( "target/test/test-file.xml" ); + baseFile.delete(); + assertFalse( baseFile.exists() ); + + File userFile = getTestFile( "target/test/test-file-user.xml" ); + userFile.delete(); + assertFalse( userFile.exists() ); + + // TODO: remove with commons-configuration 1.4 + userFile.getParentFile().mkdirs(); + org.codehaus.plexus.util.FileUtils.fileWrite( userFile.getAbsolutePath(), "" ); + + ArchivaConfiguration archivaConfiguration = + (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save-user" ); + + Configuration configuration = new Configuration(); + configuration.setIndexPath( "index-path" ); + + archivaConfiguration.save( configuration ); + + assertTrue( "Check file exists", userFile.exists() ); + assertFalse( "Check file not created", baseFile.exists() ); + + // check it + configuration = archivaConfiguration.getConfiguration(); + assertEquals( "check value", "index-path", configuration.getIndexPath() ); + } + + public void testStoreConfigurationFallback() + throws Exception + { + File baseFile = getTestFile( "target/test/test-file.xml" ); + baseFile.delete(); + assertFalse( baseFile.exists() ); + + File userFile = getTestFile( "target/test/test-file-user.xml" ); + userFile.delete(); + assertFalse( userFile.exists() ); + + // TODO: remove with commons-configuration 1.4 + baseFile.getParentFile().mkdirs(); + org.codehaus.plexus.util.FileUtils.fileWrite( baseFile.getAbsolutePath(), "" ); + + ArchivaConfiguration archivaConfiguration = + (ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-save-user" ); + + Configuration configuration = new Configuration(); + configuration.setIndexPath( "index-path" ); + + archivaConfiguration.save( configuration ); + + assertTrue( "Check file exists", baseFile.exists() ); + assertFalse( "Check file not created", userFile.exists() ); + + // check it + configuration = archivaConfiguration.getConfiguration(); + assertEquals( "check value", "index-path", configuration.getIndexPath() ); + } + public void testRemoveProxiedRepositoryAndStoreConfiguration() throws Exception { Modified: maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml?view=diff&rev=515991&r1=515990&r2=515991 ============================================================================== --- maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml (original) +++ maven/archiva/trunk/archiva-configuration/src/test/resources/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.xml Thu Mar 8 01:47:04 2007 @@ -81,7 +81,32 @@ + config-name="org.apache.maven.archiva.base" config-at="org.apache.maven.archiva"/> + + + + + + org.apache.maven.archiva.configuration.ArchivaConfiguration + test-save-user + org.apache.maven.archiva.configuration.DefaultArchivaConfiguration + + + org.codehaus.plexus.registry.Registry + save-user + + + + + org.codehaus.plexus.registry.Registry + save-user + org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry + + + + @@ -104,7 +129,7 @@ + config-name="org.apache.maven.archiva.base" config-at="org.apache.maven.archiva"/> @@ -127,7 +152,7 @@ + config-name="org.apache.maven.archiva.base" config-at="org.apache.maven.archiva"/> @@ -149,7 +174,7 @@ + config-name="org.apache.maven.archiva.base" config-at="org.apache.maven.archiva"/> Modified: maven/archiva/trunk/archiva-core/pom.xml URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/pom.xml?view=diff&rev=515991&r1=515990&r2=515991 ============================================================================== --- maven/archiva/trunk/archiva-core/pom.xml (original) +++ maven/archiva/trunk/archiva-core/pom.xml Thu Mar 8 01:47:04 2007 @@ -71,7 +71,7 @@ org.codehaus.plexus.registry plexus-registry-commons - 1.0-alpha-1 + 1.0-alpha-2-SNAPSHOT test Modified: maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml?view=diff&rev=515991&r1=515990&r2=515991 ============================================================================== --- maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml (original) +++ maven/archiva/trunk/archiva-core/src/test/resources/org/apache/maven/archiva/repositories/DefaultActiveManagedRepositoriesTest.xml Thu Mar 8 01:47:04 2007 @@ -27,7 +27,7 @@ + config-name="org.apache.maven.archiva.base" config-at="org.apache.maven.archiva"/> Added: maven/archiva/trunk/archiva-site/src/site/apt/guides/configuration.apt URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-site/src/site/apt/guides/configuration.apt?view=auto&rev=515991 ============================================================================== --- maven/archiva/trunk/archiva-site/src/site/apt/guides/configuration.apt (added) +++ maven/archiva/trunk/archiva-site/src/site/apt/guides/configuration.apt Thu Mar 8 01:47:04 2007 @@ -0,0 +1,63 @@ + ------ + Archiva Configuration + ------ + The Maven Team + ------ + 8 March 2007 + ------ + +~~ 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. + +~~ NOTE: For help with the syntax of this file, see: +~~ http://maven.apache.org/guides/mini/guide-apt-format.html + +Archiva Configuration + +* Web Configuration + + Archiva can be fully configured from the web interface (with the exception of the {{{security-configuration.html} security properties, presently}}). + + ... + +~~TODO: more details needed, but I wanted to get this started + +* File system configuration + + While Archiva can be fully configred by the web interface, the configuration will be saved to the file system and can be edited from there if needed. + + Archiva's configuration is loaded from the following files, in order of most precedent: + + * <<<~/.m2/archiva.xml>>> + + * <<<$ARCHIVA_BASE/conf/archiva.xml>>> + + * <<<$ARCHIVA_HOME/conf/archiva.xml>>> + + When Archiva saves it's configuration, all configuration is stored to a single file. The file chosen is by the following rules: + + * If <<<~/.m2/archiva.xml>>> exists, it is saved there + + * Otherwise, it is saved to <<<$ARCHIVA_BASE/conf/archiva.xml>>>, regardless of whether it previously existed. + + The configuration will never be saved in <<<$ARCHIVA_HOME>>>. + + Note that the configuration can be edited, but only when Archiva is not running as it will not reload a changed configuration file, and will save over it + if something is changed in the web interface. + +~~TODO: format? + Modified: maven/archiva/trunk/archiva-site/src/site/apt/guides/security-configuration.apt URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-site/src/site/apt/guides/security-configuration.apt?view=diff&rev=515991&r1=515990&r2=515991 ============================================================================== --- maven/archiva/trunk/archiva-site/src/site/apt/guides/security-configuration.apt (original) +++ maven/archiva/trunk/archiva-site/src/site/apt/guides/security-configuration.apt Thu Mar 8 01:47:04 2007 @@ -39,8 +39,6 @@ * <<<$ARCHIVA_HOME/conf/security.properties>>> - * <<<$ARCHIVA_HOME/apps/archiva/conf/security.properties>>> - [] (In the above list, <<<~>>> is the home directory of the user who is running Modified: maven/archiva/trunk/archiva-site/src/site/site.xml URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-site/src/site/site.xml?view=diff&rev=515991&r1=515990&r2=515991 ============================================================================== --- maven/archiva/trunk/archiva-site/src/site/site.xml (original) +++ maven/archiva/trunk/archiva-site/src/site/site.xml Thu Mar 8 01:47:04 2007 @@ -30,6 +30,7 @@ + Modified: maven/archiva/trunk/archiva-webapp/pom.xml URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/pom.xml?view=diff&rev=515991&r1=515990&r2=515991 ============================================================================== --- maven/archiva/trunk/archiva-webapp/pom.xml (original) +++ maven/archiva/trunk/archiva-webapp/pom.xml Thu Mar 8 01:47:04 2007 @@ -340,6 +340,24 @@ + + maven-antrun-plugin + + + generate-resources + + run + + + + + + + + + + + Added: maven/archiva/trunk/archiva-webapp/src/appserver-base/conf/archiva.xml URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/appserver-base/conf/archiva.xml?view=auto&rev=515991 ============================================================================== --- maven/archiva/trunk/archiva-webapp/src/appserver-base/conf/archiva.xml (added) +++ maven/archiva/trunk/archiva-webapp/src/appserver-base/conf/archiva.xml Thu Mar 8 01:47:04 2007 @@ -0,0 +1 @@ + Propchange: maven/archiva/trunk/archiva-webapp/src/appserver-base/conf/archiva.xml ------------------------------------------------------------------------------ svn:eol-style = native Modified: maven/archiva/trunk/archiva-webapp/src/main/resources/META-INF/plexus/application.xml URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/resources/META-INF/plexus/application.xml?view=diff&rev=515991&r1=515990&r2=515991 ============================================================================== --- maven/archiva/trunk/archiva-webapp/src/main/resources/META-INF/plexus/application.xml (original) +++ maven/archiva/trunk/archiva-webapp/src/main/resources/META-INF/plexus/application.xml Thu Mar 8 01:47:04 2007 @@ -29,8 +29,8 @@ - + @@ -38,7 +38,7 @@ config-at="org.codehaus.plexus.security"/> -