Author: olamy
Date: Wed Sep  7 12:18:55 2011
New Revision: 1166148

URL: http://svn.apache.org/viewvc?rev=1166148&view=rev
Log:
start using new repo admin module in webdav : need some other refactoring to 
remove it completely

Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletTest.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedRepositoryServlet.java
    archiva/trunk/pom.xml

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml?rev=1166148&r1=1166147&r2=1166148&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml Wed Sep  7 
12:18:55 2011
@@ -41,14 +41,18 @@
     </dependency>
     <dependency>
       <groupId>org.apache.archiva</groupId>
+      <artifactId>archiva-repository-scanner</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.archiva</groupId>
       <artifactId>archiva-configuration</artifactId>
-      <!-- TODO uncomment when repository admin will be finished
+      <!-- should be runtime but currently not possible due 
ConfigurationListener
       <scope>runtime</scope>
       -->
     </dependency>
     <dependency>
       <groupId>org.apache.archiva</groupId>
-      <artifactId>archiva-repository-scanner</artifactId>
+      <artifactId>archiva-repository-admin</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.archiva</groupId>
@@ -166,6 +170,8 @@
           <argLine>-Xmx512m -Xms512m -client</argLine>
           <systemPropertyVariables>
             <appserver.base>${basedir}/target/appserver-base</appserver.base>
+            <plexus.home>${project.build.outputDirectory}</plexus.home>
+            <java.io.tmpdir>${project.build.outputDirectory}</java.io.tmpdir>
           </systemPropertyVariables>
           <forkMode>${webdav.forkMode}</forkMode>
         </configuration>

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java?rev=1166148&r1=1166147&r2=1166148&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/RepositoryServlet.java
 Wed Sep  7 12:18:55 2011
@@ -19,6 +19,10 @@ package org.apache.maven.archiva.webdav;
  * under the License.
  */
 
+import org.apache.archiva.admin.repository.RepositoryAdminException;
+import org.apache.archiva.admin.repository.managed.ManagedRepository;
+import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin;
+import org.apache.archiva.security.ServletAuthenticator;
 import org.apache.jackrabbit.webdav.DavException;
 import org.apache.jackrabbit.webdav.DavLocatorFactory;
 import org.apache.jackrabbit.webdav.DavMethods;
@@ -34,8 +38,6 @@ import org.apache.jackrabbit.webdav.serv
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ConfigurationEvent;
 import org.apache.maven.archiva.configuration.ConfigurationListener;
-import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.archiva.security.ServletAuthenticator;
 import 
org.codehaus.redback.integration.filter.authentication.HttpAuthenticator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,7 +64,9 @@ public class RepositoryServlet
 
     private ArchivaConfiguration configuration;
 
-    private Map<String, ManagedRepositoryConfiguration> repositoryMap;
+    private ManagedRepositoryAdmin managedRepositoryAdmin;
+
+    private Map<String, ManagedRepository> repositoryMap;
 
     private DavLocatorFactory locatorFactory;
 
@@ -76,7 +80,15 @@ public class RepositoryServlet
         throws ServletException
     {
         super.init( servletConfig );
-        initServers( servletConfig );
+        try
+        {
+            initServers( servletConfig );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            log.error( e.getMessage(), e );
+            throw new ServletException( e.getMessage(), e );
+        }
     }
 
     /**
@@ -156,6 +168,7 @@ public class RepositoryServlet
     }
 
     public synchronized void initServers( ServletConfig servletConfig )
+        throws RepositoryAdminException
     {
         WebApplicationContext wac =
             WebApplicationContextUtils.getRequiredWebApplicationContext( 
servletConfig.getServletContext() );
@@ -163,9 +176,11 @@ public class RepositoryServlet
         configuration = wac.getBean( "archivaConfiguration#default", 
ArchivaConfiguration.class );
         configuration.addListener( this );
 
-        repositoryMap = 
configuration.getConfiguration().getManagedRepositoriesAsMap();
+        managedRepositoryAdmin = wac.getBean( ManagedRepositoryAdmin.class );
+
+        repositoryMap = managedRepositoryAdmin.getManagedRepositoriesAsMap();
 
-        for ( ManagedRepositoryConfiguration repo : repositoryMap.values() )
+        for ( ManagedRepository repo : repositoryMap.values() )
         {
             File repoDir = new File( repo.getLocation() );
 
@@ -180,7 +195,7 @@ public class RepositoryServlet
             }
         }
 
-        resourceFactory = wac.getBean("davResourceFactory#archiva",  
DavResourceFactory.class );
+        resourceFactory = wac.getBean( "davResourceFactory#archiva", 
DavResourceFactory.class );
         locatorFactory = new ArchivaDavLocatorFactory();
 
         ServletAuthenticator servletAuth = wac.getBean( 
ServletAuthenticator.class );
@@ -195,16 +210,25 @@ public class RepositoryServlet
     {
         if ( event.getType() == ConfigurationEvent.SAVED )
         {
-            initRepositories();
+            try
+            {
+                initRepositories();
+            }
+            catch ( RepositoryAdminException e )
+            {
+                log.error( e.getMessage(), e );
+                throw new RuntimeException( e.getMessage(), e );
+            }
         }
     }
 
     private void initRepositories()
+        throws RepositoryAdminException
     {
         synchronized ( repositoryMap )
         {
             repositoryMap.clear();
-            repositoryMap.putAll( 
configuration.getConfiguration().getManagedRepositoriesAsMap() );
+            repositoryMap.putAll( 
managedRepositoryAdmin.getManagedRepositoriesAsMap() );
         }
 
         synchronized ( reloadLock )
@@ -213,11 +237,12 @@ public class RepositoryServlet
         }
     }
 
-    public synchronized ManagedRepositoryConfiguration getRepository( String 
prefix )
+    public synchronized ManagedRepository getRepository( String prefix )
+        throws RepositoryAdminException
     {
         if ( repositoryMap.isEmpty() )
         {
-            repositoryMap.putAll( 
configuration.getConfiguration().getManagedRepositoriesAsMap() );
+            repositoryMap.putAll( 
managedRepositoryAdmin.getManagedRepositoriesAsMap() );
         }
         return repositoryMap.get( prefix );
     }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java?rev=1166148&r1=1166147&r2=1166148&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/AbstractRepositoryServletTestCase.java
 Wed Sep  7 12:18:55 2011
@@ -26,6 +26,7 @@ import com.meterware.servletunit.Servlet
 import junit.framework.Assert;
 import junit.framework.TestCase;
 import net.sf.ehcache.CacheManager;
+import org.apache.archiva.admin.repository.managed.ManagedRepository;
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
@@ -173,8 +174,9 @@ public abstract class AbstractRepository
     }
 
     protected void assertRepositoryValid( RepositoryServlet servlet, String 
repoId )
+        throws Exception
     {
-        ManagedRepositoryConfiguration repository = servlet.getRepository( 
repoId );
+        ManagedRepository repository = servlet.getRepository( repoId );
         assertNotNull( "Archiva Managed Repository id:<" + repoId + "> should 
exist.", repository );
         File repoRoot = new File( repository.getLocation() );
         assertTrue( "Archiva Managed Repository id:<" + repoId + "> should 
have a valid location on disk.",

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletTest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletTest.java?rev=1166148&r1=1166147&r2=1166148&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletTest.java
 Wed Sep  7 12:18:55 2011
@@ -19,6 +19,7 @@ package org.apache.maven.archiva.webdav;
  * under the License.
  */
 
+import org.apache.archiva.admin.repository.managed.ManagedRepository;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
@@ -67,7 +68,7 @@ public class RepositoryServletTest
         c.removeManagedRepository( c.findManagedRepositoryById( 
REPOID_INTERNAL ) );
         saveConfiguration( archivaConfiguration );
 
-        ManagedRepositoryConfiguration repository = servlet.getRepository( 
REPOID_INTERNAL );
+        ManagedRepository repository = servlet.getRepository( REPOID_INTERNAL 
);
         assertNull( repository );
     }
 
@@ -92,7 +93,7 @@ public class RepositoryServletTest
         c.addManagedRepository( repo );
         saveConfiguration( archivaConfiguration );
 
-        ManagedRepositoryConfiguration repository = servlet.getRepository( 
NEW_REPOSITORY_ID );
+        ManagedRepository repository = servlet.getRepository( 
NEW_REPOSITORY_ID );
         assertNotNull( repository );
         assertEquals( NEW_REPOSITORY_NAME, repository.getName() );
 

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedRepositoryServlet.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedRepositoryServlet.java?rev=1166148&r1=1166147&r2=1166148&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedRepositoryServlet.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/UnauthenticatedRepositoryServlet.java
 Wed Sep  7 12:18:55 2011
@@ -19,10 +19,12 @@ package org.apache.maven.archiva.webdav;
  * under the License.
  */
 
+import org.apache.archiva.admin.repository.RepositoryAdminException;
+
 import javax.servlet.ServletConfig;
 
 /**
- * UnauthenticatedRepositoryServlet 
+ * UnauthenticatedRepositoryServlet
  *
  * @version $Id$
  */
@@ -32,9 +34,16 @@ public class UnauthenticatedRepositorySe
     @Override
     public synchronized void initServers( ServletConfig servletConfig )
     {
-        super.initServers(servletConfig);
-        
+        try
+        {
+            super.initServers( servletConfig );
+        }
+        catch ( RepositoryAdminException e )
+        {
+            throw new RuntimeException( e.getMessage(), e );
+        }
+
         UnauthenticatedDavSessionProvider sessionProvider = new 
UnauthenticatedDavSessionProvider();
-        setDavSessionProvider(sessionProvider);
+        setDavSessionProvider( sessionProvider );
     }
 }

Modified: archiva/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/pom.xml?rev=1166148&r1=1166147&r2=1166148&view=diff
==============================================================================
--- archiva/trunk/pom.xml (original)
+++ archiva/trunk/pom.xml Wed Sep  7 12:18:55 2011
@@ -1490,6 +1490,11 @@
           <version>2.9</version>
           <configuration>
             
<redirectTestOutputToFile>${surefire.redirectTestOutputToFile}</redirectTestOutputToFile>
+            <systemPropertyVariables>
+              <appserver.base>${basedir}/target/appserver-base</appserver.base>
+              <plexus.home>${project.build.outputDirectory}</plexus.home>
+              <java.io.tmpdir>${project.build.outputDirectory}</java.io.tmpdir>
+            </systemPropertyVariables>
           </configuration>
         </plugin>
         <plugin>


Reply via email to