Author: rafale Date: Wed Jun 11 11:53:25 2008 New Revision: 666784 URL: http://svn.apache.org/viewvc?rev=666784&view=rev Log: Fix for archetype-170 Better handing of dot files.
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java?rev=666784&r1=666783&r2=666784&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java (original) +++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java Wed Jun 11 11:53:25 2008 @@ -69,12 +69,6 @@ return result; } -// public List filterFiles( FileSet fileSet, -// List archetypeResources ) -// { -// return filterFiles( "", fileSet, archetypeResources ); -// } - public List filterFiles( String moduleOffset, FileSet fileSet, List archetypeResources ) Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java?rev=666784&r1=666783&r2=666784&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java (original) +++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java Wed Jun 11 11:53:25 2008 @@ -1694,7 +1694,7 @@ excludes = PathUtils.convertPathForOS( excludes ); - List fileNames = FileUtils.getFileNames( basedir, "**", excludes, false ); + List fileNames = FileUtils.getFileNames( basedir, "**,.*,**/.*", excludes, false ); getLogger().debug( "Resolved " + fileNames.size() + " files" ); getLogger().debug( "Resolved Files:" + fileNames ); Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java?rev=666784&r1=666783&r2=666784&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java (original) +++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java Wed Jun 11 11:53:25 2008 @@ -308,25 +308,12 @@ while ( iterator.hasNext() ) { String template = (String) iterator.next(); + File outputFile = getOutputFile( + template, directory, outputDirectoryFile, + packaged, packageName, moduleOffset); - String templateName = StringUtils.replaceOnce( template, directory + "/", "" ); - - if ( !StringUtils.isEmpty( moduleOffset ) ) - { - templateName = StringUtils.replaceOnce( templateName, moduleOffset + "/", "" ); - } - templateName = StringUtils.replace( templateName, File.separator, "/" ); - - File outFile = - new File( - outputDirectoryFile, /*(StringUtils.isEmpty - * (moduleOffset)?"":moduleOffset+"/")+*/ - directory + "/" + ( packaged ? getPackageAsDirectory( packageName ) : "" ) - + "/" + templateName - ); - - copyFile( outFile, template, failIfExists, archetypeZipFile ); - } // end while + copyFile( outputFile, template, failIfExists, archetypeZipFile ); + } } private String getEncoding( String archetypeEncoding ) @@ -342,6 +329,16 @@ return ( StringUtils.isEmpty( moduleOffset ) ? "/" : ( "/" + moduleOffset + "/" ) ); } + private File getOutputFile( String template, String directory, File outputDirectoryFile, boolean packaged, String packageName, String moduleOffset ) + { + String templateName = StringUtils.replaceOnce( template, directory, "" ); + File outputFile = new File( outputDirectoryFile, directory + "/" + + (packaged ? getPackageAsDirectory(packageName) : "") + + "/" + templateName.substring(moduleOffset.length())); + + return outputFile; + } + private String getPackageInPathFormat( String aPackage ) { return StringUtils.replace( aPackage, ".", "/" ); @@ -468,20 +465,17 @@ String template = (String) iterator.next(); String templateName = StringUtils.replaceOnce( template, directory, "" ); + File outputFile = getOutputFile( + template, directory, outputDirectoryFile, + packaged, packageName, moduleOffset); - processTemplate( - new File( - outputDirectoryFile, - directory + "/" + ( packaged ? getPackageAsDirectory( packageName ) : "" ) - + "/" + templateName.substring( moduleOffset.length() ) - ), + processTemplate(outputFile, context, - Constants.ARCHETYPE_RESOURCES + "/" /*+ - *getOffsetSeparator(moduleOffset)*/ + template, + Constants.ARCHETYPE_RESOURCES + "/" + template, archetypeEncoding, failIfExists ); - } // end while + } } private void processFilesetModule( Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java?rev=666784&r1=666783&r2=666784&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java (original) +++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java Wed Jun 11 11:53:25 2008 @@ -28,6 +28,7 @@ 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.archetype.common.Constants; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectBuilder; @@ -58,7 +59,7 @@ public class RoundtripMultiModuleTest extends PlexusTestCase { - private Jetty6xEmbeddedLocalContainer container; + private Jetty6xEmbeddedLocalContainer jettyContainer; public void testArchetyper() throws Exception @@ -104,7 +105,10 @@ MavenProject project = projectBuilder.build( pom, localRepository, null ); ArchetypeCreationRequest acr = new ArchetypeCreationRequest().setProject( project ). - setLocalRepository( localRepository ); + setLocalRepository( localRepository ) + .setFiltereds(Constants.DEFAULT_FILTERED_EXTENSIONS) + .setLanguages(Constants.DEFAULT_LANGUAGES) + ; ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr ); @@ -192,6 +196,20 @@ { fail( generationResult.getCause().getMessage() ); } + + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-api", ".classpath").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-cli", ".classpath").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-core", ".classpath").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-model", ".classpath").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-stores" + File.separator + "myapp-store-memory", ".classpath").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-stores" + File.separator + "myapp-store-xstream", ".classpath").exists()); + + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-api", ".checkstyle").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-cli", ".checkstyle").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-core", ".checkstyle").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-model", ".checkstyle").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-stores" + File.separator + "myapp-store-memory", ".checkstyle").exists()); + assertTrue(new File(outputDirectory + File.separator + "myapp" + File.separator + "myapp-stores" + File.separator + "myapp-store-xstream", ".checkstyle").exists()); } @@ -207,18 +225,18 @@ System.setProperty( "org.apache.maven.archetype.reporitory.directory", getTestPath( "target/test-classes/repositories/central" ) ); - container = new Jetty6xEmbeddedLocalContainer( configuration ); - container.setTimeout( 180000L ); - container.start(); + jettyContainer = new Jetty6xEmbeddedLocalContainer( configuration ); + jettyContainer.setTimeout( 180000L ); + jettyContainer.start(); DeployableFactory factory = new DefaultDeployableFactory(); - WAR war = (WAR) factory.createDeployable( container.getId(), + WAR war = (WAR) factory.createDeployable( jettyContainer.getId(), "target/wars/archetype-repository.war", DeployableType.WAR ); war.setContext( "/repo" ); - Deployer deployer = new Jetty6xEmbeddedLocalDeployer( container ); + Deployer deployer = new Jetty6xEmbeddedLocalDeployer( jettyContainer ); deployer.deploy( war, new URLDeployableMonitor( new URL( "http://localhost:18881/repo/dummy" ) ) ); deployer.start( war ); @@ -231,7 +249,7 @@ super.tearDown(); // Stop Cargo - container.stop(); + jettyContainer.stop(); } private void assertArchetypeCreated(File workingProject) {