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 2008/02/20 02:39:14 UTC

svn commit: r629309 - in /maven/archiva/branches/springy: archiva-base/archiva-common/ archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/ archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configura...

Author: brett
Date: Tue Feb 19 17:39:07 2008
New Revision: 629309

URL: http://svn.apache.org/viewvc?rev=629309&view=rev
Log:
experimental Spring support

Added:
    maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/
    maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/PlexusFactory.java   (with props)
    maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/SpringFactory.java   (with props)
    maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest-context.xml   (with props)
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/spring-context.xml   (with props)
    maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/PlexusSpringListener.java   (with props)
    maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml   (with props)
    maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/repository/spring-context.xml   (with props)
Modified:
    maven/archiva/branches/springy/archiva-base/archiva-common/pom.xml
    maven/archiva/branches/springy/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
    maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/CachedFailuresPolicy.java
    maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/DefaultUrlFailureCache.java
    maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.java
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml
    maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml
    maven/archiva/branches/springy/archiva-web/archiva-webapp/pom.xml
    maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
    maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/AbstractRepositoryServletTestCase.java

Modified: maven/archiva/branches/springy/archiva-base/archiva-common/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-common/pom.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-common/pom.xml (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-common/pom.xml Tue Feb 19 17:39:07 2008
@@ -50,6 +50,12 @@
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-container-default</artifactId>
     </dependency>
+    <!-- TODO: temporary spring dependencies for migration -->
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-beans</artifactId>
+      <version>2.5.1</version>
+    </dependency>
   </dependencies>
   <build>
     <plugins>

Added: maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/PlexusFactory.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/PlexusFactory.java?rev=629309&view=auto
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/PlexusFactory.java (added)
+++ maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/PlexusFactory.java Tue Feb 19 17:39:07 2008
@@ -0,0 +1,49 @@
+package org.apache.maven.archiva.common.spring;
+
+/*
+ * 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.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+
+public class PlexusFactory
+{
+    private PlexusContainer container;
+
+    private String role;
+
+    private String roleHint;
+
+    public PlexusFactory( String role, String roleHint )
+    {
+        this.role = role;
+        this.roleHint = roleHint;
+    }
+
+    public Object createInstance()
+        throws ComponentLookupException
+    {
+        return container.lookup( role, roleHint );
+    }
+
+    public void setContainer( PlexusContainer container )
+    {
+        this.container = container;
+    }
+}

Propchange: maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/PlexusFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/SpringFactory.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/SpringFactory.java?rev=629309&view=auto
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/SpringFactory.java (added)
+++ maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/SpringFactory.java Tue Feb 19 17:39:07 2008
@@ -0,0 +1,56 @@
+package org.apache.maven.archiva.common.spring;
+
+/*
+ * 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.codehaus.plexus.context.Context;
+import org.codehaus.plexus.context.ContextException;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.springframework.beans.factory.BeanFactory;
+
+/**
+ * @plexus.component role="org.apache.maven.archiva.common.spring.SpringFactory" role-hint="default"
+ */
+public class SpringFactory
+    implements Contextualizable
+{
+    private BeanFactory factory;
+
+    public void contextualize( Context context )
+        throws ContextException
+    {
+        // Grab a Spring component - TODO: should be injected!
+        if ( context.contains( BeanFactory.class ) )
+        {
+            factory = (BeanFactory) context.get( BeanFactory.class );
+        }
+    }
+
+    public Object lookup( String id )
+    {
+        if ( factory != null )
+        {
+            return factory.getBean( id );
+        }
+        else
+        {
+            return null;
+        }
+    }
+}

Propchange: maven/archiva/branches/springy/archiva-base/archiva-common/src/main/java/org/apache/maven/archiva/common/spring/SpringFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/archiva/branches/springy/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java Tue Feb 19 17:39:07 2008
@@ -53,8 +53,8 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.Map.Entry;
+import java.util.Set;
 
 /**
  * <p>
@@ -100,11 +100,13 @@
 
     /**
      * @plexus.requirement role="org.apache.maven.archiva.policies.PreDownloadPolicy"
+     * @todo these don't strictly belong in here
      */
     private Map<String, PreDownloadPolicy> prePolicies;
 
     /**
      * @plexus.requirement role="org.apache.maven.archiva.policies.PostDownloadPolicy"
+     * @todo these don't strictly belong in here
      */
     private Map<String, PostDownloadPolicy> postPolicies;
     

Modified: maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/CachedFailuresPolicy.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/CachedFailuresPolicy.java?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/CachedFailuresPolicy.java (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/CachedFailuresPolicy.java Tue Feb 19 17:39:07 2008
@@ -20,8 +20,11 @@
  */
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.common.spring.SpringFactory;
 import org.apache.maven.archiva.policies.urlcache.UrlFailureCache;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -38,27 +41,29 @@
  */
 public class CachedFailuresPolicy
     extends AbstractLogEnabled
-    implements PreDownloadPolicy
+    implements PreDownloadPolicy, Initializable
 {
     /**
      * The NO policy setting means that the the existence of old failures is <strong>not</strong> checked.
      * All resource requests are allowed thru to the remote repo.
      */
     public static final String NO = "no";
-    
+
     /**
      * The YES policy setting means that the existence of old failures is checked, and will
      * prevent the request from being performed against the remote repo.
      */
     public static final String YES = "yes";
 
-    /**
-     * @plexus.requirement role-hint="default"
-     */
     private UrlFailureCache urlFailureCache;
 
     private List<String> options = new ArrayList<String>();
 
+    /**
+     * @plexus.requirement
+     */
+    private SpringFactory springFactory;
+
     public CachedFailuresPolicy()
     {
         options.add( NO );
@@ -70,9 +75,9 @@
     {
         if ( !options.contains( policySetting ) )
         {
-         // Not a valid code. 
-            throw new PolicyConfigurationException( "Unknown cache-failues policy setting [" + policySetting
-                + "], valid settings are [" + StringUtils.join( options.iterator(), "," ) + "]" );
+            // Not a valid code.
+            throw new PolicyConfigurationException( "Unknown cache-failues policy setting [" + policySetting +
+                "], valid settings are [" + StringUtils.join( options.iterator(), "," ) + "]" );
         }
 
         if ( NO.equals( policySetting ) )
@@ -88,7 +93,8 @@
         {
             if ( urlFailureCache.hasFailedBefore( url ) )
             {
-                throw new PolicyViolationException( "NO to fetch, check-failures detected previous failure on url: " + url );
+                throw new PolicyViolationException(
+                    "NO to fetch, check-failures detected previous failure on url: " + url );
             }
         }
 
@@ -108,5 +114,11 @@
     public List<String> getOptions()
     {
         return options;
+    }
+
+    public void initialize()
+        throws InitializationException
+    {
+        urlFailureCache = (UrlFailureCache) springFactory.lookup( "urlFailureCache" );
     }
 }

Modified: maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/DefaultUrlFailureCache.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/DefaultUrlFailureCache.java?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/DefaultUrlFailureCache.java (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-policies/src/main/java/org/apache/maven/archiva/policies/urlcache/DefaultUrlFailureCache.java Tue Feb 19 17:39:07 2008
@@ -28,17 +28,19 @@
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
- * 
- * @plexus.component role="org.apache.maven.archiva.policies.urlcache.UrlFailureCache"
- *                   role-hint="default"
  */
 public class DefaultUrlFailureCache
     implements UrlFailureCache
 {
     /**
-     * @plexus.requirement role-hint="url-failures-cache"
+     * @todo spring cache instead
      */
     private Cache urlCache;
+
+    public DefaultUrlFailureCache( Cache urlCache )
+    {
+        this.urlCache = urlCache;
+    }
 
     public void cacheFailure( String url )
     {

Modified: maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.java?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.java (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/java/org/apache/maven/archiva/policies/CachedFailuresPolicyTest.java Tue Feb 19 17:39:07 2008
@@ -19,14 +19,18 @@
  * under the License.
  */
 
+import org.apache.maven.archiva.common.spring.PlexusFactory;
 import org.apache.maven.archiva.policies.urlcache.UrlFailureCache;
 import org.codehaus.plexus.PlexusTestCase;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.xml.XmlBeanFactory;
+import org.springframework.core.io.ClassPathResource;
 
 import java.io.File;
 import java.util.Properties;
 
 /**
- * CachedFailuresPolicyTest 
+ * CachedFailuresPolicyTest
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
@@ -34,18 +38,14 @@
 public class CachedFailuresPolicyTest
     extends PlexusTestCase
 {
+    private BeanFactory factory;
+
     private DownloadPolicy lookupPolicy()
         throws Exception
     {
         return (DownloadPolicy) lookup( PreDownloadPolicy.class.getName(), "cache-failures" );
     }
 
-    private UrlFailureCache lookupUrlFailureCache()
-        throws Exception
-    {
-        return (UrlFailureCache) lookup( UrlFailureCache.class.getName(), "default" );
-    }
-
     private File getFile()
     {
         return new File( "target/cache-failures/" + getName() + ".txt" );
@@ -85,14 +85,13 @@
     public void testPolicyYesInCache()
         throws Exception
     {
-        UrlFailureCache urlFailureCache = lookupUrlFailureCache();
-
         DownloadPolicy policy = lookupPolicy();
         File localFile = getFile();
         Properties request = createRequest();
 
         String url = "http://a.bad.hostname.maven.org/path/to/resource.txt";
 
+        UrlFailureCache urlFailureCache = (UrlFailureCache) factory.getBean( "urlFailureCache" );
         urlFailureCache.cacheFailure( url );
 
         request.setProperty( "url", url );
@@ -106,5 +105,16 @@
         {
             // expected path.
         }
+    }
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        factory = new XmlBeanFactory(
+            new ClassPathResource( "/org/apache/maven/archiva/policies/CachedFailuresPolicyTest-context.xml" ) );
+        getContainer().getContext().put( BeanFactory.class, factory );
+        PlexusFactory plexusFactory = (PlexusFactory) factory.getBean( "plexusCacheFactory" );
+        plexusFactory.setContainer( container );
     }
 }

Added: maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest-context.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest-context.xml?rev=629309&view=auto
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest-context.xml (added)
+++ maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest-context.xml Tue Feb 19 17:39:07 2008
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+  <bean id="urlFailureCache" class="org.apache.maven.archiva.policies.urlcache.DefaultUrlFailureCache">
+    <!-- collaborators and configuration for this bean go here -->
+    <constructor-arg ref="urlCache" type="org.codehaus.plexus.cache.Cache"/>
+  </bean>
+  <bean id="urlCache" factory-bean="plexusCacheFactory" factory-method="createInstance"/>
+  <bean id="plexusCacheFactory" class="org.apache.maven.archiva.common.spring.PlexusFactory">
+    <constructor-arg index="0" value="org.codehaus.plexus.cache.Cache"/>
+    <constructor-arg index="1" value="url-failures-cache"/>
+  </bean>
+</beans>
\ No newline at end of file

Propchange: maven/archiva/branches/springy/archiva-base/archiva-policies/src/test/resources/org/apache/maven/archiva/policies/CachedFailuresPolicyTest-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java Tue Feb 19 17:39:07 2008
@@ -21,8 +21,8 @@
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.common.spring.SpringFactory;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ConfigurationNames;
 import org.apache.maven.archiva.configuration.NetworkProxyConfiguration;
@@ -65,8 +65,6 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.net.URLClassLoader;
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -116,10 +114,12 @@
      */
     private Map<String, PostDownloadPolicy> postDownloadPolicies;
 
+    private UrlFailureCache urlFailureCache;
+
     /**
-     * @plexus.requirement role-hint="default"
+     * @plexus.requirement
      */
-    private UrlFailureCache urlFailureCache;
+    private SpringFactory springFactory;
 
     private Map<String, List<ProxyConnector>> proxyConnectorMap = new HashMap<String, List<ProxyConnector>>();
 
@@ -527,10 +527,10 @@
             getLogger().info( emsg );
             return null;
         }
-			
+
         Wagon wagon = null;
         try
-        {	
+        {
             RepositoryURL repoUrl = remoteRepository.getURL();
             String protocol = repoUrl.getProtocol();
             wagon = (Wagon) wagons.get( protocol );
@@ -834,7 +834,7 @@
 
             //Convert seconds to milliseconds
             int timeoutInMilliseconds = remoteRepository.getRepository().getTimeout() * 1000;
-            
+
             //Set timeout
             wagon.setTimeout(timeoutInMilliseconds);
 
@@ -1026,5 +1026,7 @@
     {
         initConnectorsAndNetworkProxies();
         archivaConfiguration.addChangeListener( this );
+
+        urlFailureCache = (UrlFailureCache) springFactory.lookup( "urlFailureCache" );
     }
 }

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java Tue Feb 19 17:39:07 2008
@@ -20,6 +20,7 @@
  */
 
 import org.apache.commons.io.FileUtils;
+import org.apache.maven.archiva.common.spring.PlexusFactory;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;
@@ -28,11 +29,13 @@
 import org.apache.maven.archiva.policies.ChecksumPolicy;
 import org.apache.maven.archiva.policies.ReleasesPolicy;
 import org.apache.maven.archiva.policies.SnapshotsPolicy;
-import org.apache.maven.archiva.policies.urlcache.UrlFailureCache;
 import org.apache.maven.archiva.repository.ManagedRepositoryContent;
 import org.apache.maven.wagon.Wagon;
 import org.codehaus.plexus.PlexusTestCase;
 import org.easymock.MockControl;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.xml.XmlBeanFactory;
+import org.springframework.core.io.ClassPathResource;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -102,6 +105,8 @@
 
     protected MockConfiguration config;
 
+    protected BeanFactory factory;
+
     protected void assertChecksums( File expectedFile, String expectedSha1Contents, String expectedMd5Contents )
         throws Exception
     {
@@ -259,14 +264,6 @@
         return repoContent;
     }
 
-    protected UrlFailureCache lookupUrlFailureCache()
-        throws Exception
-    {
-        UrlFailureCache failurlCache = (UrlFailureCache) lookup( UrlFailureCache.class.getName(), "default" );
-        assertNotNull( "URL Failure Cache cannot be null.", failurlCache );
-        return failurlCache;
-    }
-
     /**
      * Read the first line from the checksum file, and return it (trimmed).
      */
@@ -383,6 +380,12 @@
         throws Exception
     {
         super.setUp();
+
+        factory = new XmlBeanFactory(
+            new ClassPathResource( "/org/apache/maven/archiva/proxy/spring-context.xml" ) );
+        getContainer().getContext().put( BeanFactory.class, factory );
+        PlexusFactory plexusFactory = (PlexusFactory) factory.getBean( "plexusCacheFactory" );
+        plexusFactory.setContainer( container );
 
         config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" );
 

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java Tue Feb 19 17:39:07 2008
@@ -156,4 +156,12 @@
         assertFileEquals( expectedFile, downloadedFile, proxied2File );
         assertNoTempFiles( expectedFile );
     }
+
+    protected UrlFailureCache lookupUrlFailureCache()
+        throws Exception
+    {
+        UrlFailureCache urlFailureCache = (UrlFailureCache) factory.getBean( "urlFailureCache" );
+        assertNotNull( "URL Failure Cache cannot be null.", urlFailureCache );
+        return urlFailureCache;
+    }
 }

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.xml Tue Feb 19 17:39:07 2008
@@ -73,9 +73,8 @@
           <field-name>postDownloadPolicies</field-name>
         </requirement>
         <requirement>
-          <role>org.apache.maven.archiva.policies.urlcache.UrlFailureCache</role>
+          <role>org.apache.maven.archiva.common.spring.SpringFactory</role>
           <role-hint>default</role-hint>
-          <field-name>urlFailureCache</field-name>
         </requirement>
         <requirement>
           <role>org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers</role>

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ChecksumTransferTest.xml Tue Feb 19 17:39:07 2008
@@ -73,9 +73,8 @@
           <field-name>postDownloadPolicies</field-name>
         </requirement>
         <requirement>
-          <role>org.apache.maven.archiva.policies.urlcache.UrlFailureCache</role>
+          <role>org.apache.maven.archiva.common.spring.SpringFactory</role>
           <role-hint>default</role-hint>
-          <field-name>urlFailureCache</field-name>
         </requirement>
         <requirement>
           <role>org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers</role>

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.xml Tue Feb 19 17:39:07 2008
@@ -73,9 +73,8 @@
           <field-name>postDownloadPolicies</field-name>
         </requirement>
         <requirement>
-          <role>org.apache.maven.archiva.policies.urlcache.UrlFailureCache</role>
+          <role>org.apache.maven.archiva.common.spring.SpringFactory</role>
           <role-hint>default</role-hint>
-          <field-name>urlFailureCache</field-name>
         </requirement>
         <requirement>
           <role>org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers</role>

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.xml Tue Feb 19 17:39:07 2008
@@ -73,9 +73,8 @@
           <field-name>postDownloadPolicies</field-name>
         </requirement>
         <requirement>
-          <role>org.apache.maven.archiva.policies.urlcache.UrlFailureCache</role>
+          <role>org.apache.maven.archiva.common.spring.SpringFactory</role>
           <role-hint>default</role-hint>
-          <field-name>urlFailureCache</field-name>
         </requirement>
         <requirement>
           <role>org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers</role>

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/MetadataTransferTest.xml Tue Feb 19 17:39:07 2008
@@ -96,9 +96,8 @@
           <field-name>postDownloadPolicies</field-name>
         </requirement>
         <requirement>
-          <role>org.apache.maven.archiva.policies.urlcache.UrlFailureCache</role>
+          <role>org.apache.maven.archiva.common.spring.SpringFactory</role>
           <role-hint>default</role-hint>
-          <field-name>urlFailureCache</field-name>
         </requirement>
         <requirement>
           <role>org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers</role>

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/RelocateTransferTest.xml Tue Feb 19 17:39:07 2008
@@ -73,9 +73,8 @@
           <field-name>postDownloadPolicies</field-name>
         </requirement>
         <requirement>
-          <role>org.apache.maven.archiva.policies.urlcache.UrlFailureCache</role>
+          <role>org.apache.maven.archiva.common.spring.SpringFactory</role>
           <role-hint>default</role-hint>
-          <field-name>urlFailureCache</field-name>
         </requirement>
         <requirement>
           <role>org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers</role>

Modified: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml (original)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/SnapshotTransferTest.xml Tue Feb 19 17:39:07 2008
@@ -73,9 +73,8 @@
           <field-name>postDownloadPolicies</field-name>
         </requirement>
         <requirement>
-          <role>org.apache.maven.archiva.policies.urlcache.UrlFailureCache</role>
+          <role>org.apache.maven.archiva.common.spring.SpringFactory</role>
           <role-hint>default</role-hint>
-          <field-name>urlFailureCache</field-name>
         </requirement>
         <requirement>
           <role>org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers</role>

Added: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/spring-context.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/spring-context.xml?rev=629309&view=auto
==============================================================================
--- maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/spring-context.xml (added)
+++ maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/spring-context.xml Tue Feb 19 17:39:07 2008
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+  <bean id="urlFailureCache" class="org.apache.maven.archiva.policies.urlcache.DefaultUrlFailureCache">
+    <!-- collaborators and configuration for this bean go here -->
+    <constructor-arg ref="urlCache" type="org.codehaus.plexus.cache.Cache"/>
+  </bean>
+  <bean id="urlCache" factory-bean="plexusCacheFactory" factory-method="createInstance"/>
+  <bean id="plexusCacheFactory" class="org.apache.maven.archiva.common.spring.PlexusFactory">
+    <constructor-arg index="0" value="org.codehaus.plexus.cache.Cache"/>
+    <constructor-arg index="1" value="url-failures-cache"/>
+  </bean>
+</beans>
\ No newline at end of file

Propchange: maven/archiva/branches/springy/archiva-base/archiva-proxy/src/test/resources/org/apache/maven/archiva/proxy/spring-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/archiva/branches/springy/archiva-web/archiva-webapp/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/pom.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-web/archiva-webapp/pom.xml (original)
+++ maven/archiva/branches/springy/archiva-web/archiva-webapp/pom.xml Tue Feb 19 17:39:07 2008
@@ -188,6 +188,11 @@
       <artifactId>plexus-xwork-integration</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-web</artifactId>
+      <version>2.5.1</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.derby</groupId>
       <artifactId>derby</artifactId>
       <scope>provided</scope>

Added: maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/PlexusSpringListener.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/PlexusSpringListener.java?rev=629309&view=auto
==============================================================================
--- maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/PlexusSpringListener.java (added)
+++ maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/PlexusSpringListener.java Tue Feb 19 17:39:07 2008
@@ -0,0 +1,50 @@
+package org.apache.maven.archiva.web.startup;
+
+/*
+ * 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.common.spring.PlexusFactory;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.xwork.PlexusLifecycleListener;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+public class PlexusSpringListener
+    implements ServletContextListener
+{
+    public void contextInitialized( ServletContextEvent event )
+    {
+        BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext( event.getServletContext() );
+
+        PlexusContainer container =
+            (PlexusContainer) event.getServletContext().getAttribute( PlexusLifecycleListener.KEY );
+
+        container.getContext().put( BeanFactory.class, factory );
+        PlexusFactory plexusFactory = (PlexusFactory) factory.getBean( "plexusCacheFactory" );
+        plexusFactory.setContainer( container );
+    }
+
+    public void contextDestroyed( ServletContextEvent event )
+    {
+        // This space left intentionally blank
+    }
+}

Propchange: maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/PlexusSpringListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml?rev=629309&view=auto
==============================================================================
--- maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml (added)
+++ maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml Tue Feb 19 17:39:07 2008
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
+    default-lazy-init="true">
+  <!-- default-lazy-init is required by the plexusCacheFactory -->
+
+  <bean id="urlFailureCache" class="org.apache.maven.archiva.policies.urlcache.DefaultUrlFailureCache">
+    <!-- collaborators and configuration for this bean go here -->
+    <constructor-arg ref="urlCache" type="org.codehaus.plexus.cache.Cache"/>
+  </bean>
+  <bean id="urlCache" factory-bean="plexusCacheFactory" factory-method="createInstance" />
+  <bean id="plexusCacheFactory" class="org.apache.maven.archiva.common.spring.PlexusFactory">
+    <constructor-arg index="0" value="org.codehaus.plexus.cache.Cache"/>
+    <constructor-arg index="1" value="url-failures-cache"/>
+  </bean>
+</beans>
\ No newline at end of file

Propchange: maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml (original)
+++ maven/archiva/branches/springy/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml Tue Feb 19 17:39:07 2008
@@ -59,6 +59,14 @@
     <listener-class>org.codehaus.plexus.xwork.PlexusLifecycleListener</listener-class>
   </listener>
 
+  <listener>
+    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+  </listener>
+
+  <listener>
+    <listener-class>org.apache.maven.archiva.web.startup.PlexusSpringListener</listener-class>
+  </listener>
+
   <servlet>
     <servlet-name>RepositoryServlet</servlet-name>
     <servlet-class>org.apache.maven.archiva.web.repository.RepositoryServlet</servlet-class>
@@ -72,22 +80,22 @@
   </servlet-mapping>
 
   <resource-ref>
-     <res-ref-name>jdbc/users</res-ref-name>
-     <res-type>javax.sql.DataSource</res-type>
-     <res-auth>Container</res-auth>
-     <res-sharing-scope>Shareable</res-sharing-scope>
+    <res-ref-name>jdbc/users</res-ref-name>
+    <res-type>javax.sql.DataSource</res-type>
+    <res-auth>Container</res-auth>
+    <res-sharing-scope>Shareable</res-sharing-scope>
   </resource-ref>
   <resource-ref>
-     <res-ref-name>jdbc/archiva</res-ref-name>
-     <res-type>javax.sql.DataSource</res-type>
-     <res-auth>Container</res-auth>
-     <res-sharing-scope>Shareable</res-sharing-scope>
+    <res-ref-name>jdbc/archiva</res-ref-name>
+    <res-type>javax.sql.DataSource</res-type>
+    <res-auth>Container</res-auth>
+    <res-sharing-scope>Shareable</res-sharing-scope>
   </resource-ref>
   <resource-ref>
-     <res-ref-name>mail/Session</res-ref-name>
-     <res-type>javax.mail.Session</res-type>
-     <res-auth>Container</res-auth>
-     <res-sharing-scope>Shareable</res-sharing-scope>
+    <res-ref-name>mail/Session</res-ref-name>
+    <res-type>javax.mail.Session</res-type>
+    <res-auth>Container</res-auth>
+    <res-sharing-scope>Shareable</res-sharing-scope>
   </resource-ref>
 
 </web-app>

Modified: maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/AbstractRepositoryServletTestCase.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/AbstractRepositoryServletTestCase.java?rev=629309&r1=629308&r2=629309&view=diff
==============================================================================
--- maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/AbstractRepositoryServletTestCase.java (original)
+++ maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/AbstractRepositoryServletTestCase.java Tue Feb 19 17:39:07 2008
@@ -22,21 +22,23 @@
 import com.meterware.httpunit.WebResponse;
 import com.meterware.servletunit.ServletRunner;
 import com.meterware.servletunit.ServletUnitClient;
-
 import org.apache.commons.io.FileUtils;
+import org.apache.maven.archiva.common.spring.PlexusFactory;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusTestCase;
-
-import java.io.File;
-import java.io.IOException;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.xml.XmlBeanFactory;
+import org.springframework.core.io.ClassPathResource;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
+import java.io.File;
+import java.io.IOException;
 
 /**
  * AbstractRepositoryServletTestCase 
@@ -150,6 +152,12 @@
         File testConf = getTestFile( "src/test/resources/repository-archiva.xml" );
         File testConfDest = new File( appserverBase, "conf/archiva.xml" );
         FileUtils.copyFile( testConf, testConfDest );
+
+        BeanFactory factory = new XmlBeanFactory(
+            new ClassPathResource( "/org/apache/maven/archiva/web/repository/spring-context.xml" ) );
+        getContainer().getContext().put( BeanFactory.class, factory );
+        PlexusFactory plexusFactory = (PlexusFactory) factory.getBean( "plexusCacheFactory" );
+        plexusFactory.setContainer( container );
 
         archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class );
         repoRootInternal = new File( appserverBase, "data/repositories/internal" );

Added: maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/repository/spring-context.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/repository/spring-context.xml?rev=629309&view=auto
==============================================================================
--- maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/repository/spring-context.xml (added)
+++ maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/repository/spring-context.xml Tue Feb 19 17:39:07 2008
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+  <bean id="urlFailureCache" class="org.apache.maven.archiva.policies.urlcache.DefaultUrlFailureCache">
+    <!-- collaborators and configuration for this bean go here -->
+    <constructor-arg ref="urlCache" type="org.codehaus.plexus.cache.Cache"/>
+  </bean>
+  <bean id="urlCache" factory-bean="plexusCacheFactory" factory-method="createInstance"/>
+  <bean id="plexusCacheFactory" class="org.apache.maven.archiva.common.spring.PlexusFactory">
+    <constructor-arg index="0" value="org.codehaus.plexus.cache.Cache"/>
+    <constructor-arg index="1" value="url-failures-cache"/>
+  </bean>
+</beans>
\ No newline at end of file

Propchange: maven/archiva/branches/springy/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/repository/spring-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native