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/19 05:15:30 UTC
svn commit: r586244 - in
/maven/sandbox/trunk/archetypeng/archetypeng-common: ./
src/main/java/org/apache/maven/archetype/source/
src/test/java/org/apache/maven/archetype/source/
Author: jvanzyl
Date: Thu Oct 18 20:15:29 2007
New Revision: 586244
URL: http://svn.apache.org/viewvc?rev=586244&view=rev
Log:
o adding a sink for the catalog so that I can read from any source and create a local catalog that can be used a lot faster then then trying to hit the wiki. We could also couple this with a method to pull down all the archetypes and their deps as well so someone could work completely off line.
Added:
maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSink.java (with props)
maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSinkException.java (with props)
maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSink.java (with props)
maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/source/
maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/source/CatalogArchetypeDataSinkTest.java (with props)
Modified:
maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml
Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml?rev=586244&r1=586243&r2=586244&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml Thu Oct 18 20:15:29 2007
@@ -111,6 +111,10 @@
<artifactId>commons-collections</artifactId>
</dependency>
<dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-invoker</artifactId>
<version>2.0.6</version>
Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSink.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSink.java?rev=586244&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSink.java (added)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSink.java Thu Oct 18 20:15:29 2007
@@ -0,0 +1,11 @@
+package org.apache.maven.archetype.source;
+
+import java.io.Writer;
+import java.util.List;
+
+/** @author Jason van Zyl */
+public interface ArchetypeDataSink
+{
+ void putArchetypes( List archetypes, Writer writer )
+ throws ArchetypeDataSinkException;
+}
Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSink.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSink.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSinkException.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSinkException.java?rev=586244&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSinkException.java (added)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSinkException.java Thu Oct 18 20:15:29 2007
@@ -0,0 +1,22 @@
+package org.apache.maven.archetype.source;
+
+/** @author Jason van Zyl */
+public class ArchetypeDataSinkException
+ extends Exception
+{
+ public ArchetypeDataSinkException( String s )
+ {
+ super( s );
+ }
+
+ public ArchetypeDataSinkException( String s,
+ Throwable throwable )
+ {
+ super( s, throwable );
+ }
+
+ public ArchetypeDataSinkException( Throwable throwable )
+ {
+ super( throwable );
+ }
+}
Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSinkException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSinkException.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSink.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSink.java?rev=586244&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSink.java (added)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSink.java Thu Oct 18 20:15:29 2007
@@ -0,0 +1,47 @@
+package org.apache.maven.archetype.source;
+
+import org.apache.maven.archetype.catalog.Archetype;
+import org.apache.maven.archetype.catalog.ArchetypeCatalog;
+import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.IOUtil;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Iterator;
+import java.util.List;
+
+/** @author Jason van Zyl */
+public class CatalogArchetypeDataSink
+ extends AbstractLogEnabled
+ implements ArchetypeDataSink
+{
+ private ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
+
+ public void putArchetypes( List archetypes,
+ Writer writer )
+ throws ArchetypeDataSinkException
+ {
+ ArchetypeCatalog catalog = new ArchetypeCatalog();
+
+ for ( Iterator i = archetypes.iterator(); i.hasNext(); )
+ {
+ Archetype archetype = (Archetype) i.next();
+
+ catalog.addArchetype( archetype );
+ }
+
+ try
+ {
+ catalogWriter.write( writer, catalog );
+ }
+ catch ( IOException e )
+ {
+ throw new ArchetypeDataSinkException( "Error writing archetype catalog.", e );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
+ }
+}
Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSink.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSink.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/source/CatalogArchetypeDataSinkTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/source/CatalogArchetypeDataSinkTest.java?rev=586244&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/source/CatalogArchetypeDataSinkTest.java (added)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/source/CatalogArchetypeDataSinkTest.java Thu Oct 18 20:15:29 2007
@@ -0,0 +1,61 @@
+package org.apache.maven.archetype.source;
+
+import org.apache.maven.archetype.catalog.Archetype;
+import org.apache.maven.archetype.catalog.ArchetypeCatalog;
+import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Reader;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.List;
+
+/** @author Jason van Zyl */
+public class CatalogArchetypeDataSinkTest
+ extends PlexusTestCase
+{
+ public void testCatalogArchetypeDataSink()
+ throws Exception
+ {
+ Archetype a0 = new Archetype();
+
+ a0.setGroupId( "groupId" );
+
+ a0.setArtifactId( "artifactId" );
+
+ a0.setVersion( "1.0" );
+
+ a0.setDescription( "description" );
+
+ a0.setRepository( "http://magicbunny.com/maven2" );
+
+ List archetypes = new ArrayList();
+
+ archetypes.add( a0 );
+
+ ArchetypeDataSink sink = new CatalogArchetypeDataSink();
+
+ Writer writer = new StringWriter();
+
+ sink.putArchetypes( archetypes, writer );
+
+ StringReader reader = new StringReader( writer.toString() );
+
+ ArchetypeCatalogXpp3Reader catalogReader = new ArchetypeCatalogXpp3Reader();
+
+ ArchetypeCatalog catalog = catalogReader.read( reader );
+
+ Archetype a1 = (Archetype) catalog.getArchetypes().get( 0 );
+
+ assertEquals( "groupId", a1.getGroupId() );
+
+ assertEquals( "artifactId", a1.getArtifactId() );
+
+ assertEquals( "1.0", a1.getVersion() );
+
+ assertEquals( "description", a1.getDescription() );
+
+ assertEquals( "http://magicbunny.com/maven2", a1.getRepository() );
+ }
+}
Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/source/CatalogArchetypeDataSinkTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/source/CatalogArchetypeDataSinkTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision