Author: brett
Date: Thu Jul  6 04:41:26 2006
New Revision: 419527

URL: http://svn.apache.org/viewvc?rev=419527&view=rev
Log:
[MRM-117] proxy web interface
Submitted by: Pete Marvin King

Added:
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/action/
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/action/RepositoryProxyAction.java
   (with props)
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java
   (with props)
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/maven-proxy-complete.conf
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties
   (with props)
    maven/repository-manager/trunk/maven-repository-webapp/src/test/
    maven/repository-manager/trunk/maven-repository-webapp/src/test/java/
    maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/RepositoryProxyActionTest.java
   (with props)
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/HttpServletRequestStub.java
   (with props)
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ProxyManagerStub.java
   (with props)
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ServletRequestStub.java
   (with props)
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/actionmapper/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/actionmapper/test/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/actionmapper/test/RepositoryProxyActionMapperTest.java
   (with props)
    maven/repository-manager/trunk/maven-repository-webapp/src/test/resources/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/resources/unit/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/resources/unit/proxy-test/
    
maven/repository-manager/trunk/maven-repository-webapp/src/test/resources/unit/proxy-test/maven-proxy-complete.conf
Modified:
    maven/repository-manager/trunk/maven-repository-webapp/pom.xml
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml
    maven/repository-manager/trunk/pom.xml

Modified: maven/repository-manager/trunk/maven-repository-webapp/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/pom.xml?rev=419527&r1=419526&r2=419527&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-webapp/pom.xml (original)
+++ maven/repository-manager/trunk/maven-repository-webapp/pom.xml Thu Jul  6 
04:41:26 2006
@@ -61,6 +61,10 @@
     </dependency>
     <dependency>
       <groupId>org.apache.maven.repository</groupId>
+      <artifactId>maven-repository-proxy</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.repository</groupId>
       <artifactId>maven-repository-artifact-applet</artifactId>
       <!-- TODO: actually, just exclude from WAR plugin -->
       <scope>provided</scope>

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/action/RepositoryProxyAction.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/action/RepositoryProxyAction.java?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/action/RepositoryProxyAction.java
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/action/RepositoryProxyAction.java
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,154 @@
+package org.apache.maven.repository.proxy.web.action;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 com.opensymphony.xwork.Action;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.maven.repository.proxy.ProxyException;
+import org.apache.maven.repository.proxy.ProxyManager;
+import 
org.apache.maven.repository.proxy.configuration.MavenProxyPropertyLoader;
+import org.apache.maven.repository.proxy.configuration.ProxyConfiguration;
+import org.apache.maven.repository.proxy.configuration.ValidationException;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+
+/**
+ * This is the Action class responsible for processing artifact request,
+ * relies on the RestfulActionMapper to map the artifact request to this 
action.
+ *
+ * @plexus.component role="com.opensymphony.xwork.Action" 
role-hint="org.apache.maven.repository.manager.web.action.RepositoryProxyAction"
+ */
+public class RepositoryProxyAction
+    implements Action
+{
+    /**
+     * logger instance
+     */
+    protected static final Log log = LogFactory.getLog( 
RepositoryProxyAction.class );
+
+    public static final String NOTFOUND = "notFound";
+
+    public static final String PROXYERROR = "proxyError";
+
+    /**
+     * file requested by the client,
+     * TODO: validate the requestd file using na interceptor
+     */
+    private String requestedFile;
+
+    /**
+     * main proxy logic
+     *
+     * @plexus.requirement 
role="org.apache.maven.repository.proxy.ProxyManager"
+     */
+    private ProxyManager repositoryProxyManager;
+
+    /**
+     * configuration for the ProxyManager
+     *
+     * @plexus.requirement
+     */
+    private ProxyConfiguration proxyConfig;
+
+    /**
+     * the inputstream for the artifact file
+     */
+    private FileInputStream artifactStream;
+
+    /**
+     * the cached artifact file
+     */
+    private File cachedFile;
+
+    /**
+     * proxy configuration file
+     * TODO: recode the configuration part when Configuration is finalized
+     * TODO: this is only temporary
+     */
+    private String configFile;
+
+    // setters and getters
+
+    public void setProxyManager( ProxyManager manager )
+    {
+        repositoryProxyManager = manager;
+    }
+
+    public void setRequestedFile( String reqFile )
+    {
+        requestedFile = reqFile;
+    }
+
+    public String getRequestedFile()
+    {
+        return requestedFile;
+    }
+
+    public FileInputStream getArtifactStream()
+    {
+        return artifactStream;
+    }
+
+    public File getCachedFile()
+    {
+        return cachedFile;
+    }
+
+    public void setConfigFile( String fileName )
+    {
+        configFile = fileName;
+    }
+
+    /**
+     * entry-point
+     */
+    public String execute()
+        throws MalformedURLException, IOException, ValidationException
+    {
+        try
+        {
+            MavenProxyPropertyLoader loader = new MavenProxyPropertyLoader();
+            proxyConfig = loader.load( new FileInputStream( configFile ) );
+            repositoryProxyManager.setConfiguration( proxyConfig );
+            cachedFile = repositoryProxyManager.get( requestedFile );
+            artifactStream = new FileInputStream( cachedFile );
+        }
+        catch ( ResourceDoesNotExistException ex )
+        {
+            log.info( "[not found] " + ex.getMessage() );
+            return NOTFOUND;
+        }
+        catch ( ProxyException ex )
+        {
+            log.info( "[proxy error] " + ex.getMessage() );
+            return PROXYERROR;
+        }
+        catch ( FileNotFoundException ex )
+        {
+            log.info( "[not found] " + ex.getMessage() );
+            return NOTFOUND;
+        }
+
+        return SUCCESS;
+    }
+}

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/action/RepositoryProxyAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/action/RepositoryProxyAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,133 @@
+package org.apache.maven.repository.proxy.web.actionmapper;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 com.opensymphony.webwork.dispatcher.mapper.ActionMapping;
+import com.opensymphony.webwork.dispatcher.mapper.DefaultActionMapper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Properties;
+
+public class RepositoryProxyActionMapper
+    extends DefaultActionMapper
+{
+    /**
+     * logger instance
+     */
+    protected static final Log log = LogFactory.getLog( 
RepositoryProxyActionMapper.class );
+
+    private static final String configFileName = "maven-proxy-complete.conf";
+
+    private static final String defaultProxyAction = "proxy";
+
+    /**
+     * the keyword that will be checked on the http request to determine if 
proxy
+     * is requested
+     * <p/>
+     * the default prefix is "/proxy/"
+     */
+    private String prefix = "/proxy/";
+
+    private String requestedArtifact;
+
+    String configFile = null;
+
+    public String getPrefix()
+    {
+        return prefix;
+    }
+
+    public String getRequestedArtifact()
+    {
+        return requestedArtifact;
+    }
+
+    public ActionMapping getDefaultActionMapping( HttpServletRequest request )
+    {
+        ActionMapping mapping = super.getMapping( request );
+
+        return mapping;
+    }
+
+    public void setConfigfile( String fileName )
+    {
+        configFile = fileName;
+    }
+
+    /**
+     * only process the request that matches the prefix all other request
+     * will be hand over to the default action mapper
+     * <p/>
+     * if the configuration file is missing the request will also be channeled
+     * to the default action mapper
+     */
+    public ActionMapping getMapping( HttpServletRequest request )
+    {
+        Properties config = new Properties();
+        String uri = request.getServletPath();
+        URL configURL = getClass().getClassLoader().getResource( 
configFileName );
+
+        if ( ( configURL != null ) && ( configFile == null ) )
+        {
+            configFile = configURL.getFile();
+            log.info( configFile );
+        }
+
+        try
+        {
+            config.load( new FileInputStream( configFile ) );
+        }
+        catch ( IOException ex )
+        {
+            log.info( "[config error] " + ex.getMessage() );
+            return getDefaultActionMapping( request );
+        }
+
+        if ( config.getProperty( "prefix" ) != null )
+        {
+            prefix = "/" + config.getProperty( "prefix" ) + "/";
+        }
+
+        log.info( "prefix : " + prefix );
+
+        if ( uri.startsWith( prefix ) )
+        {
+            requestedArtifact = uri.substring( prefix.length() );
+
+            if ( ( requestedArtifact == null ) || ( requestedArtifact.length() 
< 0 ) )
+            {
+                return getDefaultActionMapping( request );
+            }
+
+            HashMap parameterMap = new HashMap();
+
+            parameterMap.put( "requestedFile", requestedArtifact );
+            parameterMap.put( "configFile", configFile );
+
+            return new ActionMapping( defaultProxyAction, "/", "", 
parameterMap );
+        }
+
+        return getDefaultActionMapping( request );
+    }
+
+}

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/maven-proxy-complete.conf
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/maven-proxy-complete.conf?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/maven-proxy-complete.conf
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/maven-proxy-complete.conf
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,145 @@
+################ GLOBAL SETTINGS
+# This is where maven-proxy stores files it has downloaded
+repo.local.store=/tmp/proxy-cache
+
+#The port to listen on - not used if loaded as a webapp
+port=9999
+
+#This is the base area that all files are loaded from. While it is possible to 
leave this blank, this behaviour
+#is deprecated and will be disabled in version 2.0.  There are too many 
namespace conflicts caused by not using
+#a prefix.
+#The repository will be shown at http://localhost:9999/repository/
+#for the .war loaded into a webapp server, the default prefix is "repository" 
(edit the web.xml to change)
+# As maven doesn't like a trailing slash, this address shouldn't have one 
either.
+prefix=repository
+
+#This is the simple date format used to display the last modified date while 
browsing the repository.
+lastModifiedDateFormat=yyyy/MM/dd HH:mm:ss
+
+################ SNAPSHOT HANDLING
+#If you want the proxy to look for newer snapshots, set to true
+snapshot.update=true
+
+################ M2 METADATA HANDLING
+#If you want the proxy to prevent looking for newer metadata, set to false 
(default is true)
+#metadata.update=false
+
+################ M2 POM HANDLING
+#If you want the proxy to look for newer POMs, set to true (default is false)
+pom.update=true
+
+################ PROMOTION HANDLING
+# ***** NOT CURRENTLY IMPLEMENTED *****
+#Promotion describes the process by which new artifacts are loaded to global 
maven-proxy repository.  It
+# is designed to be used by "higher security installations" that do not want 
to acquire artifacts from
+# remote repositories without approval.
+#
+#If promotion handling is enabled, then the proxy will not download remote 
artifacts without permission
+# (local repositories with copy=false are considered to be local)
+#
+#Permission to download is granted via the Promotion menu which will be enabled
+#  when promotion handling is enabled.
+#
+#If promotion is false, artifacts are sourced from any repository as per 
normal.
+#
+#Promotion and snapshots:  If promotion is enabled, snapshots are not 
downloadable.  The concept of using
+# a snapshot in a production build (which is primarily what promotion is for) 
is counterintuitive.
+##
+promotion=false
+
+################ WEB INTERFACE
+# This defines the absolute URL the server should use to identify itself.
+# This can often be determined automatically, but we recommend you specify
+# it explicitly to prevent problems during startup.
+# The prefix will be added to this for the actual repository
+# i.e. proxy available at http://localhost:9999/, repository at 
http://localhost:9999/repository
+serverName=http://localhost:9999
+
+#If true, the repository can be browsed
+browsable=true
+
+#If true, the repository can be searched
+searchable=true
+
+#Not currently implemented. Will allow webdav access to the repository at some 
point.
+webdav=true
+
+#Stylesheet - if configured, will override the default stylesheet shipped with 
maven-proxy - absolute URLs only
+#eg.  /maven-proxy/style.css, http://www.example.com/style.css
+stylesheet=/maven-proxy/style.css
+
+#bgColor / bgColorHighlight are replaced in the built in stylesheet to produce 
a simple color scheme.
+#If a stylesheet is set, these are not used.
+bgColor=#14B
+bgColorHighlight=#94B
+
+#rowColor / rowColorHighlight are replaced in the built in stylesheet to 
produce a simple color scheme.
+#If a stylesheet is set, these are not used.
+rowColor=#CCF
+rowColorHighlight=#DDF
+
+
+################ PROXIES
+#This is just a hack, it should auto discover them
+#proxy.list=one,two,three
+proxy.list=
+
+#Unauthenticated proxy
+#proxy.one.host=proxy1.example.com
+#proxy.one.port=3128
+
+#Authenticated proxy
+#proxy.two.host=proxy2.example.org
+#proxy.two.port=80
+#proxy.two.username=username2
+#proxy.two.password=password2
+
+#Authenticated proxy
+#proxy.three.host=proxy3.example.net
+#proxy.three.port=3129
+#proxy.three.username=username3
+#proxy.three.password=password3
+
+
+################# REPOSITORIES
+#This is not just a hack, it specifies the order repositories should be checked
+#Note that the proxy adds a "/" which is why the urls aren't suffixed with a 
"/"
+repo.list=www-ibiblio-org
+
+#local-store
+# The local store represents a location that local jars you host can be 
located.
+# This could also be achieved by having a local http repository, but this is 
less cumbersome
+repo.local-repo.url=file://target
+repo.local-repo.description=Super Secret Custom Repository
+#If copy is true, jars are copied from the store to the proxy-repo. Only 
configurable for file:/// repos
+repo.local-repo.copy=false
+#If hardfail is true, any unexpected errors from the repository will cause
+#the client download to fail (typically with a 500 error)
+repo.local-repo.hardfail=true
+#Don't cache a file repository
+repo.local-repo.cache.period=0
+
+
+#www.ibiblio.org
+repo.www-ibiblio-org.url=http://www.ibiblio.org/maven2
+repo.www-ibiblio-org.description=www.ibiblio.org
+repo.www-ibiblio-org.proxy=
+repo.www-ibiblio-org.hardfail=true
+#Cache this repository for 1 hour
+repo.www-ibiblio-org.cache.period=3600
+repo.www-ibiblio-org.cache.failures=true
+
+#dist.codehaus.org
+repo.dist-codehaus-org.url=http://dist.codehaus.org
+repo.dist-codehaus-org.proxy=two
+repo.dist-codehaus-org.hardfail=false
+repo.dist-codehaus-org.cache.period=3600
+repo.dist-codehaus-org.cache.failures=true
+
+#private.example.com
+repo.private-example-com.url=http://private.example.com/internal
+repo.private-example-com.description=Commercial In Confidence Repository
+repo.private-example-com.username=username1
+repo.private-example-com.password=password1
+repo.private-example-com.proxy=three
+repo.private-example-com.cache.period=3600

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,3 @@
+# define our own action mapper here
+webwork.mapper.class=org.apache.maven.repository.proxy.web.actionmapper.RepositoryProxyActionMapper
+webwork.objectFactory = org.codehaus.plexus.xwork.PlexusObjectFactory

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml?rev=419527&r1=419526&r2=419527&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml
 Thu Jul  6 04:41:26 2006
@@ -43,6 +43,16 @@
         </action>
     -->
 
+    <action name="proxy" 
class="org.apache.maven.repository.proxy.web.action.RepositoryProxyAction">
+      <result name="success" type="stream">
+        <param name="contentType">application/octet-stream</param>
+        <param name="inputName">artifactStream</param>
+        <param name="bufferSize">1024</param>
+      </result>
+      <result name="notFound" type="dispatcher">notFoundError</result>
+      <result name="proxyError" type="dispatcher">proxyError</result>
+    </action>
+
     <action name="searchg" 
class="org.apache.maven.repository.manager.web.action.GeneralSearchAction">
       <result name="success" 
type="dispatcher">/WEB-INF/jsp/generalresults.jsp</result>
       <result name="error" type="dispatcher">/WEB-INF/jsp/index.jsp</result>

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/RepositoryProxyActionTest.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/RepositoryProxyActionTest.java?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/RepositoryProxyActionTest.java
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/RepositoryProxyActionTest.java
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,77 @@
+package org.apache.maven.repository.proxy.web.action.test;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.repository.proxy.web.action.RepositoryProxyAction;
+import org.apache.maven.repository.proxy.web.action.test.stub.ProxyManagerStub;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.util.Properties;
+
+public class RepositoryProxyActionTest
+    extends PlexusTestCase
+{
+
+    /**
+     * test basic proxy operation
+     *
+     * @throws Exception
+     */
+    public void testProxy()
+        throws Exception
+    {
+        String testDir = getBasedir() + "/target/test-classes/unit/proxy-test";
+        RepositoryProxyAction action = new RepositoryProxyAction();
+        ProxyManagerStub proxyManager = new ProxyManagerStub( testDir );
+        File cachedFile = proxyManager.get( "dummyFile" );
+
+        if ( !cachedFile.getParentFile().exists() )
+        {
+            assertTrue( "can not create test file", 
cachedFile.getParentFile().mkdirs() );
+        }
+
+        if ( !cachedFile.exists() )
+        {
+            assertTrue( "can not create test file", cachedFile.createNewFile() 
);
+        }
+
+        File tmpDir = getTestFile( "target/tmp-repo" );
+        tmpDir.mkdirs();
+
+        // TODO: configure manually, test the property loader elsewhere
+        Properties properties = new Properties();
+        properties.load( getClass().getResourceAsStream( 
"/unit/proxy-test/maven-proxy-complete.conf" ) );
+        properties.setProperty( "repo.local.store", tmpDir.getAbsolutePath() );
+        File tempFile = File.createTempFile( "test", "tmp" );
+        tempFile.deleteOnExit();
+        properties.store( new FileOutputStream( tempFile ), "" );
+
+        action.setConfigFile( tempFile.getAbsolutePath() );
+        action.setProxyManager( proxyManager );
+
+        String result = action.execute();
+        FileInputStream fileStream = action.getArtifactStream();
+
+        assertEquals( "proxy error", action.SUCCESS, result );
+        assertNotNull( "inputstream not set", fileStream );
+        assertNotNull( "cached file not set", action.getCachedFile() );
+        assertTrue( "proxy error", cachedFile.getPath().equals( 
action.getCachedFile().getPath() ) );
+    }
+}

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/RepositoryProxyActionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/RepositoryProxyActionTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/HttpServletRequestStub.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/HttpServletRequestStub.java?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/HttpServletRequestStub.java
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/HttpServletRequestStub.java
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,154 @@
+package org.apache.maven.repository.proxy.web.action.test.stub;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.security.Principal;
+import java.util.Enumeration;
+
+public class HttpServletRequestStub
+    extends ServletRequestStub
+    implements HttpServletRequest
+{
+
+    public String getAuthType()
+    {
+        return null;
+    }
+
+    public String getContextPath()
+    {
+        return "/location1/location2/location3";
+    }
+
+    public Cookie[] getCookies()
+    {
+        return null;
+    }
+
+    public long getDateHeader( String name )
+    {
+        return -1;
+    }
+
+    public String getHeader( String name )
+    {
+        return null;
+    }
+
+    public Enumeration getHeaderNames()
+    {
+        return null;
+    }
+
+    public Enumeration getHeaders( String name )
+    {
+        return null;
+    }
+
+    public int getIntHeader( String name )
+    {
+        return -1;
+    }
+
+    public String getMethod()
+    {
+        return null;
+    }
+
+    public String getPathInfo()
+    {
+        return null;
+    }
+
+    public String getPathTranslated()
+    {
+        return null;
+    }
+
+    public String getQueryString()
+    {
+        return null;
+    }
+
+    public String getRemoteUser()
+    {
+        return null;
+    }
+
+    public String getRequestedSessionId()
+    {
+        return null;
+    }
+
+    public String getRequestURI()
+    {
+        return "/projectname/repository/org/sometest/artifact-0.0.jar";
+    }
+
+    public StringBuffer getRequestURL()
+    {
+        return null;
+    }
+
+    public String getServletPath()
+    {
+        return "/repository/org/sometest/artifact-0.0.jar";
+    }
+
+    public HttpSession getSession()
+    {
+        return null;
+    }
+
+    public HttpSession getSession( boolean create )
+    {
+        return null;
+    }
+
+    public Principal getUserPrincipal()
+    {
+        return null;
+    }
+
+    public boolean isRequestedSessionIdFromCookie()
+    {
+        return false;
+    }
+
+    public boolean isRequestedSessionIdFromUrl()
+    {
+        return false;
+    }
+
+    public boolean isRequestedSessionIdFromURL()
+    {
+        return false;
+    }
+
+    public boolean isRequestedSessionIdValid()
+    {
+        return false;
+    }
+
+    public boolean isUserInRole( String role )
+    {
+        return false;
+    }
+}

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/HttpServletRequestStub.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/HttpServletRequestStub.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ProxyManagerStub.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ProxyManagerStub.java?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ProxyManagerStub.java
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ProxyManagerStub.java
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,58 @@
+package org.apache.maven.repository.proxy.web.action.test.stub;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.repository.proxy.ProxyManager;
+import org.apache.maven.repository.proxy.configuration.ProxyConfiguration;
+
+import java.io.File;
+
+public class ProxyManagerStub
+    implements ProxyManager
+{
+    String baseDir;
+
+    public ProxyManagerStub( String base )
+    {
+        baseDir = base;
+    }
+
+    public File get( String requestFile )
+    {
+        return new File( baseDir, "proxy-cache/test-0.0.jar" );
+    }
+
+    public File getRemoteFile( String reqFile )
+    {
+        return new File( baseDir, "proxy-chache/test-0.0.jar" );
+    }
+
+    public void setConfiguration( ProxyConfiguration config )
+    {
+        // do nothing
+    }
+
+    public ProxyConfiguration getConfiguration()
+    {
+        return null;
+    }
+
+    public File getAlways( String name )
+    {
+        return null;
+    }
+}

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ProxyManagerStub.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ProxyManagerStub.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ServletRequestStub.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ServletRequestStub.java?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ServletRequestStub.java
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ServletRequestStub.java
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,181 @@
+package org.apache.maven.repository.proxy.web.action.test.stub;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 javax.servlet.RequestDispatcher;
+import javax.servlet.ServletInputStream;
+import javax.servlet.ServletRequest;
+import java.io.BufferedReader;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+public class ServletRequestStub
+    implements ServletRequest
+{
+
+    public Object getAttribute( String key )
+    {
+        return null;
+    }
+
+    public Enumeration getAttributeNames()
+    {
+        return null;
+    }
+
+    public String getCharacterEncoding()
+    {
+        return null;
+    }
+
+    public int getContentLength()
+    {
+        return -1;
+    }
+
+    public int getRemotePort()
+    {
+        return -1;
+    }
+
+    public int getLocalPort()
+    {
+        return -1;
+    }
+
+    public String getLocalAddr()
+    {
+        return null;
+    }
+
+    public String getLocalName()
+    {
+        return null;
+    }
+
+    public String getContentType()
+    {
+        return null;
+    }
+
+    public ServletInputStream getInputStream()
+    {
+        return null;
+    }
+
+    public Locale getLocale()
+    {
+        return null;
+    }
+
+    public Enumeration getLocales()
+    {
+        return null;
+    }
+
+    public String getParameter( String name )
+    {
+        return null;
+    }
+
+    public Map getParameterMap()
+    {
+        HashMap parameterMap = new HashMap();
+
+        parameterMap.put( "key1", "value1" );
+        parameterMap.put( "key2", "value2" );
+
+        return parameterMap;
+    }
+
+    public Enumeration getParameterNames()
+    {
+        return null;
+    }
+
+    public String[] getParameterValues( String name )
+    {
+        return null;
+    }
+
+    public String getProtocol()
+    {
+        return null;
+    }
+
+    public BufferedReader getReader()
+    {
+        return null;
+    }
+
+    public String getRealPath( String path )
+    {
+        return null;
+    }
+
+    public String getRemoteAddr()
+    {
+        return null;
+    }
+
+    public String getRemoteHost()
+    {
+        return null;
+    }
+
+    public RequestDispatcher getRequestDispatcher( String path )
+    {
+        return null;
+    }
+
+    public String getScheme()
+    {
+        return null;
+    }
+
+    public String getServerName()
+    {
+        return null;
+    }
+
+    public int getServerPort()
+    {
+        return -1;
+    }
+
+    public boolean isSecure()
+    {
+        return false;
+    }
+
+    public void removeAttribute( String name )
+    {
+
+    }
+
+    public void setAttribute( String name, Object value )
+    {
+
+    }
+
+    public void setCharacterEncoding( String env )
+    {
+
+    }
+}

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ServletRequestStub.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/action/test/stub/ServletRequestStub.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/actionmapper/test/RepositoryProxyActionMapperTest.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/actionmapper/test/RepositoryProxyActionMapperTest.java?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/actionmapper/test/RepositoryProxyActionMapperTest.java
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/actionmapper/test/RepositoryProxyActionMapperTest.java
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,77 @@
+package org.apache.maven.repository.proxy.web.actionmapper.test;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 com.opensymphony.webwork.dispatcher.mapper.ActionMapping;
+import 
org.apache.maven.repository.proxy.web.action.test.stub.HttpServletRequestStub;
+import 
org.apache.maven.repository.proxy.web.actionmapper.RepositoryProxyActionMapper;
+import org.codehaus.plexus.PlexusTestCase;
+
+public class RepositoryProxyActionMapperTest
+    extends PlexusTestCase
+{
+    RepositoryProxyActionMapper actionMapper;
+
+    public void setUp()
+        throws Exception
+    {
+        actionMapper = new RepositoryProxyActionMapper();
+    }
+
+    // TODO: uncomment once we know how to make the default action mapper work 
using stubs
+    //    public void testDefaultActionMapping()
+    //    throws Exception
+    //    {
+    //        ActionMapping mapping = actionMapper.getMapping( new 
DefaultActionMapperRequestStub() );
+    //
+    //        String expectedNamespace = "test";
+    //        String expectedName = "test";
+    //
+    //        assertNotNull( "ActionMapping is null", mapping );
+    //        assertNotNull( "namespace is null", mapping.getNamespace() );
+    //        assertNotNull( "name is null", mapping.getName() );
+    //        assertTrue( "invalid namespace: " + mapping.getNamespace(), 
mapping.getNamespace().equals( expectedNamespace ) );
+    //        assertTrue( "invalid name: " + mapping.getName(), 
mapping.getName().equals( expectedName ) );
+    //    }
+
+    public void testRepositoryProxyActionMapping()
+        throws Exception
+    {
+        String testDir = getBasedir() + "/target/test-classes/unit/proxy-test";
+
+        actionMapper.setConfigfile( testDir + "/maven-proxy-complete.conf" );
+
+        ActionMapping mapping = actionMapper.getMapping( new 
HttpServletRequestStub() );
+        String expectedName = "proxy";
+        String expectedFile = "org/sometest/artifact-0.0.jar";
+
+        assertNotNull( "ActionMapping is null", mapping );
+        assertNotNull( "name is null", mapping.getName() );
+
+        String mappingName = mapping.getName();
+        String requestedFile = (String) mapping.getParams().get( 
"requestedFile" );
+
+        assertTrue( "invalid name: " + mappingName, mappingName.equals( 
expectedName ) );
+        assertTrue( "invalid parameter: " + requestedFile, 
requestedFile.equals( expectedFile ) );
+    }
+
+    public void tearDown()
+        throws Exception
+    {
+        // do nothing
+    }
+}

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/actionmapper/test/RepositoryProxyActionMapperTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/java/org/apache/maven/repository/proxy/web/actionmapper/test/RepositoryProxyActionMapperTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/repository-manager/trunk/maven-repository-webapp/src/test/resources/unit/proxy-test/maven-proxy-complete.conf
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/test/resources/unit/proxy-test/maven-proxy-complete.conf?rev=419527&view=auto
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/test/resources/unit/proxy-test/maven-proxy-complete.conf
 (added)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/test/resources/unit/proxy-test/maven-proxy-complete.conf
 Thu Jul  6 04:41:26 2006
@@ -0,0 +1,145 @@
+################ GLOBAL SETTINGS
+# This is where maven-proxy stores files it has downloaded
+#repo.local.store=/tmp/proxy-cache
+
+#The port to listen on - not used if loaded as a webapp
+port=9999
+
+#This is the base area that all files are loaded from. While it is possible to 
leave this blank, this behaviour
+#is deprecated and will be disabled in version 2.0.  There are too many 
namespace conflicts caused by not using
+#a prefix.
+#The repository will be shown at http://localhost:9999/repository/
+#for the .war loaded into a webapp server, the default prefix is "repository" 
(edit the web.xml to change)
+# As maven doesn't like a trailing slash, this address shouldn't have one 
either.
+prefix=repository
+
+#This is the simple date format used to display the last modified date while 
browsing the repository.
+lastModifiedDateFormat=yyyy/MM/dd HH:mm:ss
+
+################ SNAPSHOT HANDLING
+#If you want the proxy to look for newer snapshots, set to true
+snapshot.update=true
+
+################ M2 METADATA HANDLING
+#If you want the proxy to prevent looking for newer metadata, set to false 
(default is true)
+#metadata.update=false
+
+################ M2 POM HANDLING
+#If you want the proxy to look for newer POMs, set to true (default is false)
+pom.update=true
+
+################ PROMOTION HANDLING
+# ***** NOT CURRENTLY IMPLEMENTED *****
+#Promotion describes the process by which new artifacts are loaded to global 
maven-proxy repository.  It
+# is designed to be used by "higher security installations" that do not want 
to acquire artifacts from
+# remote repositories without approval.
+#
+#If promotion handling is enabled, then the proxy will not download remote 
artifacts without permission
+# (local repositories with copy=false are considered to be local)
+#
+#Permission to download is granted via the Promotion menu which will be enabled
+#  when promotion handling is enabled.
+#
+#If promotion is false, artifacts are sourced from any repository as per 
normal.
+#
+#Promotion and snapshots:  If promotion is enabled, snapshots are not 
downloadable.  The concept of using
+# a snapshot in a production build (which is primarily what promotion is for) 
is counterintuitive.
+##
+promotion=false
+
+################ WEB INTERFACE
+# This defines the absolute URL the server should use to identify itself.
+# This can often be determined automatically, but we recommend you specify
+# it explicitly to prevent problems during startup.
+# The prefix will be added to this for the actual repository
+# i.e. proxy available at http://localhost:9999/, repository at 
http://localhost:9999/repository
+serverName=http://localhost:9999
+
+#If true, the repository can be browsed
+browsable=true
+
+#If true, the repository can be searched
+searchable=true
+
+#Not currently implemented. Will allow webdav access to the repository at some 
point.
+webdav=true
+
+#Stylesheet - if configured, will override the default stylesheet shipped with 
maven-proxy - absolute URLs only
+#eg.  /maven-proxy/style.css, http://www.example.com/style.css
+stylesheet=/maven-proxy/style.css
+
+#bgColor / bgColorHighlight are replaced in the built in stylesheet to produce 
a simple color scheme.
+#If a stylesheet is set, these are not used.
+bgColor=#14B
+bgColorHighlight=#94B
+
+#rowColor / rowColorHighlight are replaced in the built in stylesheet to 
produce a simple color scheme.
+#If a stylesheet is set, these are not used.
+rowColor=#CCF
+rowColorHighlight=#DDF
+
+
+################ PROXIES
+#This is just a hack, it should auto discover them
+#proxy.list=one,two,three
+proxy.list=
+
+#Unauthenticated proxy
+#proxy.one.host=proxy1.example.com
+#proxy.one.port=3128
+
+#Authenticated proxy
+#proxy.two.host=proxy2.example.org
+#proxy.two.port=80
+#proxy.two.username=username2
+#proxy.two.password=password2
+
+#Authenticated proxy
+#proxy.three.host=proxy3.example.net
+#proxy.three.port=3129
+#proxy.three.username=username3
+#proxy.three.password=password3
+
+
+################# REPOSITORIES
+#This is not just a hack, it specifies the order repositories should be checked
+#Note that the proxy adds a "/" which is why the urls aren't suffixed with a 
"/"
+repo.list=www-ibiblio-org
+
+#local-store
+# The local store represents a location that local jars you host can be 
located.
+# This could also be achieved by having a local http repository, but this is 
less cumbersome
+repo.local-repo.url=file://target
+repo.local-repo.description=Super Secret Custom Repository
+#If copy is true, jars are copied from the store to the proxy-repo. Only 
configurable for file:/// repos
+repo.local-repo.copy=false
+#If hardfail is true, any unexpected errors from the repository will cause
+#the client download to fail (typically with a 500 error)
+repo.local-repo.hardfail=true
+#Don't cache a file repository
+repo.local-repo.cache.period=0
+
+
+#www.ibiblio.org
+repo.www-ibiblio-org.url=http://www.ibiblio.org/maven2
+repo.www-ibiblio-org.description=www.ibiblio.org
+repo.www-ibiblio-org.proxy=
+repo.www-ibiblio-org.hardfail=true
+#Cache this repository for 1 hour
+repo.www-ibiblio-org.cache.period=3600
+repo.www-ibiblio-org.cache.failures=true
+
+#dist.codehaus.org
+repo.dist-codehaus-org.url=http://dist.codehaus.org
+repo.dist-codehaus-org.proxy=two
+repo.dist-codehaus-org.hardfail=false
+repo.dist-codehaus-org.cache.period=3600
+repo.dist-codehaus-org.cache.failures=true
+
+#private.example.com
+repo.private-example-com.url=http://private.example.com/internal
+repo.private-example-com.description=Commercial In Confidence Repository
+repo.private-example-com.username=username1
+repo.private-example-com.password=password1
+repo.private-example-com.proxy=three
+repo.private-example-com.cache.period=3600

Modified: maven/repository-manager/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/pom.xml?rev=419527&r1=419526&r2=419527&view=diff
==============================================================================
--- maven/repository-manager/trunk/pom.xml (original)
+++ maven/repository-manager/trunk/pom.xml Thu Jul  6 04:41:26 2006
@@ -211,6 +211,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.maven.repository</groupId>
+        <artifactId>maven-repository-proxy</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.repository</groupId>
         <artifactId>maven-repository-utils</artifactId>
         <version>${pom.version}</version>
       </dependency>


Reply via email to