You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/04/13 17:58:56 UTC

svn commit: r528539 - in /maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration: pom.xml src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java src/main/mdo/configuration.mdo

Author: joakime
Date: Fri Apr 13 08:58:55 2007
New Revision: 528539

URL: http://svn.apache.org/viewvc?view=rev&rev=528539
Log:
Reorganization of model for policy maps and archiva-policies

Modified:
    maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/pom.xml
    maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java
    maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo

Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/pom.xml?view=diff&rev=528539&r1=528538&r2=528539
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/pom.xml (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/pom.xml Fri Apr 13 08:58:55 2007
@@ -30,6 +30,15 @@
   <name>Archiva Base :: Configuration</name>
   <dependencies>
     <dependency>
+      <groupId>org.apache.maven.archiva</groupId>
+      <artifactId>archiva-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.archiva</groupId>
+      <artifactId>archiva-policies</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-component-api</artifactId>
     </dependency>

Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java?view=diff&rev=528539&r1=528538&r2=528539
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/MavenProxyPropertyLoader.java Fri Apr 13 08:58:55 2007
@@ -20,11 +20,12 @@
  */
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.common.utils.PathUtil;
+import org.apache.maven.archiva.policies.ReleasesPolicy;
+import org.apache.maven.archiva.policies.SnapshotsPolicy;
 
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.MalformedURLException;
 import java.util.Enumeration;
 import java.util.Properties;
 import java.util.StringTokenizer;
@@ -41,13 +42,14 @@
 
     private static final String REPO_LIST = "repo.list";
 
-    public void load( Properties props, Configuration configuration ) throws InvalidConfigurationException
+    public void load( Properties props, Configuration configuration )
+        throws InvalidConfigurationException
     {
         // set up the managed repository
         String localCachePath = getMandatoryProperty( props, REPO_LOCAL_STORE );
 
         RepositoryConfiguration config = new RepositoryConfiguration();
-        config.setUrl( toURL( localCachePath ) );
+        config.setUrl( PathUtil.toUrl( localCachePath ) );
         config.setName( "Imported Maven-Proxy Cache" );
         config.setId( "maven-proxy" );
         configuration.addRepository( config );
@@ -97,31 +99,20 @@
             repository.setIndexed( false );
             repository.setReleases( true );
             repository.setSnapshots( false );
-            
+
             configuration.addRepository( repository );
 
-            RepositoryProxyConnectorConfiguration proxyConnector = new RepositoryProxyConnectorConfiguration();
+            ProxyConnectorConfiguration proxyConnector = new ProxyConnectorConfiguration();
             proxyConnector.setSourceRepoId( "maven-proxy" );
             proxyConnector.setTargetRepoId( key );
             proxyConnector.setProxyId( proxyKey );
             // TODO: convert cachePeriod to closest "daily" or "hourly"
-            proxyConnector.setSnapshotsPolicy( "daily" );
-            proxyConnector.setReleasesPolicy( "never" );
-            
-            configuration.addProxyConnector( proxyConnector );
-        }
-    }
+            proxyConnector.addPolicy( ProxyConnectorConfiguration.POLICY_SNAPSHOTS, 
+                                      SnapshotsPolicy.DAILY );
+            proxyConnector.addPolicy( ProxyConnectorConfiguration.POLICY_RELEASES, 
+                                      ReleasesPolicy.IGNORED );
 
-    private String toURL( String path )
-    {
-        File file = new File( path );
-        try
-        {
-            return file.toURL().toExternalForm();
-        }
-        catch ( MalformedURLException e )
-        {
-            return "file://" + StringUtils.replaceChars( file.getAbsolutePath(), '\\', '/' );
+            configuration.addProxyConnector( proxyConnector );
         }
     }
 
@@ -142,14 +133,16 @@
         return result;
     }
 
-    public void load( InputStream is, Configuration configuration ) throws IOException, InvalidConfigurationException
+    public void load( InputStream is, Configuration configuration )
+        throws IOException, InvalidConfigurationException
     {
         Properties props = new Properties();
         props.load( is );
         load( props, configuration );
     }
 
-    private String getMandatoryProperty( Properties props, String key ) throws InvalidConfigurationException
+    private String getMandatoryProperty( Properties props, String key )
+        throws InvalidConfigurationException
     {
         String value = props.getProperty( key );
 

Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo?view=diff&rev=528539&r1=528538&r2=528539
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo Fri Apr 13 08:58:55 2007
@@ -47,7 +47,7 @@
           <name>proxyConnectors</name>
           <version>1.0.0+</version>
           <association>
-            <type>RepositoryProxyConnectorConfiguration</type>
+            <type>ProxyConnectorConfiguration</type>
             <multiplicity>*</multiplicity>
           </association>
           <description>The list of proxy connectors for this archiva instance.</description>
@@ -57,7 +57,7 @@
           <name>syncConnectors</name>
           <version>1.0.0+</version>
           <association>
-            <type>RepositorySyncConnectorConfiguration</type>
+            <type>SyncConnectorConfiguration</type>
             <multiplicity>*</multiplicity>
           </association>
           <description>The list of sync connectors for this archiva instance.</description>
@@ -307,76 +307,97 @@
             The list of whitelisted patterns for this connector.
           </description>
         </field>
+        <field>
+          <name>policies</name>
+          <version>1.0.0+</version>
+          <type>Properties</type>
+          <description>Policy configuration for the connector.</description>
+          <association xml.mapStyle="inline">
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>        
+        <field>
+          <name>properties</name>
+          <version>1.0.0+</version>
+          <type>Properties</type>
+          <description>Configuration for the connector.</description>
+          <association xml.mapStyle="inline">
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
       </fields>
+      <codeSegments>
+        <codeSegment>
+          <version>1.0.0+</version>
+          <code><![CDATA[
+    /**
+     * Obtain a specific policy from the underlying connector.
+     * 
+     * @param policyId the policy id to fetch.
+     * @param defaultValue the default value for the policy id.
+     * @return the configured policy value (or default value if not found).
+     */
+    public String getPolicy( String policyId, String defaultValue )
+    {
+        if ( this.getPolicies() == null )
+        {
+            return null;
+        }
+
+        return this.getPolicies().getProperty( policyId, defaultValue );
+    }          
+          ]]></code>
+        </codeSegment>
+      </codeSegments>
     </class>
     
     <class>
       <superClass>AbstractRepositoryConnectorConfiguration</superClass>
-      <name>RepositoryProxyConnectorConfiguration</name>
+      <name>ProxyConnectorConfiguration</name>
       <version>1.0.0+</version>
       <fields>
-        <field>
-          <name>snapshotsPolicy</name>
-          <version>1.0.0+</version>
-          <type>String</type>
-          <defaultValue>disabled</defaultValue>
-          <description>
-            <![CDATA[
-            <p>
-            The policy for snapshots, one of the following:
-              {@link org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy#DISABLED disabled},
-              {@link org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy#DAILY daily},
-              {@link org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy#HOURLY hourly},
-              {@link org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy#ONCE once}
-            </p>
+      </fields>
+      <codeSegments>
+        <codeSegment>
+          <version>1.0.0+</version>
+          <code><![CDATA[
+    /**
+     * The policy key {@link #getPolicies()} for snapshot handling.
+     * See {@link org.apache.maven.archiva.policies.SnapshotsPolicy} 
+     * for details on potential values to this policy key.
+     */
+    public static final String POLICY_SNAPSHOTS = "snapshots";
 
-            @see org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy
-            ]]>
-          </description>
-        </field>
-        <field>
-          <name>releasesPolicy</name>
-          <version>1.0.0+</version>
-          <type>String</type>
-          <defaultValue>never</defaultValue>
-          <description>
-            <![CDATA[
-            <p>
-            The policy for releases, one of the following:
-              {@link org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy#DISABLED disabled},
-              {@link org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy#DAILY daily},
-              {@link org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy#HOURLY hourly},
-              {@link org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy#ONCE once}
-            </p>
+    /**
+     * The policy key {@link #getPolicies()} for releases handling.
+     * See {@link org.apache.maven.archiva.policies.ReleasesPolicy}
+     * for details on potential values to this policy key.
+     */
+    public static final String POLICY_RELEASES = "releases";
 
-            @see org.apache.maven.archiva.proxy.policy.ArtifactUpdatePolicy
-            ]]>
-          </description>
-        </field>
-        <field>
-          <name>checksumPolicy</name>
-          <version>1.0.0+</version>
-          <type>String</type>
-          <defaultValue>fail</defaultValue>
-          <description>
-            <![CDATA[
-            <p>
-            The policy for dealing with checksums, one of the following: 
-              {@link org.apache.maven.archiva.proxy.policy.ChecksumPolicy#FAIL fail}, 
-              {@link org.apache.maven.archiva.proxy.policy.ChecksumPolicy#FIX fix}, or
-              {@link org.apache.maven.archiva.proxy.policy.ChecksumPolicy#IGNORE ignore}
-            </p>
-            
-            @see org.apache.maven.archiva.proxy.policy.ChecksumPolicy
-            ]]>
-          </description>
-        </field>
-      </fields>
+    /**
+     * The policy key {@link #getPolicies()} for checksum handling.
+     * See {@link org.apache.maven.archiva.policies.ChecksumPolicy}
+     * for details on potential values to this policy key.
+     */
+    public static final String POLICY_CHECKSUM = "checksum";
+
+    /**
+     * The policy key {@link #getPolicies()} for cache-failures handling.
+     * See {@link org.apache.maven.archiva.policies.CachedFailuresPolicy}
+     * for details on potential values to this policy key.
+     */
+    public static final String POLICY_CACHE_FAILURES = "cache-failures";
+          ]]></code>
+        </codeSegment>
+      </codeSegments>
     </class>
     
     <class>
       <superClass>AbstractRepositoryConnectorConfiguration</superClass>
-      <name>RepositorySynchConnectorConfiguration</name>
+      <name>SyncConnectorConfiguration</name>
       <abstract>true</abstract>
       <version>1.0.0+</version>
       <fields>
@@ -393,16 +414,6 @@
           <type>String</type>
           <description>The type of synchronization to use.</description>
           <defaultValue>rsync</defaultValue>
-        </field>
-        <field>
-          <name>properties</name>
-          <version>1.0.0+</version>
-          <type>Properties</type>
-          <description>Configuration for the repository synchronization.</description>
-          <association xml.mapStyle="inline">
-            <type>String</type>
-            <multiplicity>*</multiplicity>
-          </association>
         </field>
       </fields>
     </class>