Author: rafale Date: Tue Mar 24 19:59:51 2009 New Revision: 757987 URL: http://svn.apache.org/viewvc?rev=757987&view=rev Log: Using remote catalog preferably, but defaulting to internal when remote don't exists (remote = http://repo1.maven.org/maven2/archetype-catalog.xml)
Modified: maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java Modified: maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java?rev=757987&r1=757986&r2=757987&view=diff ============================================================================== --- maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java (original) +++ maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java Tue Mar 24 19:59:51 2009 @@ -131,7 +131,7 @@ * @required */ private List remoteArtifactRepositories; - + /** * User settings use to check the interactiveMode. * @@ -143,8 +143,8 @@ /** @parameter expression="${basedir}" */ private File basedir; - /** - * @parameter expression="${session}" + /** + * @parameter expression="${session}" * @readonly */ private MavenSession session; @@ -157,9 +157,9 @@ public void execute() throws MojoExecutionException, MojoFailureException - { + { Properties executionProperties = session.getExecutionProperties(); - + ArchetypeGenerationRequest request = new ArchetypeGenerationRequest() .setArchetypeGroupId( archetypeGroupId ) .setArchetypeArtifactId( archetypeArtifactId ) @@ -179,7 +179,7 @@ { getLog().info( "Generating project in Batch mode" ); } - + selector.selectArchetype( request, interactiveMode, archetypeCatalog ); configurator.configureArchetype( request, interactiveMode, executionProperties ); Modified: maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java?rev=757987&r1=757986&r2=757987&view=diff ============================================================================== --- maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java (original) +++ maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java Tue Mar 24 19:59:51 2009 @@ -54,7 +54,7 @@ /** @plexus.requirement */ private org.apache.maven.archetype.Archetype archetype; - public void selectArchetype( ArchetypeGenerationRequest request, + public void selectArchetype( ArchetypeGenerationRequest request, Boolean interactiveMode, String catalogs ) throws ArchetypeNotDefined, @@ -62,7 +62,7 @@ UnknownGroup, IOException, PrompterException, - ArchetypeSelectionFailure + ArchetypeSelectionFailure { //This should be an internal class ArchetypeDefinition definition = new ArchetypeDefinition(); @@ -70,7 +70,7 @@ definition.setGroupId( request.getArchetypeGroupId() ); definition.setArtifactId( request.getArchetypeArtifactId() ); definition.setVersion( request.getArchetypeVersion() ); - + Map archetypes = getArchetypesByCatalog ( catalogs ); if ( definition.isDefined () @@ -109,7 +109,7 @@ else if ( keySplitted.length > 1 ) { int lastIndex = catalogKey.lastIndexOf("/"); - String catalogBase = catalogKey.substring(0, + String catalogBase = catalogKey.substring(0, (lastIndex > 7 ? lastIndex : catalogKey.length())); definition.setRepository ( catalogBase ); } @@ -124,7 +124,7 @@ { getLogger ().warn ( "No archetype repository found. Falling back to central repository (http://repo1.maven.org/maven2). " ); getLogger ().warn ( "Use -DarchetypeRepository=<your repository> if archetype's repository is elsewhere." ); - + definition.setRepository("http://repo1.maven.org/maven2"); } } @@ -157,7 +157,7 @@ else if ( keySplitted.length > 1 ) { int lastIndex = catalogKey.lastIndexOf("/"); - String catalogBase = catalogKey.substring(0, + String catalogBase = catalogKey.substring(0, (lastIndex > 7 ? lastIndex : catalogKey.length())); definition.setRepository ( catalogBase ); } @@ -197,7 +197,7 @@ if ( !definition.isDefined() && !definition.isPartiallyDefined() ) { - // if artifact ID is set to it's default, we still prompt to confirm + // if artifact ID is set to it's default, we still prompt to confirm if ( definition.getArtifactId() == null ) { getLogger().info( "No archetype defined. Using " + DEFAULT_ARCHETYPE_ARTIFACTID + " (" @@ -225,7 +225,7 @@ else if ( keySplitted.length > 1 ) { int lastIndex = catalogKey.lastIndexOf("/"); - String catalogBase = catalogKey.substring(0, + String catalogBase = catalogKey.substring(0, (lastIndex > 7 ? lastIndex : catalogKey.length())); definition.setRepository ( catalogBase ); } @@ -275,7 +275,13 @@ } else if ("local".equalsIgnoreCase(catalog)) { archetypes.put("local", archetype.getDefaultLocalCatalog().getArchetypes()); } else if ("remote".equalsIgnoreCase(catalog)) { - archetypes.put("remote", archetype.getRemoteCatalog().getArchetypes()); + List archetypesFromRemote = archetype.getRemoteCatalog().getArchetypes(); + if(archetypesFromRemote.size() > 0) { + archetypes.put("remote", archetypesFromRemote); + } else { + getLogger().warn("No archetype found in Remote catalog. Defaulting to internal Catalog"); + archetypes.put("internal", archetype.getInternalCatalog().getArchetypes()); + } } else if (catalog.startsWith("file://")) { String path = catalog.substring(7); archetypes.put(catalog, archetype.getLocalCatalog(path).getArchetypes());