You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ra...@apache.org on 2007/10/14 15:47:13 UTC

svn commit: r584546 - in /maven/sandbox/trunk/archetypeng: archetype-old/src/test/repository/org/ archetype-old/src/test/repository/org/apache/ archetype-old/src/test/repository/org/apache/maven/ archetype-old/src/test/repository/org/apache/maven/arche...

Author: rafale
Date: Sun Oct 14 06:47:11 2007
New Revision: 584546

URL: http://svn.apache.org/viewvc?rev=584546&view=rev
Log:
Roundtrip test is now working

Added:
    maven/sandbox/trunk/archetypeng/archetype-old/src/test/repository/org/
    maven/sandbox/trunk/archetypeng/archetype-old/src/test/repository/org/apache/
    maven/sandbox/trunk/archetypeng/archetype-old/src/test/repository/org/apache/maven/
    maven/sandbox/trunk/archetypeng/archetype-old/src/test/repository/org/apache/maven/archetypes/
    maven/sandbox/trunk/archetypeng/archetype-old/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/
    maven/sandbox/trunk/archetypeng/archetype-old/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/
    maven/sandbox/trunk/archetypeng/archetype-old/src/test/repository/org/apache/maven/archetypes/maven-archetypes/
    maven/sandbox/trunk/archetypeng/archetype-old/src/test/repository/org/apache/maven/archetypes/maven-archetypes/1.0-alpha-1-SNAPSHOT/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/pom.xml   (with props)
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java   (with props)
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/apache/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/apache/maven/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/apache/maven/test/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/apache/maven/test/AppTest.java   (with props)
Removed:
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/projects/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-1/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-2/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-3/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-4/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-5/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-6/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-7/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-8/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-9/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-creation-1/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-creation-2/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-creation-3/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-creation-4/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-creation-5/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-creation-6/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-creation-7/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/configure-creation-8/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-1/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-10/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-2/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-3/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-4/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-5/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-6/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-7/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-8/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/select-9/
Modified:
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java?rev=584546&r1=584545&r2=584546&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java Sun Oct 14 06:47:11 2007
@@ -46,6 +46,7 @@
 import java.util.Arrays;
 import java.util.Properties;
 import org.apache.maven.archiver.MavenArchiveConfiguration;
+import org.codehaus.plexus.util.StringUtils;
 
 /** @author Jason van Zyl */
 public class ArchetyperRoundtripTest
@@ -60,7 +61,7 @@
 
         MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
 
-        ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(  ), "target/local-repo" ).toURI(  ).
+        ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(  ), "target/test-classes/repositories/local" ).toURI(  ).
             toURL(  ).toExternalForm(  ), "local-repo" );
 
         // (1) create a project from scratch
@@ -73,16 +74,16 @@
         //
         // ------------------------------------------------------------------------
         // (1) create a project from scratch
-        File sourceProject = new File( getBasedir(  ), "src/test/projects/test-project" );
+//        File sourceProject = new File( getBasedir(  ), "target/test-classes/projects/roundtrip-1-project" );
 
-        File workingProject = new File( getBasedir(  ), "target/projects/test-project" );
+        File workingProject = new File( getBasedir(  ), "target/test-classes/projects/roundtrip-1-project" );
 
-        if ( !workingProject.exists(  ) )
-        {
-            workingProject.mkdirs(  );
-        }
+//        if ( !workingProject.exists(  ) )
+//        {
+//            workingProject.mkdirs(  );
+//        }
 
-        FileUtils.copyDirectoryStructure( sourceProject, workingProject );
+//        FileUtils.copyDirectoryStructure( sourceProject, workingProject );
 
         // (2) create an archetype from the project
         File pom = new File( workingProject, "pom.xml" );
@@ -109,92 +110,66 @@
         catalogDirectory.mkdirs(  );
 
         Properties p = new Properties(  );
-
         p.setProperty( "sources", "catalog" );
-
         p.setProperty( "catalog.file", catalogFile.getAbsolutePath(  ) );
-
         OutputStream os = new FileOutputStream( catalogProperties );
-
         p.store( os, "Generated catalog properties" );
 
-        // (4) create our own archetype catalog describing the archetype we just created
-        ArchetypeCatalog catalog = new ArchetypeCatalog(  );
-
-        Archetype generatedArchetype = new Archetype(  );
-
-        generatedArchetype.setGroupId( project.getGroupId(  ) );
-
-        generatedArchetype.setArtifactId( project.getArtifactId(  ) );
-
-        generatedArchetype.setVersion( project.getVersion(  ) );
-
-        catalog.addArchetype( generatedArchetype );
-
-        ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer(  );
-
-        Writer writer = new FileWriter( catalogFile );
-
-        catalogWriter.write( writer, catalog );
-
-        IOUtils.closeQuietly( writer );
-
         // (5) install the archetype we just created
         File generatedArchetypeDirectory = new File( project.getBasedir(  ), "target/generated-sources/archetypeng" );
-
         File generatedArchetypePom = new File( generatedArchetypeDirectory, "pom.xml" );
-
         MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom, localRepository, null );
-
         File archetypeDirectory = new File( generatedArchetypeDirectory, "src/main/resources" );
-        archetype.archiveArchetype(
+        File archetypeArchive = archetype.archiveArchetype(
             archetypeDirectory, generatedArchetypeProject,
             new File( generatedArchetypeProject.getBuild(  ).getDirectory(  ) ),
             generatedArchetypeProject.getBuild(  ).getFinalName(  ),
             new MavenArchiveConfiguration(  )
         );
+        File archetypeInRepository = new File (localRepository.getBasedir(),
+                StringUtils.replace(
+                    generatedArchetypeProject.getGroupId(), ".", "/") + "/" +
+                    generatedArchetypeProject.getArtifactId() + "/" +
+                    generatedArchetypeProject.getVersion() + "/" +
+                    generatedArchetypeProject.getBuild(  ).getFinalName(  ) + 
+                    ".jar");
+        archetypeInRepository.getParentFile().mkdirs();
+        FileUtils.copyFile(archetypeArchive, archetypeInRepository);
 
-//        installArchetype( generatedArchetypeDirectory, new File( localRepository.getBasedir(  ) ) );
+        // (4) create our own archetype catalog describing the archetype we just created
+        ArchetypeCatalog catalog = new ArchetypeCatalog(  );
+        Archetype generatedArchetype = new Archetype(  );
+        generatedArchetype.setGroupId( generatedArchetypeProject.getGroupId(  ) );
+        generatedArchetype.setArtifactId( generatedArchetypeProject.getArtifactId(  ) );
+        generatedArchetype.setVersion( generatedArchetypeProject.getVersion(  ) );
+        generatedArchetype.setRepository(localRepository.getBasedir());
+        catalog.addArchetype( generatedArchetype );
+
+        ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer(  );
+        Writer writer = new FileWriter( catalogFile );
+        catalogWriter.write( writer, catalog );
+        IOUtils.closeQuietly( writer );
 
         // (6) create a project form the archetype we just created
-        String outputDirectory = new File( getBasedir(  ), "target/generated-project" ).getAbsolutePath(  );
+        String outputDirectory = new File( getBasedir(  ), "target/test-classes/projects/roundtrip-1-recreatedproject" ).getAbsolutePath(  );
 
-        /*
         ArchetypeGenerationRequest agr = new ArchetypeGenerationRequest()
-        .setArchetypeGroupId( project.getGroupId() )
-        .setArchetypeArtifactId( project.getArtifactId() )
-        .setArchetypeVersion( project.getVersion() )
+        .setArchetypeGroupId( generatedArchetypeProject.getGroupId() )
+        .setArchetypeArtifactId( generatedArchetypeProject.getArtifactId() )
+        .setArchetypeVersion( generatedArchetypeProject.getVersion() )
         .setGroupId( "com.mycompany" )
         .setArtifactId( "myapp" )
         .setVersion( "1.0-SNAPSHOT" )
         .setPackage( "com.mycompany.myapp" )
         .setOutputDirectory( outputDirectory )
         .setLocalRepository( localRepository )
-        .setArchetypeRepository( "http://repo1.maven.org/maven2" );
+        .setArchetypeRepository( localRepository.getBasedir() );
         ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr );
         if ( generationResult.getCause() != null )
         {
         fail( generationResult.getCause().getMessage() );
         }
-         */
-    }
-
-    private void installArchetype( File basedir, File localRepository )
-        throws Exception
-    {
-        fail( "The packaging can't be used here as the plugins are not yet made." );
-        Invoker invoker = (Invoker) lookup( Invoker.ROLE );
 
-        if ( basedir.exists(  ) )
-        {
-            InvocationRequest request = new DefaultInvocationRequest(  ).setBaseDirectory( basedir ).
-                setGoals( Arrays.asList( new String[]{"install"} ) );
-            //.setLocalRepositoryDirectory( localRepository );
-            Properties envars = CommandLineUtils.getSystemEnvVars(  );
-
-            invoker.setMavenHome( new File( envars.getProperty( "M2_HOME" ) ) );
-
-            invoker.execute( request );
-        }
     }
+
 }

Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/pom.xml?rev=584546&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/pom.xml (added)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/pom.xml Sun Oct 14 06:47:11 2007
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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.
+  -->
+  <project xmlns="http://maven.apache.org/POM/4.0.0" 
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.test</groupId>
+  <artifactId>test-project</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+  <name>test-project</name>
+  <url>http://maven.apache.org</url>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java?rev=584546&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java (added)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java Sun Oct 14 06:47:11 2007
@@ -0,0 +1,13 @@
+package projects.roundtrip-1-project.src.main.java.org.apache.maven.test;
+
+/**
+ * Hello world!
+ *
+ */
+public class App 
+{
+    public static void main( String[] args )
+    {
+        System.out.println( "Hello World!" );
+    }
+}

Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/apache/maven/test/AppTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/apache/maven/test/AppTest.java?rev=584546&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/apache/maven/test/AppTest.java (added)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/apache/maven/test/AppTest.java Sun Oct 14 06:47:11 2007
@@ -0,0 +1,38 @@
+package projects.roundtrip-1-project.src.test.java.org.apache.maven.test;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}

Propchange: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/src/test/java/org/apache/maven/test/AppTest.java
------------------------------------------------------------------------------
    svn:eol-style = native