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:[EMAIL PROTECTED]">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:[EMAIL PROTECTED]">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>
