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/11/20 23:31:07 UTC

svn commit: r596854 [1/2] - in /maven/sandbox/trunk/archetypeng: ./ archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/ archetype-testing/archetype-proxy/src/main/webapp/WEB-INF/ archetype-testing/archetype-repository/src/...

Author: rafale
Date: Tue Nov 20 14:31:04 2007
New Revision: 596854

URL: http://svn.apache.org/viewvc?rev=596854&view=rev
Log:
Roundtriping Archetype.createArchetypeFromProject then Archetype.createProjectfromArchetype using a minimalist repository webapp and a proxy repository webapp

Added:
    maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java   (with props)
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java   (with props)
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/pom.xml   (with props)
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/main/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/main/java/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/main/java/org/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/main/java/org/apache/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/main/java/org/apache/maven/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/main/java/org/apache/maven/test/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/main/java/org/apache/maven/test/App.java   (with props)
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/test/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/test/java/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/test/java/org/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/test/java/org/apache/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/test/java/org/apache/maven/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/test/java/org/apache/maven/test/
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-2-project/src/test/java/org/apache/maven/test/AppTest.java   (with props)
Modified:
    maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/webapp/WEB-INF/web.xml
    maven/sandbox/trunk/archetypeng/archetype-testing/archetype-repository/src/main/java/org/apache/maven/archetype/repository/RepositoryServlet.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreationConfiguratorTest.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java
    maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/pom.xml
    maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfigurator.java
    maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java
    maven/sandbox/trunk/archetypeng/pom.xml

Added: maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java?rev=596854&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java (added)
+++ maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java Tue Nov 20 14:31:04 2007
@@ -0,0 +1,268 @@
+/*
+ *  Copyright 2007 rafale.
+ *
+ *  Licensed 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.
+ *  under the License.
+ */
+package org.apache.maven.archetype.proxy;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.mortbay.util.IO;
+
+/**
+ *
+ * @author rafale
+ */
+public class RepositoryServlet
+    extends HttpServlet
+{
+    private ServletConfig config;
+
+    private ServletContext context;
+
+    /* (non-Javadoc)
+     * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig)
+     */
+    public void init( ServletConfig config ) throws ServletException
+    {
+        this.config = config;
+        this.context = config.getServletContext(  );
+    }
+
+    /* (non-Javadoc)
+     * @see javax.servlet.Servlet#getServletConfig()
+     */
+    public ServletConfig getServletConfig( )
+    {
+        return config;
+    }
+
+    /* (non-Javadoc)
+     * @see javax.servlet.Servlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
+     */
+    public void service( ServletRequest req, ServletResponse res ) throws ServletException
+    {
+        HttpServletRequest request = (HttpServletRequest) req;
+        HttpServletResponse response = (HttpServletResponse) res;
+        
+        
+        
+        log( "A = " + request.getAuthType() );
+        log( "A = " + request.getCharacterEncoding() );
+        log( "A = " + request.getContentType() );
+        log( "B = " + request.getContextPath() );
+        log( "B = " + request.getLocalAddr() );
+        log( "B = " + request.getLocalName() );
+        log( "C = " + request.getMethod() );
+        log( "C = " + request.getPathInfo() );
+        log( "C = " + request.getPathTranslated() );
+        log( "D = " + request.getProtocol() );
+        log( "D = " + request.getQueryString() );
+        log( "D = " + request.getRemoteAddr() );
+        log( "E = " + request.getRemoteHost() );
+        log( "E = " + request.getRemoteUser() );
+        log( "E = " + request.getRequestURI() );
+        log( "F = " + request.getRequestedSessionId() );
+        log( "F = " + request.getScheme() );
+        log( "F = " + request.getServerName() );
+        log( "G = " + request.getServletPath() );
+        log( "G = " + request.getAttributeNames() );
+        log( "G = " + request.getCookies() );
+        log( "H = " + request.getHeaderNames() );
+//        log( "H = " + request.get );
+//        log( "H = " + request.get );
+//        log( "I = " + request.get );
+//        log( "I = " + request.get );
+//        log( "I = " + request.get );
+//        log( "J = " + request.get );
+//        log( "J = " + request.get );
+//        log( "J = " + request.get );
+//        log( "K = " + request.get );
+//        log( "K = " + request.get );
+//        log( "K = " + request.get );
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+
+        response.setHeader( "Date", null );
+        response.setHeader( "Server", null );
+
+
+        log( "Requested file = " + request.getRequestURI(  ) );
+        String filePath =
+            System.getProperty( "org.apache.maven.archetype.reporitory.directory" ).trim(  ) + "/" +
+            request.getRequestURI(  );
+        log( "Complete file path = " + filePath );
+
+        String method = request.getMethod(  );
+
+        if ( "GET".equalsIgnoreCase( method ) )
+        {
+            log( "Getting file" );
+            try
+            {
+                File requestedFile = new File( filePath );
+
+                InputStream is = new FileInputStream( requestedFile );
+
+                if ( is != null )
+                {
+                    IO.copy( is, response.getOutputStream(  ) );
+                    response.setStatus( HttpServletResponse.SC_OK );
+                    log( "File sent" );
+                }
+                else
+                {
+                    log( "Can not send file no content" );
+                }
+            }
+            catch ( FileNotFoundException fileNotFoundException )
+            {
+                response.setStatus( HttpServletResponse.SC_NOT_FOUND );
+                log( "Requested file not found ", fileNotFoundException );
+            }
+            catch ( IOException iOException )
+            {
+                response.setStatus( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+                log( "Can not send file", iOException );
+            }
+        }
+        else if ( "PUT".equalsIgnoreCase( method ) )
+        {
+            log( "Putting file" );
+            File uploadedFile = new File( filePath );
+            if ( uploadedFile.exists(  ) )
+            {
+                uploadedFile.delete(  );
+                log( "Removed old file" );
+            }
+            else if ( !uploadedFile.getParentFile(  ).exists(  ) )
+            {
+                uploadedFile.getParentFile(  ).mkdirs(  );
+                log( "Created directory " + uploadedFile.getParent(  ) );
+            }
+
+            try
+            {
+                FileWriter fw = new FileWriter( uploadedFile );
+                IO.copy( request.getReader(  ), fw );
+                response.setStatus( HttpServletResponse.SC_OK );
+                log( "File copied" );
+            }
+            catch ( IOException iOException )
+            {
+
+                response.setStatus( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+                log( "Can not send file", iOException );
+            }
+        }
+        else
+        {
+
+            response.setStatus( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+            try
+            {
+                log( "Method " + request.getMethod(  ) );
+                log( "ContextPath " + request.getContextPath(  ) );
+                log( "QueryString" + request.getQueryString(  ) );
+                log( "PathInfo " + request.getPathInfo(  ) );
+                log( "ServletPath " + request.getServletPath(  ) );
+                log( "AttributeNames " + request.getAttributeNames(  ).toString(  ) );
+                log( "HeaderNames " + request.getHeaderNames(  ).toString(  ) );
+                log( "RequestURL " + request.getRequestURL(  ).toString(  ) );
+                log( "ParameterNames " + request.getParameterNames(  ).toString(  ) );
+                StringWriter w = new StringWriter(  );
+                IO.copy( request.getReader(  ), w );
+                log( "Content " + w.toString(  ) );
+            }
+            catch ( IOException iOException )
+            {
+                log( "Error in unnknown method", iOException );
+            }
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see javax.servlet.Servlet#getServletInfo()
+     */
+    public String getServletInfo( )
+    {
+        return "Repository Servlet";
+    }
+
+    /* (non-Javadoc)
+     * @see javax.servlet.Servlet#destroy()
+     */
+    public void destroy( )
+    {
+    }
+
+    /**
+     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
+     * @param request servlet request
+     * @param response servlet response
+     */
+    protected void processRequest( HttpServletRequest request,
+        HttpServletResponse response ) throws ServletException, IOException
+    {
+        response.setContentType( "text/html;charset=UTF-8" );
+        PrintWriter out = response.getWriter(  );
+        try
+        {
+            /* TODO output your page here
+            out.println("<html>");
+            out.println("<head>");
+            out.println("<title>Servlet RepositoryServlet</title>");
+            out.println("</head>");
+            out.println("<body>");
+            out.println("<h1>Servlet RepositoryServlet at " + request.getContextPath () + "</h1>");
+            out.println("</body>");
+            out.println("</html>");
+             */
+        }
+        finally
+        {
+            out.close(  );
+        }
+    }
+
+    public String getServletName()
+    {
+        return "Repository Servlet";
+    }
+    
+    
+}
\ No newline at end of file

Propchange: maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/webapp/WEB-INF/web.xml?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/webapp/WEB-INF/web.xml (original)
+++ maven/sandbox/trunk/archetypeng/archetype-testing/archetype-proxy/src/main/webapp/WEB-INF/web.xml Tue Nov 20 14:31:04 2007
@@ -5,8 +5,12 @@
     <servlet-name>ProxyServlet</servlet-name>
     <servlet-class>org.apache.maven.archetype.proxy.ProxyServlet</servlet-class>
   </servlet>
+  <servlet>
+    <servlet-name>RepositoryServlet</servlet-name>
+    <servlet-class>org.apache.maven.archetype.proxy.RepositoryServlet</servlet-class>
+  </servlet>
   <servlet-mapping>
-    <servlet-name>ProxyServlet</servlet-name>
+    <servlet-name>RepositoryServlet</servlet-name>
     <url-pattern>/*</url-pattern>
   </servlet-mapping>
 </web-app>

Modified: maven/sandbox/trunk/archetypeng/archetype-testing/archetype-repository/src/main/java/org/apache/maven/archetype/repository/RepositoryServlet.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-testing/archetype-repository/src/main/java/org/apache/maven/archetype/repository/RepositoryServlet.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-testing/archetype-repository/src/main/java/org/apache/maven/archetype/repository/RepositoryServlet.java (original)
+++ maven/sandbox/trunk/archetypeng/archetype-testing/archetype-repository/src/main/java/org/apache/maven/archetype/repository/RepositoryServlet.java Tue Nov 20 14:31:04 2007
@@ -75,16 +75,23 @@
 
 
         log( "Requested file = " + request.getRequestURI(  ) );
+        System.err.println( "Requested file = " + request.getRequestURI(  ) );
         String filePath =
             System.getProperty( "org.apache.maven.archetype.reporitory.directory" ).trim(  ) + "/" +
             request.getRequestURI(  );
+        filePath=filePath.replace("repo/", "/");
+        filePath=filePath.replaceAll("//", "/");
+        filePath=filePath.replaceAll("//", "/");
+        filePath=filePath.replaceAll("//", "/");
         log( "Complete file path = " + filePath );
+        System.err.println( "Complete file path = " + filePath );
 
         String method = request.getMethod(  );
 
         if ( "GET".equalsIgnoreCase( method ) )
         {
             log( "Getting file" );
+            System.err.println( "Getting file" );
             try
             {
                 File requestedFile = new File( filePath );
@@ -96,36 +103,45 @@
                     IO.copy( is, response.getOutputStream(  ) );
                     response.setStatus( HttpServletResponse.SC_OK );
                     log( "File sent" );
+                    System.err.println( "File sent" );
                 }
                 else
                 {
                     log( "Can not send file no content" );
+                    System.err.println( "Can not send file no content" );
                 }
             }
             catch ( FileNotFoundException fileNotFoundException )
             {
                 response.setStatus( HttpServletResponse.SC_NOT_FOUND );
                 log( "Requested file not found ", fileNotFoundException );
+                System.err.println( "Requested file not found "+ fileNotFoundException );
+                fileNotFoundException.printStackTrace(System.err);
             }
             catch ( IOException iOException )
             {
                 response.setStatus( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
                 log( "Can not send file", iOException );
+                System.err.println( "Can not send file"+ iOException );
+                iOException.printStackTrace(System.err);
             }
         }
         else if ( "PUT".equalsIgnoreCase( method ) )
         {
             log( "Putting file" );
+            System.err.println( "Putting file" );
             File uploadedFile = new File( filePath );
             if ( uploadedFile.exists(  ) )
             {
                 uploadedFile.delete(  );
                 log( "Removed old file" );
+                System.err.println( "Removed old file" );
             }
             else if ( !uploadedFile.getParentFile(  ).exists(  ) )
             {
                 uploadedFile.getParentFile(  ).mkdirs(  );
                 log( "Created directory " + uploadedFile.getParent(  ) );
+                System.err.println( "Created directory " + uploadedFile.getParent(  ) );
             }
 
             try
@@ -134,12 +150,15 @@
                 IO.copy( request.getReader(  ), fw );
                 response.setStatus( HttpServletResponse.SC_OK );
                 log( "File copied" );
+                System.err.println( "File copied" );
             }
             catch ( IOException iOException )
             {
 
                 response.setStatus( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
                 log( "Can not send file", iOException );
+                System.err.println( "Can not send file"+ iOException );
+                iOException.printStackTrace(System.err);
             }
         }
         else
@@ -160,10 +179,24 @@
                 StringWriter w = new StringWriter(  );
                 IO.copy( request.getReader(  ), w );
                 log( "Content " + w.toString(  ) );
+                
+                
+                System.err.println( "Method " + request.getMethod(  ) );
+                System.err.println( "ContextPath " + request.getContextPath(  ) );
+                System.err.println( "QueryString" + request.getQueryString(  ) );
+                System.err.println( "PathInfo " + request.getPathInfo(  ) );
+                System.err.println( "ServletPath " + request.getServletPath(  ) );
+                System.err.println( "AttributeNames " + request.getAttributeNames(  ).toString(  ) );
+                System.err.println( "HeaderNames " + request.getHeaderNames(  ).toString(  ) );
+                System.err.println( "RequestURL " + request.getRequestURL(  ).toString(  ) );
+                System.err.println( "ParameterNames " + request.getParameterNames(  ).toString(  ) );
+                System.err.println( "Content " + w.toString(  ) );
             }
             catch ( IOException iOException )
             {
                 log( "Error in unnknown method", iOException );
+                System.err.println( "Error in unnknown method"+ iOException );
+                iOException.printStackTrace(System.err);
             }
         }
     }

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/pom.xml Tue Nov 20 14:31:04 2007
@@ -134,6 +134,12 @@
       <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-file</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.maven.wagon</groupId>
+      <artifactId>wagon-http</artifactId>
+      <version>1.0-beta-2</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
@@ -235,6 +241,14 @@
                   <type>war</type>
                   <overWrite>true</overWrite>
                   <destFileName>archetype-repository.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>archetype-proxy</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>true</overWrite>
+                  <destFileName>archetype-proxy.war</destFileName>
                 </artifactItem>
               </artifactItems>
               <outputDirectory>${project.build.directory}/wars</outputDirectory>

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java Tue Nov 20 14:31:04 2007
@@ -38,6 +38,7 @@
         final String groupId,
         final String artifactId,
         final String version,
+                          ArtifactRepository archetypeRepository,
         final ArtifactRepository localRepository,
         final List repositories
     )
@@ -56,6 +57,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -82,6 +84,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -92,6 +95,7 @@
         String archetypeGroupId,
         String archetypeArtifactId,
         String archetypeVersion,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repos );
 
@@ -104,6 +108,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     );
@@ -120,6 +125,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -138,6 +144,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -150,6 +157,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     );
@@ -160,6 +168,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java Tue Nov 20 14:31:04 2007
@@ -68,6 +68,7 @@
         final String groupId,
         final String artifactId,
         final String version,
+                          ArtifactRepository archetypeRepository,
         final ArtifactRepository localRepository,
         final List repositories
     )
@@ -76,7 +77,7 @@
     {
         try
         {
-            return downloader.download( groupId, artifactId, version, localRepository, repositories );
+            return downloader.download( groupId, artifactId, version, archetypeRepository, localRepository, repositories );
         }
         catch ( DownloadNotFoundException ex )
         {
@@ -110,6 +111,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -119,7 +121,7 @@
         try
         {
             File archetypeFile =
-                getArchetypeFile( groupId, artifactId, version, localRepository, repositories );
+                getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository, repositories );
             URL[] urls = new URL[1];
 
             urls[0] = archetypeFile.toURI().toURL();
@@ -203,6 +205,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -212,7 +215,7 @@
         try
         {
             File archetypeFile =
-                getArchetypeFile( groupId, artifactId, version, localRepository, repositories );
+                getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository, repositories );
 
             return new ZipFile( archetypeFile );
         }
@@ -231,12 +234,13 @@
         String archetypeGroupId, 
         String archetypeArtifactId, 
         String archetypeVersion, 
+        ArtifactRepository archetypeRepository, 
         ArtifactRepository localRepository, 
         List remoteRepositories )
     {
         try
-        {
-            File archetypeFile = downloader.download( archetypeGroupId, archetypeArtifactId, archetypeVersion, localRepository, remoteRepositories );
+        {                        
+            File archetypeFile = downloader.download( archetypeGroupId, archetypeArtifactId, archetypeVersion, archetypeRepository, localRepository, remoteRepositories );
 
             return archetypeFile.exists();
         }
@@ -258,6 +262,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -268,7 +273,7 @@
                 getArchetypeJarLoader(
                     groupId,
                     artifactId,
-                    version,
+                    version, archetypeRepository,
                     localRepository,
                     repositories
                 );
@@ -316,6 +321,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -328,7 +334,7 @@
                 getArchetypeJarLoader(
                     groupId,
                     artifactId,
-                    version,
+                    version, archetypeRepository,
                     localRepository,
                     repositories
                 );
@@ -385,6 +391,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -394,7 +401,7 @@
         List archetypeResources = new ArrayList();
 
         ZipFile zipFile =
-            getArchetypeZipFile( groupId, artifactId, version, localRepository, repositories );
+            getArchetypeZipFile( groupId, artifactId, version, archetypeRepository, localRepository, repositories );
 
         Enumeration enumeration = zipFile.entries();
         while ( enumeration.hasMoreElements() )
@@ -422,6 +429,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -432,7 +440,7 @@
                 getArchetypeJarLoader(
                     groupId,
                     artifactId,
-                    version,
+                    version, archetypeRepository,
                     localRepository,
                     repositories
                 );
@@ -460,6 +468,7 @@
         String groupId,
         String artifactId,
         String version,
+                          ArtifactRepository archetypeRepository,
         ArtifactRepository localRepository,
         List repositories
     )
@@ -472,7 +481,7 @@
                 getArchetypeJarLoader(
                     groupId,
                     artifactId,
-                    version,
+                    version, archetypeRepository,
                     localRepository,
                     repositories
                 );
@@ -668,4 +677,4 @@
                 ? Thread.currentThread().getContextClassLoader().getResourceAsStream( name )
                 : loader.getResourceAsStream( name );
     }
-}
+    }

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java Tue Nov 20 14:31:04 2007
@@ -30,23 +30,46 @@
     public File download( String groupId,
                           String artifactId,
                           String version,
+                          ArtifactRepository archetypeRepository,
                           File localRepository,
                           String[] remoteRepositories )
         throws DownloadException, DownloadNotFoundException
 
     {
-        return download( groupId, artifactId, version, localRepository, remoteRepositories );
+        return download( groupId, artifactId, version, archetypeRepository, localRepository, remoteRepositories );
     }
 
     public File download( String groupId,
                           String artifactId,
                           String version,
+                          ArtifactRepository archetypeRepository,
                           ArtifactRepository localRepository,
                          List remoteRepositories )
         throws DownloadException, DownloadNotFoundException
    {
         Artifact artifact = artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "jar" );
+System.err.println("ARTIFACT"+artifact);
+System.err.println("ARTIFACT"+artifact.getArtifactId());
+System.err.println("ARTIFACT"+artifact.getBaseVersion());
+System.err.println("ARTIFACT"+artifact.getDependencyConflictId());
+System.err.println("ARTIFACT"+artifact.getDownloadUrl());
+System.err.println("ARTIFACT"+artifact.getGroupId());
+System.err.println("ARTIFACT"+artifact.getId());
+System.err.println("ARTIFACT"+artifact.getScope());
+System.err.println("ARTIFACT"+artifact.getType());
+System.err.println("ARTIFACT"+artifact.getVersion());
+System.err.println("ARTIFACT"+artifact.getArtifactHandler());
+System.err.println("ARTIFACT"+artifact.getAvailableVersions());
+System.err.println("ARTIFACT"+artifact.getDependencyFilter());
+System.err.println("ARTIFACT"+artifact.getDependencyTrail());
+System.err.println("ARTIFACT"+artifact.getMetadataList());
+System.err.println("ARTIFACT"+artifact.getRepository());
+System.err.println("ARTIFACT"+artifact.getVersionRange());
+System.err.println("remoteRepositories  "+remoteRepositories);
+System.err.println("localRepository  "+localRepository);
+System.err.println("archetypeRepository  "+archetypeRepository);
 
+artifact.setRepository(archetypeRepository);
         try
         {
             artifactResolver.resolveAlways( artifact, remoteRepositories, localRepository );

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java Tue Nov 20 14:31:04 2007
@@ -15,6 +15,7 @@
     public File download( String groupId,
                           String artifactId,
                           String version,
+                          ArtifactRepository archetypeRepository,
                           File localRepository,
                           String[] remoteRepositories )
         throws DownloadException, DownloadNotFoundException;
@@ -22,6 +23,7 @@
     public File download( String groupId,
                           String artifactId,
                           String version,
+                          ArtifactRepository archetypeRepository,
                           ArtifactRepository localRepository,
                           List remoteRepositories )
         throws DownloadException, DownloadNotFoundException;

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java Tue Nov 20 14:31:04 2007
@@ -94,19 +94,23 @@
 
         List repos = new ArrayList( /*repositories*/ );
 
+        ArtifactRepository remoteRepo = null;
         if ( request != null  && request.getArchetypeRepository() != null )
         {
-            ArtifactRepository remoteRepo = archetypeRegistryManager.createRepository(
+            remoteRepo=archetypeRegistryManager.createRepository(
                 request.getArchetypeRepository(),
                 request.getArchetypeArtifactId() + "-repo" );
 
             repos.add( remoteRepo );
+
+            System.err.println("REPO"+remoteRepo);
+
         }
 
         if ( !archetypeArtifactManager.exists(
             request.getArchetypeGroupId(),
             request.getArchetypeArtifactId(),
-            request.getArchetypeVersion(),
+            request.getArchetypeVersion(),remoteRepo,
             localRepository,
             repos ) )
         {
@@ -120,14 +124,14 @@
         if ( archetypeArtifactManager.isFileSetArchetype(
             request.getArchetypeGroupId(),
             request.getArchetypeArtifactId(),
-            request.getArchetypeVersion(),
+            request.getArchetypeVersion(),remoteRepo,
             localRepository,
             repos
         )
             )
         {
             processFileSetArchetype(
-                request,
+                request,remoteRepo,
                 localRepository,
                 basedir,
                 repos
@@ -137,12 +141,12 @@
             archetypeArtifactManager.isOldArchetype(
                 request.getArchetypeGroupId(),
                 request.getArchetypeArtifactId(),
-                request.getArchetypeVersion(),
+                request.getArchetypeVersion(),remoteRepo,
                 localRepository,
                 repos ) )
         {
             processOldArchetype(
-                request,
+                request,remoteRepo,
                 localRepository,
                 basedir,
                 repos
@@ -170,6 +174,7 @@
     /** FileSetArchetype */
     private void processFileSetArchetype(
         final ArchetypeGenerationRequest request,
+        ArtifactRepository remoteRepo,
         final ArtifactRepository localRepository,
         final String basedir,
         final List repositories
@@ -205,7 +210,7 @@
             archetypeArtifactManager.getArchetypeFile(
                 request.getArchetypeGroupId(),
                 request.getArchetypeArtifactId(),
-                request.getArchetypeVersion(),
+                request.getArchetypeVersion(),remoteRepo,
                 localRepository,
                 repositories
             );
@@ -215,6 +220,7 @@
 
     private void processOldArchetype(
         ArchetypeGenerationRequest request,
+        ArtifactRepository remoteRepo,
         ArtifactRepository localRepository,
         String basedir,
         List repositories
@@ -229,7 +235,7 @@
             archetypeArtifactManager.getOldArchetypeDescriptor(
                 request.getArchetypeGroupId(),
                 request.getArchetypeArtifactId(),
-                request.getArchetypeVersion(),
+                request.getArchetypeVersion(),remoteRepo,
                 localRepository,
                 repositories
             );
@@ -252,7 +258,7 @@
             oldArchetype.createArchetype(
                 request.getArchetypeGroupId(),
                 request.getArchetypeArtifactId(),
-                request.getArchetypeVersion(),
+                request.getArchetypeVersion(),remoteRepo,
                 localRepository,
                 repositories,
                 map
@@ -281,7 +287,7 @@
     public void generateArchetype( ArchetypeGenerationRequest request, ArchetypeGenerationResult result )
     {
         //TODO: get rid of the property file usage.
-        
+
         try
         {
             generateArchetype( request, null, request.getLocalRepository(), null/*Collections.singletonList( repo )*/, request.getOutputDirectory(  ) );

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java Tue Nov 20 14:31:04 2007
@@ -105,6 +105,7 @@
     public void createArchetype( String archetypeGroupId,
                                  String archetypeArtifactId,
                                  String archetypeVersion,
+                          ArtifactRepository archetypeRepository,
                                  ArtifactRepository localRepository,
                                  List remoteRepositories,
                                  Map parameters )
@@ -118,7 +119,7 @@
         
         try
         {
-            archetype = downloader.download( archetypeGroupId, archetypeArtifactId, archetypeVersion, localRepository,
+            archetype = downloader.download( archetypeGroupId, archetypeArtifactId, archetypeVersion, archetypeRepository, localRepository,
                                              remoteRepositories );
         }
         catch ( DownloadException e )

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java Tue Nov 20 14:31:04 2007
@@ -39,6 +39,7 @@
     String ARCHETYPE_POM = "pom.xml";
 
     void createArchetype( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion,
+                          ArtifactRepository archetypeRepository,
                           ArtifactRepository localRepository, List remoteRepositories, Map parameters )
         throws ArchetypeNotFoundException, ArchetypeDescriptorException, ArchetypeTemplateProcessingException;
 }

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=596854&r1=596853&r2=596854&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 Tue Nov 20 14:31:04 2007
@@ -48,19 +48,19 @@
     extends AbstractLogEnabled
     implements ArchetypeDataSource
 {
-    public static String ARCHETYPE_CATALOG_PROPERTY = "file";
+    public static final String ARCHETYPE_CATALOG_PROPERTY = "file";
 
-    public static String ARCHETYPE_CATALOG_FILENAME = "archetype-catalog.xml";
+    public static final 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" ) );
+    public static final File USER_HOME = new File( System.getProperty( "user.home" ) );
 
-    private File MAVEN_CONFIGURATION = new File( USER_HOME, ".m2" );
+    public static final File MAVEN_CONFIGURATION = new File( USER_HOME, ".m2" );
 
-    private File DEFAULT_ARCHETYPE_CATALOG = new File( MAVEN_CONFIGURATION, ARCHETYPE_CATALOG_FILENAME );
+    public static final File DEFAULT_ARCHETYPE_CATALOG = new File( MAVEN_CONFIGURATION, ARCHETYPE_CATALOG_FILENAME );
 
     public List getArchetypes( Properties properties )
         throws ArchetypeDataSourceException

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreationConfiguratorTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreationConfiguratorTest.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreationConfiguratorTest.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreationConfiguratorTest.java Tue Nov 20 14:31:04 2007
@@ -22,35 +22,35 @@
 //import org.apache.maven.archetype.ui.DefaultArchetypeCreationConfigurator;
 //import org.apache.maven.archetype.ui.ArchetypeCreationConfigurator;
 
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.DefaultArtifactRepository;
-import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
-import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+//import org.apache.maven.artifact.repository.ArtifactRepository;
+//import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+//import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+//import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+//import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
-import org.apache.maven.project.ProjectBuildingException;
-import org.codehaus.plexus.util.IOUtil;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Properties;
+//import org.apache.maven.project.MavenProject;
+//import org.apache.maven.project.MavenProjectBuilder;
+//import org.apache.maven.project.ProjectBuildingException;
+//import org.codehaus.plexus.util.IOUtil;
+//
+//import java.io.File;
+//import java.io.FileInputStream;
+//import java.io.FileNotFoundException;
+//import java.io.FileReader;
+//import java.io.FileWriter;
+//import java.io.IOException;
+//import java.util.Arrays;
+//import java.util.List;
+//import java.util.Properties;
 
 public class DefaultArchetypeCreationConfiguratorTest
     extends AbstractMojoTestCase
 {
-    private List languages;
-    private DefaultArtifactRepository localRepository;
-
-    private List repositories;
-    
+//    private List languages;
+//    private DefaultArtifactRepository localRepository;
+//
+//    private List repositories;
+//    
     public void testNothing()
     {
         //TODO: All the tests were commented out Because the tested classes are beeing moved for now and will be removed soon
@@ -516,53 +516,53 @@
 //
 //        assertEquals ( 7, properties.size () );
 //    }
-
-    protected void tearDown()
-        throws
-        Exception
-    {
-        super.tearDown();
-    }
-
-    protected void setUp()
-        throws
-        Exception
-    {
-        super.setUp();
-
-        localRepository =
-            new DefaultArtifactRepository(
-                "local",
-                new File( getBasedir(), "target/test-classes/repositories/local" ).toURI()
-                    .toString(),
-                new DefaultRepositoryLayout()
-            );
-
-        repositories =
-            Arrays.asList(
-                new ArtifactRepository[]
-                    {
-                        new DefaultArtifactRepository(
-                            "central",
-                            new File( getBasedir(), "target/test-classes/repositories/central" )
-                                .toURI().toString(),
-                            new DefaultRepositoryLayout()
-                        )
-                    }
-            );
-    }
-
-    private void copy( final File in,
-                       final File out )
-        throws
-        IOException
-    {
-        assertTrue( !out.exists() || out.delete() );
-        assertFalse( out.exists() );
-        IOUtil.copy( new FileReader( in ), new FileWriter( out ) );
-        assertTrue( out.exists() );
-        assertTrue( in.exists() );
-    }
+//
+//    protected void tearDown()
+//        throws
+//        Exception
+//    {
+//        super.tearDown();
+//    }
+//
+//    protected void setUp()
+//        throws
+//        Exception
+//    {
+//        super.setUp();
+//
+//        localRepository =
+//            new DefaultArtifactRepository(
+//                "local",
+//                new File( getBasedir(), "target/test-classes/repositories/local" ).toURI()
+//                    .toString(),
+//                new DefaultRepositoryLayout()
+//            );
+//
+//        repositories =
+//            Arrays.asList(
+//                new ArtifactRepository[]
+//                    {
+//                        new DefaultArtifactRepository(
+//                            "central",
+//                            new File( getBasedir(), "target/test-classes/repositories/central" )
+//                                .toURI().toString(),
+//                            new DefaultRepositoryLayout()
+//                        )
+//                    }
+//            );
+//    }
+//
+//    private void copy( final File in,
+//                       final File out )
+//        throws
+//        IOException
+//    {
+//        assertTrue( !out.exists() || out.delete() );
+//        assertFalse( out.exists() );
+//        IOUtil.copy( new FileReader( in ), new FileWriter( out ) );
+//        assertTrue( out.exists() );
+//        assertTrue( in.exists() );
+//    }
 
 // /*Commented on 2007 09 25
 //    private void instanceDefined( DefaultArchetypeCreationConfigurator instance )
@@ -577,57 +577,57 @@
 //    }
 // Commented on 2007 09 25*/
 
-    private MavenProject loadProject( final File projectFile )
-        throws
-        ArtifactNotFoundException,
-        Exception,
-        ArtifactResolutionException,
-        ProjectBuildingException
-    {
-        MavenProjectBuilder builder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
-        return builder.buildWithDependencies( projectFile, localRepository, null );
-    }
-
-    private Properties loadProperties( File propertyFile )
-        throws
-        IOException,
-        FileNotFoundException
-    {
-        Properties properties = new Properties();
-        properties.load( new FileInputStream( propertyFile ) );
-        return properties;
-    }
-
-    private File getProjectFile( String project )
-    {
-        return new File( getBasedir(), "target/test-classes/projects/" + project + "/pom.xml" );
-    }
-
-    private File getProjectSampleFile( String project )
-    {
-        return
-            new File(
-                getBasedir(),
-                "target/test-classes/projects/" + project + "/pom.xml.sample"
-            );
-    }
-
-    private File getPropertiesFile( String project )
-    {
-        return
-            new File(
-                getBasedir(),
-                "target/test-classes/projects/" + project + "/archetype.properties"
-            );
-    }
-
-    private File getPropertiesSampleFile( final String project )
-    {
-        File propertyFileSample =
-            new File(
-                getBasedir(),
-                "target/test-classes/projects/" + project + "/archetype.properties.sample"
-            );
-        return propertyFileSample;
-    }
+//    private MavenProject loadProject( final File projectFile )
+//        throws
+//        ArtifactNotFoundException,
+//        Exception,
+//        ArtifactResolutionException,
+//        ProjectBuildingException
+//    {
+//        MavenProjectBuilder builder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
+//        return builder.buildWithDependencies( projectFile, localRepository, null );
+//    }
+//
+//    private Properties loadProperties( File propertyFile )
+//        throws
+//        IOException,
+//        FileNotFoundException
+//    {
+//        Properties properties = new Properties();
+//        properties.load( new FileInputStream( propertyFile ) );
+//        return properties;
+//    }
+//
+//    private File getProjectFile( String project )
+//    {
+//        return new File( getBasedir(), "target/test-classes/projects/" + project + "/pom.xml" );
+//    }
+//
+//    private File getProjectSampleFile( String project )
+//    {
+//        return
+//            new File(
+//                getBasedir(),
+//                "target/test-classes/projects/" + project + "/pom.xml.sample"
+//            );
+//    }
+//
+//    private File getPropertiesFile( String project )
+//    {
+//        return
+//            new File(
+//                getBasedir(),
+//                "target/test-classes/projects/" + project + "/archetype.properties"
+//            );
+//    }
+//
+//    private File getPropertiesSampleFile( final String project )
+//    {
+//        File propertyFileSample =
+//            new File(
+//                getBasedir(),
+//                "target/test-classes/projects/" + project + "/archetype.properties.sample"
+//            );
+//        return propertyFileSample;
+//    }
 }

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java Tue Nov 20 14:31:04 2007
@@ -42,6 +42,7 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
+import org.apache.maven.project.MavenProjectBuildingResult;
 
 public class DefaultArchetypeCreatorTest
     extends AbstractMojoTestCase
@@ -80,10 +81,22 @@
         Properties p = PropertyUtils.loadProperties( propertyFile );
 
         MavenProject mavenProject = null;
-        
+
         try
         {
-            mavenProject = builder.buildWithDependencies( projectFile, localRepository, null );
+            Object result = builder.buildWithDependencies( projectFile, localRepository, null );
+            if ( result instanceof MavenProject )
+            {// Using maven 2.0.x / x >= 7
+                mavenProject = (MavenProject) result;
+            }
+            else if ( result instanceof MavenProjectBuildingResult )
+            {// Using maven 2.1
+                mavenProject = ((MavenProjectBuildingResult) result).getProject();
+            }
+            else
+            {
+                fail( "Wrong result class" );
+            }
         }
         catch( Exception e )
         {

Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java?rev=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java Tue Nov 20 14:31:04 2007
@@ -97,7 +97,7 @@
         String archetypeGroupId = "org.apache.maven.archetypes";
         String archetypeArtifactId = "maven-archetype-quickstart";
         String archetypeVersion = "1.0-alpha-1-SNAPSHOT";
-        archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, localRepository,
+        archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, remoteRepository, localRepository,
                                    remoteRepositories, parameters );
 
         // ----------------------------------------------------------------------

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=596854&r1=596853&r2=596854&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 Tue Nov 20 14:31:04 2007
@@ -18,6 +18,7 @@
  */
 package org.apache.maven.archetype.test;
 
+
 import org.apache.commons.io.IOUtils;
 import org.apache.maven.archetype.ArchetypeCreationRequest;
 import org.apache.maven.archetype.ArchetypeCreationResult;
@@ -33,6 +34,7 @@
 import org.codehaus.cargo.container.deployable.DeployableType;
 import org.codehaus.cargo.container.deployable.WAR;
 import org.codehaus.cargo.container.deployer.Deployer;
+import org.codehaus.cargo.container.deployer.URLDeployableMonitor;
 import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalContainer;
 import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalDeployer;
 import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedStandaloneLocalConfiguration;
@@ -48,168 +50,180 @@
 import java.io.FileWriter;
 import java.io.OutputStream;
 import java.io.Writer;
+import java.net.URL;
 import java.util.Properties;
 
-
 /** @author Jason van Zyl */
 public class ArchetyperRoundtripTest
     extends PlexusTestCase
 {
-  Jetty6xEmbeddedLocalContainer container;
+    Jetty6xEmbeddedLocalContainer container;
 
-  public void testArchetyper()
-      throws Exception
-  {
-    Archetype archetype = (Archetype) lookup( Archetype.ROLE );
-
-    ArchetypeRegistryManager registryManager = (ArchetypeRegistryManager) lookup( ArchetypeRegistryManager.ROLE );
-
-    MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
-
-    ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(),
-                                                                                     "target/test-classes/repositories/local" ).toURI().
-                                                                           toURL().
-                                                                           toExternalForm(),
-                                                                           "local-repo" );
-
-    // (1) create a project from scratch
-    // (2) create an archetype from the project
-    // (3) create our own archetype catalog properties in memory
-    // (4) create our own archetype catalog describing the archetype we just created
-    // (5) deploy the archetype we just created
-    // (6) create a project form the archetype we just created
-    // ------------------------------------------------------------------------
-    //
-    // ------------------------------------------------------------------------
-    // (1) create a project from scratch
-//        File sourceProject = new File( getBasedir(  ), "target/test-classes/projects/roundtrip-1-project" );
+    public void testArchetyper()
+        throws Exception
+    {
 
-    File workingProject = new File( getBasedir(),
-                                    "target/test-classes/projects/roundtrip-1-project" );
+        Archetype archetype = (Archetype) lookup( Archetype.ROLE );
 
-    // (2) create an archetype from the project
-    File pom = new File( workingProject, "pom.xml" );
+        ArchetypeRegistryManager registryManager = (ArchetypeRegistryManager) lookup( ArchetypeRegistryManager.ROLE );
 
-    MavenProject project = projectBuilder.build( pom, localRepository, null );
+        MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
 
-    ArchetypeCreationRequest acr = new ArchetypeCreationRequest().setProject( project ).
-        setLocalRepository( localRepository );
+        ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(),
+            "target/test-classes/repositories/local" ).toURI().
+            toURL().
+            toExternalForm(),
+            "local-repo" );
+
+        ArtifactRepository centralRepository = registryManager.createRepository( new File( getBasedir(),
+            "target/test-classes/repositories/central" ).toURI().
+            toURL().
+            toExternalForm(),
+            "central-repo" );
+
+        // (1) create a project from scratch
+        // (2) create an archetype from the project
+        // (3) create our own archetype catalog properties in memory
+        // (4) create our own archetype catalog describing the archetype we just created
+        // (5) deploy the archetype we just created
+        // (6) create a project form the archetype we just created
+        // ------------------------------------------------------------------------
+        //
+        // ------------------------------------------------------------------------
+        // (1) create a project from scratch
+//        File sourceProject = new File( getBasedir(  ), "target/test-classes/projects/roundtrip-1-project" );
 
-    ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr );
+        File workingProject = new File( getBasedir(),
+            "target/test-classes/projects/roundtrip-1-project" );
 
-    if ( creationResult.getCause() != null )
-    {
-      fail( creationResult.getCause().getMessage() );
-    }
+        // (2) create an archetype from the project
+        File pom = new File( workingProject, "pom.xml" );
 
-    // (3) create our own archetype catalog properties in memory
-    File catalogDirectory = new File( getBasedir(), "target/catalog" );
+        MavenProject project = projectBuilder.build( pom, localRepository, null );
 
-    File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" );
+        ArchetypeCreationRequest acr = new ArchetypeCreationRequest().setProject( project ).
+            setLocalRepository( localRepository );
+
+        ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr );
+
+        if ( creationResult.getCause() != null )
+        {
+            fail( creationResult.getCause().getMessage() );
+        }
+
+        // (3) create our own archetype catalog properties in memory
+        File catalogDirectory = new File( getBasedir(), "target/catalog" );
+
+        File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" );
+
+        File catalogProperties = new File( catalogDirectory,
+            "archetype-catalog.properties" );
+
+        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" );
+
+        // (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" );
+
+        File archetypeArchive = archetype.archiveArchetype( archetypeDirectory,
+            new File( generatedArchetypeProject.getBuild().getDirectory() ),
+            generatedArchetypeProject.getBuild().getFinalName() );
+
+        File archetypeInRepository = new File( centralRepository.getBasedir(),
+            StringUtils.replace(
+            generatedArchetypeProject.getGroupId(), ".",
+            "/" ) + "/" +
+            generatedArchetypeProject.getArtifactId() + "/" +
+            generatedArchetypeProject.getVersion() + "/" +
+            generatedArchetypeProject.getBuild().
+            getFinalName() +
+            ".jar" );
+        archetypeInRepository.getParentFile().mkdirs();
+        FileUtils.copyFile( archetypeArchive, archetypeInRepository );
+
+        // (4) create our own archetype catalog describing the archetype we just created
+        ArchetypeCatalog catalog = new ArchetypeCatalog();
+        org.apache.maven.archetype.catalog.Archetype generatedArchetype = new org.apache.maven.archetype.catalog.Archetype();
+        generatedArchetype.setGroupId( generatedArchetypeProject.getGroupId() );
+        generatedArchetype.setArtifactId( generatedArchetypeProject.getArtifactId() );
+        generatedArchetype.setVersion( generatedArchetypeProject.getVersion() );
+        generatedArchetype.setRepository( "http://localhost:18881/repo/" );
+        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/test-classes/projects/roundtrip-1-recreatedproject" ).getAbsolutePath();
+
+        ArchetypeGenerationRequest agr =
+            new ArchetypeGenerationRequest().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://localhost:18881/repo/" );
+        ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr );
+
+        if ( generationResult.getCause() != null )
+        {
+            fail( generationResult.getCause().getMessage() );
+        }
 
-    File catalogProperties = new File( catalogDirectory, "archetype-catalog.properties" );
+    }
 
-    catalogDirectory.mkdirs();
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+        //        Start Cargo
 
-    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" );
-
-    // (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" );
-
-    File archetypeArchive = archetype.archiveArchetype( archetypeDirectory,
-        new File( generatedArchetypeProject.getBuild().getDirectory() ),
-        generatedArchetypeProject.getBuild().getFinalName() );
-
-      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 );
-
-    // (4) create our own archetype catalog describing the archetype we just created
-    ArchetypeCatalog catalog = new ArchetypeCatalog();
-    org.apache.maven.archetype.catalog.Archetype generatedArchetype = new org.apache.maven.archetype.catalog.Archetype();
-    generatedArchetype.setGroupId( generatedArchetypeProject.getGroupId() );
-    generatedArchetype.setArtifactId( generatedArchetypeProject.getArtifactId() );
-    generatedArchetype.setVersion( generatedArchetypeProject.getVersion() );
-    generatedArchetype.setRepository( "http://127.0.0.1:18881/" );
-    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/test-classes/projects/roundtrip-1-recreatedproject" ).getAbsolutePath();
-
-    ArchetypeGenerationRequest agr =
-        new ArchetypeGenerationRequest().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://127.0.0.1:18881/" );
-    ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr );
+        Jetty6xEmbeddedStandaloneLocalConfiguration configuration =
+            new Jetty6xEmbeddedStandaloneLocalConfiguration( "target/repository-webapp" );
+        configuration.setProperty( ServletPropertySet.PORT, "18881" );
+
+        System.setProperty( "org.apache.maven.archetype.reporitory.directory",
+            getTestPath( "target/test-classes/repositories/central" ) );
+        container = new Jetty6xEmbeddedLocalContainer( configuration );
+        container.setTimeout( 180000L );
+        container.start();
+
+        DeployableFactory factory = new DefaultDeployableFactory();
+        WAR war = (WAR) factory.createDeployable( container.getId(),
+            "target/wars/archetype-repository.war",
+            DeployableType.WAR );
+
+        war.setContext( "/repo" );
+
+        Deployer deployer = new Jetty6xEmbeddedLocalDeployer( container );
+        deployer.deploy( war,
+            new URLDeployableMonitor( new URL( "http://localhost:18881/repo/dummy" ) ) );
+        deployer.start( war );
 
-    if ( generationResult.getCause() != null )
-    {
-      fail( generationResult.getCause().getMessage() );
     }
 
-  }
+    public void tearDown()
+        throws Exception
+    {
+        super.tearDown();
+        //        Stop Cargo
 
-  public void setUp()
-      throws Exception
-  {
-    super.setUp();
-    //        Start Cargo
-
-    Jetty6xEmbeddedStandaloneLocalConfiguration configuration =
-        new Jetty6xEmbeddedStandaloneLocalConfiguration( "target/repository-webapp" );
-    configuration.setProperty( ServletPropertySet.PORT, "18881" );
-
-    System.setProperty( "org.apache.maven.archetype.reporitory.directory",
-                        getTestPath( "test-classes/repositories/local" ) );
-    container = new Jetty6xEmbeddedLocalContainer( configuration );
-    container.setTimeout( 180000L );
-    container.start();
-
-    DeployableFactory factory = new DefaultDeployableFactory();
-    WAR war = (WAR) factory.createDeployable( container.getId(),
-                                              "target/wars/archetype-repository.war",
-                                              DeployableType.WAR );
-
-    war.setContext( "/" );
-
-    Deployer deployer = new Jetty6xEmbeddedLocalDeployer( container );
-    deployer.deploy( war );
-  }
-
-  public void tearDown()
-      throws Exception
-  {
-    super.tearDown();
-    //        Stop Cargo
-
-    container.stop();
-  }
-}
\ No newline at end of file
+        container.stop();
+    }
+}

Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java?rev=596854&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java (added)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java Tue Nov 20 14:31:04 2007
@@ -0,0 +1,231 @@
+/*
+ * 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.
+ */
+package org.apache.maven.archetype.test;
+
+
+import org.apache.commons.io.IOUtils;
+import org.apache.maven.archetype.ArchetypeCreationRequest;
+import org.apache.maven.archetype.ArchetypeCreationResult;
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
+import org.apache.maven.archetype.ArchetypeGenerationResult;
+import org.apache.maven.archetype.Archetype;
+import org.apache.maven.archetype.catalog.ArchetypeCatalog;
+import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer;
+import org.apache.maven.archetype.common.ArchetypeRegistryManager;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.codehaus.cargo.container.deployable.DeployableType;
+import org.codehaus.cargo.container.deployable.WAR;
+import org.codehaus.cargo.container.deployer.Deployer;
+import org.codehaus.cargo.container.deployer.URLDeployableMonitor;
+import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalContainer;
+import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalDeployer;
+import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedStandaloneLocalConfiguration;
+import org.codehaus.cargo.container.property.ServletPropertySet;
+import org.codehaus.cargo.generic.deployable.DefaultDeployableFactory;
+import org.codehaus.cargo.generic.deployable.DeployableFactory;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.OutputStream;
+import java.io.Writer;
+import java.net.URL;
+import java.util.Properties;
+import org.apache.maven.artifact.manager.WagonManager;
+
+/** @author Jason van Zyl */
+public class ArchetyperRoundtripWithProxyTest
+    extends PlexusTestCase
+{
+    Jetty6xEmbeddedLocalContainer container;
+
+    public void testArchetyper()
+        throws Exception
+    {
+        Archetype archetype = (Archetype) lookup( Archetype.ROLE );
+
+        ArchetypeRegistryManager registryManager = (ArchetypeRegistryManager) lookup( ArchetypeRegistryManager.ROLE );
+
+        MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
+
+        ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(),
+            "target/test-classes/repositories/local" ).toURI().
+            toURL().
+            toExternalForm(),
+            "local-repo" );
+        ArtifactRepository centralRepository = registryManager.createRepository( new File( getBasedir(),
+            "target/test-classes/repositories/central" ).toURI().
+            toURL().
+            toExternalForm(),
+            "central-repo" );
+
+        // (1) create a project from scratch
+        // (2) create an archetype from the project
+        // (3) create our own archetype catalog properties in memory
+        // (4) create our own archetype catalog describing the archetype we just created
+        // (5) deploy the archetype we just created
+        // (6) create a project form the archetype we just created
+        // ------------------------------------------------------------------------
+        //
+        // ------------------------------------------------------------------------
+        // (1) create a project from scratch
+//        File sourceProject = new File( getBasedir(  ), "target/test-classes/projects/roundtrip-1-project" );
+
+        File workingProject = new File( getBasedir(),
+            "target/test-classes/projects/roundtrip-2-project" );
+
+        // (2) create an archetype from the project
+        File pom = new File( workingProject, "pom.xml" );
+
+        MavenProject project = projectBuilder.build( pom, localRepository, null );
+
+        ArchetypeCreationRequest acr = new ArchetypeCreationRequest().setProject( project ).
+            setLocalRepository( localRepository );
+
+        ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr );
+
+        if ( creationResult.getCause() != null )
+        {
+            fail( creationResult.getCause().getMessage() );
+        }
+
+        // (3) create our own archetype catalog properties in memory
+        File catalogDirectory = new File( getBasedir(), "target/catalog" );
+
+        File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" );
+
+        File catalogProperties = new File( catalogDirectory,
+            "archetype-catalog.properties" );
+
+        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" );
+
+        // (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" );
+
+        File archetypeArchive = archetype.archiveArchetype( archetypeDirectory,
+            new File( generatedArchetypeProject.getBuild().getDirectory() ),
+            generatedArchetypeProject.getBuild().getFinalName() );
+
+        File archetypeInRepository = new File( centralRepository.getBasedir(),
+            StringUtils.replace(
+            generatedArchetypeProject.getGroupId(), ".",
+            "/" ) + "/" +
+            generatedArchetypeProject.getArtifactId() + "/" +
+            generatedArchetypeProject.getVersion() + "/" +
+            generatedArchetypeProject.getBuild().
+            getFinalName() +
+            ".jar" );
+        archetypeInRepository.getParentFile().mkdirs();
+        FileUtils.copyFile( archetypeArchive, archetypeInRepository );
+
+        // (4) create our own archetype catalog describing the archetype we just created
+        ArchetypeCatalog catalog = new ArchetypeCatalog();
+        org.apache.maven.archetype.catalog.Archetype generatedArchetype = new org.apache.maven.archetype.catalog.Archetype();
+        generatedArchetype.setGroupId( generatedArchetypeProject.getGroupId() );
+        generatedArchetype.setArtifactId( generatedArchetypeProject.getArtifactId() );
+        generatedArchetype.setVersion( generatedArchetypeProject.getVersion() );
+        generatedArchetype.setRepository( "http://127.0.0.2:18881/" );
+        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/test-classes/projects/roundtrip-2-recreatedproject" ).getAbsolutePath();
+
+        WagonManager manager = (WagonManager) lookup(WagonManager.class);
+        manager.addProxy("http", "localhost", 18882, null, null, null);
+
+        ArchetypeGenerationRequest agr =
+            new ArchetypeGenerationRequest().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://127.0.0.2:18881/" );
+        ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr );
+
+        if ( generationResult.getCause() != null )
+        {
+            fail( generationResult.getCause().getMessage() );
+        }
+
+    }
+
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+        //        Start Cargo
+
+        Jetty6xEmbeddedStandaloneLocalConfiguration configuration =
+            new Jetty6xEmbeddedStandaloneLocalConfiguration( "target/proxy-webapp" );
+        configuration.setProperty( ServletPropertySet.PORT, "18882" );
+
+        System.setProperty( "org.apache.maven.archetype.reporitory.directory",
+            getTestPath( "target/test-classes/repositories/central" ) );
+        container = new Jetty6xEmbeddedLocalContainer( configuration );
+        container.setTimeout( 180000L );
+        container.start();
+
+        DeployableFactory factory = new DefaultDeployableFactory();
+        WAR war = (WAR) factory.createDeployable( container.getId(),
+            "target/wars/archetype-proxy.war",
+            DeployableType.WAR );
+
+        war.setContext( "/" );
+
+        Deployer deployer = new Jetty6xEmbeddedLocalDeployer( container );
+        deployer.deploy( war,
+            new URLDeployableMonitor( new URL( "http://localhost:18882/dummy" ) ) );
+        deployer.start( war );
+
+    }
+
+    public void tearDown()
+        throws Exception
+    {
+        super.tearDown();
+        //        Stop Cargo
+
+        container.stop();
+    }
+}

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

Modified: 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=596854&r1=596853&r2=596854&view=diff
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/pom.xml (original)
+++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/test/resources/projects/roundtrip-1-project/pom.xml Tue Nov 20 14:31:04 2007
@@ -22,10 +22,10 @@
            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>
+  <artifactId>test-project-1</artifactId>
   <packaging>jar</packaging>
   <version>1.0</version>
-  <name>test-project</name>
+  <name>test-project-1</name>
   <url>http://maven.apache.org</url>
   <dependencies>
     <dependency>