You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/08/31 03:35:16 UTC
svn commit: r571352 - in /maven/plugins/trunk/maven-assembly-plugin: ./
src/main/aspect/ src/main/aspect/org/ src/main/aspect/org/apache/
src/main/aspect/org/apache/maven/ src/main/aspect/org/apache/maven/plugin/
src/main/aspect/org/apache/maven/plugin...
Author: jdcasey
Date: Thu Aug 30 18:35:14 2007
New Revision: 571352
URL: http://svn.apache.org/viewvc?rev=571352&view=rev
Log:
Removing some sysout statements from the main codebase, and adding some debugging aspects for performance, stats, and tracing info, which can be enabled by building with -Paspects (the aspects profile enabled). You'll also have to use various system properties (currently the fastest solution I could find) to trigger the various types of output.
Added:
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/log/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/log/PhaseTracingAspect.aj
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/perf/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/perf/TimingAspect.aj
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/stats/
maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/stats/ArchiverStatsAspect.aj
Modified:
maven/plugins/trunk/maven-assembly-plugin/pom.xml
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java
Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?rev=571352&r1=571351&r2=571352&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Thu Aug 30 18:35:14 2007
@@ -319,22 +319,22 @@
</goals>
<configuration>
<projectsDirectory>${project.build.testOutputDirectory}/projects</projectsDirectory>
+ <!--
<debug>true</debug>
+ -->
<!-- Useful config for debugging one IT -->
- <!--
<pomIncludes>
- <pomInclude>dependency-sets/including-pom-dependency/pom.xml</pomInclude>
- <pomInclude>dependency-sets/including-sar-dependency/pom.xml</pomInclude>
- <pomInclude>dependency-sets/massembly-235/pom.xml</pomInclude>
+ <pomInclude>dependency-sets/dependencySet-unpacked/pom.xml</pomInclude>
</pomIncludes>
<streamLogs>true</streamLogs>
- -->
<!-- END single-IT debugging block. -->
+ <!--
<pomIncludes>
<pomInclude>**/pom.xml</pomInclude>
</pomIncludes>
+ -->
<pomExcludes>
<pomExclude>repositories/repo-with-snapshot-parents/pom.xml</pomExclude>
@@ -357,8 +357,37 @@
</plugins>
</build>
</profile>
+
+ <profile>
+ <id>aspects</id>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>aspectj-maven-plugin</artifactId>
+ <version>1.0-beta-2</version>
+
+ <executions>
+ <execution>
+ <id>weave</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
+
<dependencies>
+ <dependency>
+ <groupId>aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>1.5.3</version>
+ </dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
Added: maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/log/PhaseTracingAspect.aj
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/log/PhaseTracingAspect.aj?rev=571352&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/log/PhaseTracingAspect.aj (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/log/PhaseTracingAspect.aj Thu Aug 30 18:35:14 2007
@@ -0,0 +1,36 @@
+package org.apache.maven.plugin.assembly.aspect.log;
+
+import org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase;
+
+public aspect PhaseTracingAspect
+{
+
+ private boolean timingsEnabled()
+ {
+ return "true".equals( System.getProperty( "assembly.tracePhases", "false" ) ) ||
+ "true".equals( System.getProperty( "assembly.traceAll", "false" ) );
+ }
+
+ private pointcut phaseExecution(): execution( * AssemblyArchiverPhase+.execute( .. ) );
+
+ void around(): phaseExecution()
+ {
+ if ( timingsEnabled() )
+ {
+ Class phaseClass = thisJoinPointStaticPart.getSignature().getDeclaringType();
+ String phaseName = phaseClass.getName().substring( phaseClass.getPackage().getName().length() + 1 );
+
+
+ System.out.println( "Entering assembly phase: " + phaseName );
+
+ proceed();
+
+ System.out.println( "Exiting phase: " + phaseName );
+ }
+ else
+ {
+ proceed();
+ }
+ }
+
+}
Added: maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/perf/TimingAspect.aj
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/perf/TimingAspect.aj?rev=571352&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/perf/TimingAspect.aj (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/perf/TimingAspect.aj Thu Aug 30 18:35:14 2007
@@ -0,0 +1,170 @@
+package org.apache.maven.plugin.assembly.aspect.perf;
+
+import org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase;
+import org.apache.maven.plugin.assembly.artifact.DependencyResolver;
+import org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.ArchivedFileSet;
+import org.codehaus.plexus.archiver.FileSet;
+
+import java.io.File;
+import java.util.Set;
+
+public aspect TimingAspect
+{
+
+ private pointcut resolveDependencies( MavenProject project, String scope, boolean transitive ): execution( Set DependencyResolver+.resolveDependencies( MavenProject, String, .., boolean ) ) && args( project, scope, .., transitive );
+
+ private boolean timingsEnabled()
+ {
+ return "true".equals( System.getProperty( "assembly.showTimings", "false" ) );
+ }
+
+ Set around( MavenProject project, String scope, boolean transitive ): resolveDependencies( project, scope, transitive )
+ {
+ if ( timingsEnabled() )
+ {
+ long start = System.currentTimeMillis();
+
+ Set result = proceed( project, scope, transitive );
+
+ System.out.println( "\n\n" + thisJoinPointStaticPart.getSignature().getName() + "\nfor project: " + project.getId() + "\nwith scope: " + scope + "\ntransitively? " + transitive + "\ntook " + ( System.currentTimeMillis() - start ) + " ms.\n" );
+
+ return result;
+ }
+ else
+ {
+ return proceed( project, scope, transitive );
+ }
+ }
+
+ private pointcut phaseExecution(): execution( * AssemblyArchiverPhase+.execute( .. ) );
+
+ void around(): phaseExecution()
+ {
+ if ( timingsEnabled() )
+ {
+ long start = System.currentTimeMillis();
+
+ proceed();
+
+ Class phaseClass = thisJoinPointStaticPart.getSignature().getDeclaringType();
+ String phaseName = phaseClass.getName().substring( phaseClass.getPackage().getName().length() + 1 );
+
+ System.out.println( "Execution of phase: " + phaseName + " took " + ( System.currentTimeMillis() - start ) + " ms." );
+ }
+ else
+ {
+ proceed();
+ }
+ }
+
+ private pointcut addArchivedFileSet_FileSet( ArchivedFileSet fs ): execution( * AssemblyProxyArchiver.addArchivedFileSet( ArchivedFileSet ) ) && args( fs );
+
+ private pointcut addArchivedFileSet_File( File file ): execution( * AssemblyProxyArchiver.addArchivedFileSet( File, .. ) ) && args( file, .. );
+
+ private pointcut addFileSet( FileSet fs ): execution( * AssemblyProxyArchiver.addFileSet( FileSet ) ) && args( fs );
+
+ private pointcut addFile( File file ): execution( * AssemblyProxyArchiver.addDirectory( File, .. ) ) && args( file, .. );
+
+ private pointcut addDirectory( File file ): execution( * AssemblyProxyArchiver.addFile( File, .. ) ) && args( file, .. );
+
+ private pointcut createArchive(): execution( * AssemblyProxyArchiver.createArchive(..) );
+
+ void around( ArchivedFileSet fs ): addArchivedFileSet_FileSet( fs )
+ {
+ if ( timingsEnabled() )
+ {
+ long start = System.currentTimeMillis();
+
+ proceed( fs );
+
+ System.out.println( thisJoinPointStaticPart.getSignature().getName() + " for artifact: " + fs.getArchive() + " took " + ( System.currentTimeMillis() - start ) + " ms." );
+ }
+ else
+ {
+ proceed( fs );
+ }
+ }
+
+ void around( File file ): addArchivedFileSet_File( file )
+ {
+ if ( timingsEnabled() )
+ {
+ long start = System.currentTimeMillis();
+
+ proceed( file );
+
+ System.out.println( thisJoinPointStaticPart.getSignature().getName() + " for artifact: " + file + " took " + ( System.currentTimeMillis() - start ) + " ms." );
+ }
+ else
+ {
+ proceed( file );
+ }
+ }
+
+ void around( FileSet fs ): addFileSet( fs )
+ {
+ if ( timingsEnabled() )
+ {
+ long start = System.currentTimeMillis();
+
+ proceed( fs );
+
+ System.out.println( thisJoinPointStaticPart.getSignature().getName() + " for file-set: " + fs.getDirectory() + " took " + ( System.currentTimeMillis() - start ) + " ms." );
+ }
+ else
+ {
+ proceed( fs );
+ }
+ }
+
+ void around( File file ): addFile( file )
+ {
+ if ( timingsEnabled() )
+ {
+ long start = System.currentTimeMillis();
+
+ proceed( file );
+
+ System.out.println( thisJoinPointStaticPart.getSignature().getName() + " for file: " + file + " took " + ( System.currentTimeMillis() - start ) + " ms." );
+ }
+ else
+ {
+ proceed( file );
+ }
+ }
+
+ void around( File file ): addDirectory( file )
+ {
+ if ( timingsEnabled() )
+ {
+ long start = System.currentTimeMillis();
+
+ proceed( file );
+
+ System.out.println( thisJoinPointStaticPart.getSignature().getName() + " for dir: " + file + " took " + ( System.currentTimeMillis() - start ) + " ms." );
+ }
+ else
+ {
+ proceed( file );
+ }
+ }
+
+ void around(): createArchive()
+ {
+ if ( timingsEnabled() )
+ {
+ long start = System.currentTimeMillis();
+
+ proceed();
+
+ System.out.println( thisJoinPointStaticPart.getSignature().getName() + " took " + ( System.currentTimeMillis() - start ) + " ms." );
+ }
+ else
+ {
+ proceed();
+ }
+ }
+
+}
Added: maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/stats/ArchiverStatsAspect.aj
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/stats/ArchiverStatsAspect.aj?rev=571352&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/stats/ArchiverStatsAspect.aj (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/aspect/org/apache/maven/plugin/assembly/aspect/stats/ArchiverStatsAspect.aj Thu Aug 30 18:35:14 2007
@@ -0,0 +1,81 @@
+package org.apache.maven.plugin.assembly.aspect.stats;
+
+import org.codehaus.plexus.util.StringUtils;
+
+import org.apache.maven.plugin.assembly.archive.AssemblyArchiver;
+import org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver;
+import org.apache.maven.plugin.assembly.model.Assembly;
+
+public aspect ArchiverStatsAspect
+{
+
+ private pointcut proxyArchiver_AddArchivedFileSet(): execution( * AssemblyProxyArchiver.addArchivedFileSet(..) );
+
+ private pointcut proxyArchiver_AddFileSet(): execution( * AssemblyProxyArchiver.addFileSet(..) );
+
+ private pointcut proxyArchiver_AddFile(): execution( * AssemblyProxyArchiver.addDirectory(..) );
+
+ private pointcut proxyArchiver_AddDirectory(): execution( * AssemblyProxyArchiver.addFile(..) );
+
+ private pointcut assemblyArchiver_createArchive( Assembly assembly ): execution( * AssemblyArchiver.createArchive(Assembly, ..) ) && args(assembly, ..);
+
+ private int archivedFSCount = 0;
+ private int fsCount = 0;
+ private int fileCount = 0;
+ private int dirCount = 0;
+
+ private long start;
+
+ after() returning: proxyArchiver_AddArchivedFileSet()
+ {
+ archivedFSCount++;
+ }
+
+ after() returning: proxyArchiver_AddFileSet()
+ {
+ fsCount++;
+ }
+
+ after() returning: proxyArchiver_AddFile()
+ {
+ fileCount++;
+ }
+
+ after() returning: proxyArchiver_AddDirectory()
+ {
+ dirCount++;
+ }
+
+ before( Assembly assembly ): assemblyArchiver_createArchive( assembly )
+ {
+ start = System.currentTimeMillis();
+ }
+
+ after( Assembly assembly ) returning: assemblyArchiver_createArchive( assembly )
+ {
+ if ( "true".equals( System.getProperty( "assembly.showTimings", "false" ) ) )
+ {
+ long stop = System.currentTimeMillis();
+
+ StringBuffer summary = new StringBuffer();
+
+ summary.append( "\n" );
+ summary.append( "\n*****************************************************" );
+ summary.append( "\nSummary for Assembly: " ).append( assembly.getId() );
+ summary.append( "\n*****************************************************" );
+ summary.append( "\n" );
+ summary.append( "\nArtifacts unpacked: " ).append( archivedFSCount );
+ summary.append( "\nFile-Sets added: " ).append( fsCount );
+ summary.append( "\nDirectories added: " ).append( dirCount );
+ summary.append( "\nIndividual files added: " ).append( fileCount );
+ summary.append( "\nOutput formats: " ).append( StringUtils.join( assembly.getFormats().iterator(), ", " ) );
+ summary.append( "\nTotal time elapsed: " ).append( stop - start ).append( " ms" );
+ summary.append( "\n" );
+ summary.append( "\n*****************************************************" );
+ summary.append( "\n" );
+
+ System.out.println( summary.toString() );
+ }
+ }
+
+}
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java?rev=571352&r1=571351&r2=571352&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java Thu Aug 30 18:35:14 2007
@@ -1,10 +1,7 @@
package org.apache.maven.plugin.assembly.format;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
-import java.io.Reader;
import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
import org.apache.maven.plugin.assembly.utils.AssemblyFileUtils;
@@ -12,12 +9,10 @@
import org.apache.maven.shared.model.fileset.util.FileSetManager;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.IOUtil;
-
public class FileSetFormatter
{
-
+
private final AssemblerConfigurationSource configSource;
private final Logger logger;
@@ -32,45 +27,45 @@
throws AssemblyFormattingException, IOException
{
File formattedDir = archiveBaseDir;
-
+
String lineEndingHint = set.getLineEnding();
-
+
String lineEnding = AssemblyFileUtils.getLineEndingCharacters( lineEndingHint );
- if ( lineEnding != null || set.isFiltered() )
+ if ( ( lineEnding != null ) || set.isFiltered() )
{
-
+
FileSet fileSet = new FileSet();
fileSet.setLineEnding( lineEnding );
fileSet.setDirectory( set.getDirectory() );
fileSet.setIncludes( set.getIncludes() );
-
+
formattedDir = FileUtils.createTempFile( "fileSetFormatter.", ".tmp", configSource.getTemporaryRootDirectory() );
-
+
formattedDir.delete();
formattedDir.mkdirs();
-
+
fileSet.setExcludes( set.getExcludes() );
fileSet.setUseDefaultExcludes( true );
-
+
FileSetManager fsm = new FileSetManager( logger );
String[] files = fsm.getIncludedFiles( fileSet );
-
+
// if we don't have anything to process, let's just skip all of this mess.
- if ( files == null || files.length == 0 )
+ if ( ( files == null ) || ( files.length == 0 ) )
{
logger.info( "No files selected for line-ending conversion. Skipping: " + fileSet.getDirectory() );
-
+
formattedDir.delete();
-
+
return archiveBaseDir;
}
-
+
FileFormatter fileFormatter = new FileFormatter( configSource, logger );
for ( int i = 0; i < files.length; i++ )
{
String file = files[i];
-
+
File targetFile = new File( formattedDir, file );
targetFile.getParentFile().mkdirs();
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java?rev=571352&r1=571351&r2=571352&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java Thu Aug 30 18:35:14 2007
@@ -184,12 +184,6 @@
public static String evaluateFileNameMapping( String expression, Artifact artifact, MavenProject mainProject, MavenProject artifactProject, String artifactProjectRefName )
throws AssemblyFormattingException
{
- System.out.println( "in evaluateFileNameMapping, using expression: " + expression + "\nartifact: "
- + artifact.getId() + "\nmainProject: "
- + ( mainProject != null ? mainProject.getId() : "null" ) + "\nartifactProject: "
- + ( artifactProject != null ? artifactProject.getId() : "null" )
- + "\nartifactProjectRefName: " + artifactProjectRefName );
-
String value = expression;
if ( artifactProjectRefName == null )
@@ -279,8 +273,6 @@
// Now, run the interpolation using the rules stated above.
value = interpolator.interpolate( value, "__artifact" );
-
- System.out.println( "Result of outputFileNameMapping evaluation: \'" + value + "\'" );
return value;
}