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

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

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/ProxiedDavServer.java Fri Feb  9 07:39:41 2007
@@ -20,9 +20,8 @@
  */
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.ConfigurationStore;
-import org.apache.maven.archiva.configuration.ConfigurationStoreException;
 import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
 import org.apache.maven.archiva.configuration.ProxiedRepositoryConfiguration;
 import org.apache.maven.archiva.configuration.Proxy;
@@ -38,25 +37,23 @@
 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 @@
     /**
      * @plexus.requirement
      */
-    private ConfigurationStore configurationStore;
+    private ArchivaConfiguration archivaConfiguration;
 
     /**
      * @plexus.requirement role="org.apache.maven.archiva.proxy.ProxyRequestHandler"
@@ -117,29 +114,22 @@
 
         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 );
         }
     }
 

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java?view=diff&rev=505329&r1=505328&r2=505329
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/repository/RepositoryServlet.java Fri Feb  9 07:39:41 2007
@@ -19,14 +19,12 @@
  * 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.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 @@
      */
     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 @@
                 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 @@
 
         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 @@
         }
         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 );
         }
     }
 }

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=505329&r1=505328&r2=505329
==============================================================================
--- 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 Fri Feb  9 07:39:41 2007
@@ -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>