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();