You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2007/10/06 07:20:50 UTC

svn commit: r582454 - in /maven/sandbox/trunk/archetypeng: archetypeng-common/src/main/java/org/apache/maven/archetype/ archetypeng-common/src/main/java/org/apache/maven/archetype/source/ archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/

Author: jvanzyl
Date: Fri Oct  5 22:20:49 2007
New Revision: 582454

URL: http://svn.apache.org/viewvc?rev=582454&view=rev
Log:
o creating a descriptor of a source with parameters for configuring the retrieval of archetypes. 

Added:
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSourceDescriptor.java   (with props)
Modified:
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/DefaultArchetyper.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java
    maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/DefaultArchetyper.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/DefaultArchetyper.java?rev=582454&r1=582453&r2=582454&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/DefaultArchetyper.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/DefaultArchetyper.java Fri Oct  5 22:20:49 2007
@@ -3,9 +3,12 @@
 import org.apache.maven.archetype.creator.ArchetypeCreator;
 import org.apache.maven.archetype.generator.ArchetypeGenerator;
 import org.apache.maven.archetype.source.ArchetypeDataSource;
+import org.apache.maven.archetype.source.ArchetypeDataSourceException;
 
 import java.util.Collection;
+import java.util.Iterator;
 import java.util.Map;
+import java.util.Properties;
 
 /**
  * @plexus.component
@@ -41,6 +44,12 @@
         return result;
     }
 
+    public Collection getArchetypes( ArchetypeDataSource source, Properties sourceConfiguration )
+        throws ArchetypeDataSourceException
+    {
+        return source.getArchetypes( sourceConfiguration );
+    }
+
     public Collection getArchetypeDataSources()
     {
         return archetypeSources.values();
@@ -50,4 +59,25 @@
     {
         return (ArchetypeDataSource) archetypeSources.get(  roleHint );
     }
+
+    public Properties getArchetypeDataSourceProperties( String sourceRoleHint,
+                                                        Properties archetypeCatalogProperties )
+    {
+        Properties p = new Properties();
+
+        for ( Iterator i = archetypeCatalogProperties.keySet().iterator(); i.hasNext(); )
+        {
+            String key = (String) i.next();
+
+            if ( key.startsWith( sourceRoleHint ) )
+            {
+                String k = key.substring( sourceRoleHint.length() + 1 );
+
+                p.setProperty( k, archetypeCatalogProperties.getProperty( key ) );
+            }
+        }
+
+        return p;
+    }
+
 }

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java?rev=582454&r1=582453&r2=582454&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java Fri Oct  5 22:20:49 2007
@@ -16,12 +16,13 @@
  */
 public interface ArchetypeDataSource
 {
-
-    String ROLE = ArchetypeDataSource.class.getName(  );
+    String ROLE = ArchetypeDataSource.class.getName();
 
     List getArchetypes( Properties properties )
         throws ArchetypeDataSourceException;
 
-    public void updateCatalog( Properties properties, Archetype archetype, Settings settings )
+    void updateCatalog( Properties properties, Archetype archetype, Settings settings )
         throws ArchetypeDataSourceException;
+
+    ArchetypeDataSourceDescriptor getDescriptor();
 }

Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSourceDescriptor.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSourceDescriptor.java?rev=582454&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSourceDescriptor.java (added)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSourceDescriptor.java Fri Oct  5 22:20:49 2007
@@ -0,0 +1,71 @@
+package org.apache.maven.archetype.source;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/** @author Jason van Zyl */
+public class ArchetypeDataSourceDescriptor
+{
+    private List parameters;
+
+    public void addParameter( String name, Class type, String defaultValue, String description )
+    {
+        addParameter( new Parameter( name, type, defaultValue, description ) );
+    }
+
+    public void addParameter( Parameter parameter )
+    {
+        if ( parameters == null )
+        {
+            parameters = new ArrayList();
+        }
+
+        parameters.add( parameter );
+    }
+
+    public class Parameter
+    {
+        public Parameter( String name,
+                          Class type,
+                          String defaultValue,
+                          String description )
+        {
+            this.name = name;
+
+            this.type = type;
+
+            this.defaultValue = defaultValue;
+
+            this.description = description;
+
+        }
+
+        private String name;
+
+        private Class type;
+
+        private String defaultValue;
+
+        private String description;
+
+        public Class getType()
+        {
+            return type;
+        }
+
+        public String getDefaultValue()
+        {
+            return defaultValue;
+        }
+
+        public String getName()
+        {
+            return name;
+        }
+
+        public String getDescription()
+        {
+            return description;
+        }
+    }
+}

Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSourceDescriptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSourceDescriptor.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java?rev=582454&r1=582453&r2=582454&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java Fri Oct  5 22:20:49 2007
@@ -28,12 +28,20 @@
     extends AbstractLogEnabled
     implements ArchetypeDataSource
 {
-
     public static String ARCHETYPE_CATALOG_PROPERTY = "file";
+
     public static String ARCHETYPE_CATALOG_FILENAME = "archetype-catalog.xml";
+
     private ArchetypeCatalogXpp3Reader catalogReader = new ArchetypeCatalogXpp3Reader(  );
+
     private ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer(  );
 
+    private File USER_HOME = new File( System.getProperty( "user.home" ) );
+
+    private File MAVEN_CONFIGURATION = new File( USER_HOME, ".m2" );
+
+    private File DEFAULT_ARCHETYPE_CATALOG = new File( MAVEN_CONFIGURATION, ARCHETYPE_CATALOG_FILENAME );
+
     public List getArchetypes( Properties properties )
         throws ArchetypeDataSourceException
     {
@@ -176,5 +184,14 @@
         {
             IOUtil.close( reader );
         }
+    }
+
+    public ArchetypeDataSourceDescriptor getDescriptor()
+    {
+        ArchetypeDataSourceDescriptor d = new ArchetypeDataSourceDescriptor();
+
+        d.addParameter( ARCHETYPE_CATALOG_PROPERTY, String.class, DEFAULT_ARCHETYPE_CATALOG.getAbsolutePath(), "The repository URL where the archetype catalog resides." );
+
+        return d;
     }
 }

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java?rev=582454&r1=582453&r2=582454&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java Fri Oct  5 22:20:49 2007
@@ -177,4 +177,12 @@
 //        }
 //    }
 
+    public ArchetypeDataSourceDescriptor getDescriptor()
+    {
+        ArchetypeDataSourceDescriptor d = new ArchetypeDataSourceDescriptor();
+
+        d.addParameter( REPOSITORY_PROPERTY, String.class, "http://repo1.maven.org/maven2", "The repository URL where the archetype catalog resides." );
+
+        return d;
+    }
 }

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java?rev=582454&r1=582453&r2=582454&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java Fri Oct  5 22:20:49 2007
@@ -21,12 +21,14 @@
 public class WikiArchetypeDataSource
     implements ArchetypeDataSource
 {
+    public static String URL = "url";
+
     private static String DEFAULT_ARCHETYPE_INVENTORY_PAGE = "http://docs.codehaus.org/pages/viewpagesrc.action?pageId=48400";
 
     public List getArchetypes( Properties properties )
         throws ArchetypeDataSourceException
     {
-        String url = properties.getProperty( "url" );
+        String url = properties.getProperty( URL );
 
         if ( url == null )
         {
@@ -104,5 +106,14 @@
         throws ArchetypeDataSourceException
     {
         throw new ArchetypeDataSourceException( "Not supported yet." );
+    }
+
+    public ArchetypeDataSourceDescriptor getDescriptor()
+    {
+        ArchetypeDataSourceDescriptor d = new ArchetypeDataSourceDescriptor();
+
+        d.addParameter( URL, String.class, DEFAULT_ARCHETYPE_INVENTORY_PAGE, "The URL of the Wiki page which contains the Archetype information." );
+
+        return d;
     }
 }

Modified: maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java?rev=582454&r1=582453&r2=582454&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java Fri Oct  5 22:20:49 2007
@@ -40,7 +40,6 @@
 import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -126,7 +125,8 @@
                         {
                             ArchetypeDataSource source = (ArchetypeDataSource) archetypeSources.get( sourceRoleHint );
 
-                            archetypes.addAll( source.getArchetypes( getArchetypeSourceProperties( sourceRoleHint, archetypeCatalogProperties ) ) );
+                            archetypes.addAll(
+                                source.getArchetypes( getArchetypeDataSourceProperties( sourceRoleHint, archetypeCatalogProperties ) ) );
                         }
                         catch ( ArchetypeDataSourceException e )
                         {
@@ -200,8 +200,8 @@
         }
     }
 
-    private Properties getArchetypeSourceProperties( String sourceRoleHint,
-                                                     Properties archetypeCatalogProperties )
+    private Properties getArchetypeDataSourceProperties( String sourceRoleHint,
+                                                         Properties archetypeCatalogProperties )
     {
         Properties p = new Properties();