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/07/16 22:40:19 UTC
svn commit: r556728 - in /maven/plugins/trunk/maven-assembly-plugin: ./
src/it/container-descriptors/
src/it/container-descriptors/custom-containerDescriptorHandler/
src/it/container-descriptors/custom-containerDescriptorHandler/assembly/
src/it/contai...
Author: jdcasey
Date: Mon Jul 16 13:40:11 2007
New Revision: 556728
URL: http://svn.apache.org/viewvc?view=rev&rev=556728
Log:
Test and implementation of a custom container-descriptor processor.
Added:
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/a.properties (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/pom.xml (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/assemble/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/assemble/bin.xml (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/a/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/a/file.txt (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/b/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/b/file.txt (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/goals.txt (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/pom.xml (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/META-INF/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/META-INF/plexus/
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/META-INF/plexus/components.xml (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/pom.xml (with props)
maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/verify.bsh
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java (with props)
Modified:
maven/plugins/trunk/maven-assembly-plugin/pom.xml
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?view=diff&rev=556728&r1=556727&r2=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Mon Jul 16 13:40:11 2007
@@ -260,17 +260,26 @@
</goals>
<configuration>
<projectsDirectory>src/it</projectsDirectory>
+
+ <!-- Useful config for debugging one IT -->
+ <!--
<debug>true</debug>
<pomIncludes>
+ <pomInclude>container-descriptors/custom-containerDescriptorHandler/pom.xml</pomInclude>
+ </pomIncludes>
+ <streamLogs>true</streamLogs>
+ -->
+ <!-- END single-IT debugging block. -->
+ <pomIncludes>
<pomInclude>**/pom.xml</pomInclude>
</pomIncludes>
<pomExcludes>
- <!-- This isn't working yet...pending fix in the repo builder, I guess -->
<pomExclude>repositories/repo-with-snapshot-parents/pom.xml</pomExclude>
<pomExclude>**/child*/pom.xml</pomExclude>
<pomExclude>**/module*/pom.xml</pomExclude>
<pomExclude>**/descriptor/pom.xml</pomExclude>
+ <pomExclude>**/handler-def/pom.xml</pomExclude>
<pomExclude>**/assembly/pom.xml</pomExclude>
</pomExcludes>
<postBuildHookScript>verify.bsh</postBuildHookScript>
@@ -304,6 +313,28 @@
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-io</artifactId>
<version>1.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-active-collections</artifactId>
+ <version>1.0-beta-2-SNAPSHOT</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-io</artifactId>
+ <version>1.0-alpha-1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/a.properties
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/a.properties?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/a.properties (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/a.properties Mon Jul 16 13:40:11 2007
@@ -0,0 +1 @@
+testProp=boo
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/a.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/a.properties
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/pom.xml?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/pom.xml Mon Jul 16 13:40:11 2007
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.test</groupId>
+ <artifactId>custom-containerDescriptorHandler</artifactId>
+ <version>1</version>
+ </parent>
+
+ <artifactId>assembly</artifactId>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>testing</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.test</groupId>
+ <artifactId>handler-def</artifactId>
+ <version>1</version>
+ </dependency>
+ </dependencies>
+
+ <configuration>
+ <descriptors>
+ <descriptor>src/assemble/bin.xml</descriptor>
+ </descriptors>
+ </configuration>
+
+ <executions>
+ <execution>
+ <id>assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/assemble/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/assemble/bin.xml?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/assemble/bin.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/assemble/bin.xml Mon Jul 16 13:40:11 2007
@@ -0,0 +1,22 @@
+<assembly>
+ <id>bin</id>
+
+ <formats>
+ <format>dir</format>
+ </formats>
+
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <fileSets>
+ <fileSet>
+ <directory>src/config</directory>
+ <outputDirectory>/</outputDirectory>
+ </fileSet>
+ </fileSets>
+
+ <containerDescriptorHandlers>
+ <containerDescriptorHandler>
+ <handlerName>file.txt</handlerName>
+ </containerDescriptorHandler>
+ </containerDescriptorHandlers>
+</assembly>
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/assemble/bin.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/assemble/bin.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/a/file.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/a/file.txt?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/a/file.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/a/file.txt Mon Jul 16 13:40:11 2007
@@ -0,0 +1 @@
+file A
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/a/file.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/a/file.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/b/file.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/b/file.txt?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/b/file.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/b/file.txt Mon Jul 16 13:40:11 2007
@@ -0,0 +1,2 @@
+file B
+
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/b/file.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/assembly/src/config/b/file.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/goals.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/goals.txt?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/goals.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/goals.txt Mon Jul 16 13:40:11 2007
@@ -0,0 +1 @@
+install
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/goals.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/goals.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/pom.xml?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/pom.xml Mon Jul 16 13:40:11 2007
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.test</groupId>
+ <artifactId>custom-containerDescriptorHandler</artifactId>
+ <version>1</version>
+ </parent>
+
+ <artifactId>handler-def</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>testing</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/META-INF/plexus/components.xml?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/META-INF/plexus/components.xml Mon Jul 16 13:40:11 2007
@@ -0,0 +1,14 @@
+<component-set>
+ <components>
+ <component>
+ <role>org.apache.maven.plugin.assembly.filter.ContainerDescriptorHandler</role>
+ <role-hint>file.txt</role-hint>
+ <implementation>org.apache.maven.plugin.assembly.filter.SimpleAggregatingDescriptorHandler</implementation>
+ <configuration>
+ <filePattern>.*/file.txt</filePattern>
+ <outputPath>file.txt</outputPath>
+ <commentChars>#</commentChars>
+ </configuration>
+ </component>
+ </components>
+</component-set>
\ No newline at end of file
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/handler-def/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/pom.xml?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/pom.xml Mon Jul 16 13:40:11 2007
@@ -0,0 +1,14 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.test</groupId>
+ <artifactId>custom-containerDescriptorHandler</artifactId>
+ <packaging>pom</packaging>
+ <version>1</version>
+ <name>custom-containerDescriptorHandler</name>
+
+ <modules>
+ <module>handler-def</module>
+ <module>assembly</module>
+ </modules>
+</project>
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/verify.bsh?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/verify.bsh (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/container-descriptors/custom-containerDescriptorHandler/verify.bsh Mon Jul 16 13:40:11 2007
@@ -0,0 +1,54 @@
+import java.io.*;
+
+boolean result = true;
+
+try
+{
+ File a = new File( basedir, "assembly/target/assembly-1-bin.dir/file.txt");
+ File b = new File( basedir, "assembly/target/assembly-1-bin.dir/b/file.txt");
+
+ if(result && !a.exists() ) {
+ System.out.println( "File: " + a + " should have been generated, but was not." );
+ result = false;
+ }
+
+ if(result) {
+ BufferedReader r = new BufferedReader(new FileReader(a));
+ String s = null;
+
+ boolean foundA = false;
+ boolean foundB = false;
+ while( ( s = r.readLine() ) != null )
+ {
+ if ( s.equals( "file A" ) ) {
+ foundA = true;
+ }
+ else if ( s.equals( "file B" ) ) {
+ foundB = true;
+ }
+
+ if ( foundA && foundB )
+ {
+ result = true;
+ break;
+ }
+ }
+
+ if ( !result )
+ {
+ System.out.println( "File: " + a + " should contain lines:\nfile A\nfile B\n\n ...but didn't." );
+ }
+ }
+
+ if(result && b.exists() ) {
+ System.out.println( "File: " + b + " should not exist, but does." );
+ result = false;
+ }
+}
+catch( IOException e )
+{
+ e.printStackTrace();
+ result = false;
+}
+
+return result;
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java?view=diff&rev=556728&r1=556727&r2=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java Mon Jul 16 13:40:11 2007
@@ -11,10 +11,6 @@
import org.apache.maven.plugin.assembly.model.ContainerDescriptorHandlerConfig;
import org.apache.maven.plugin.assembly.utils.AssemblyFileUtils;
import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
-import org.codehaus.plexus.DefaultPlexusContainer;
-import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.PlexusContainerException;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.filters.JarSecurityFileSelector;
@@ -24,16 +20,13 @@
import org.codehaus.plexus.archiver.tar.TarArchiver;
import org.codehaus.plexus.archiver.tar.TarLongFileMode;
import org.codehaus.plexus.archiver.war.WarArchiver;
+import org.codehaus.plexus.collections.ActiveCollectionManager;
+import org.codehaus.plexus.collections.ActiveMap;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.configuration.PlexusConfigurationResourceException;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.ContextException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
import java.io.File;
import java.io.IOException;
-import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -44,7 +37,7 @@
*/
public class DefaultAssemblyArchiver
extends AbstractLogEnabled
- implements AssemblyArchiver, Contextualizable
+ implements AssemblyArchiver
{
/**
@@ -57,7 +50,10 @@
*/
private List assemblyPhases;
- private PlexusContainer container;
+ /**
+ * @plexus.requirement
+ */
+ private ActiveCollectionManager collectionManager;
public DefaultAssemblyArchiver()
{
@@ -65,10 +61,10 @@
}
// introduced for testing.
- public DefaultAssemblyArchiver( ArchiverManager archiverManager, PlexusContainer container, List assemblyPhases )
+ public DefaultAssemblyArchiver( ArchiverManager archiverManager, ActiveCollectionManager collectionManager, List assemblyPhases )
{
this.archiverManager = archiverManager;
- this.container = container;
+ this.collectionManager = collectionManager;
this.assemblyPhases = assemblyPhases;
}
@@ -140,52 +136,32 @@
List handlers = new ArrayList();
boolean foundPlexus = false;
- for ( Iterator it = containerDescriptorHandlers.iterator(); it.hasNext(); )
+ if ( ( containerDescriptorHandlers != null ) && !containerDescriptorHandlers.isEmpty() )
{
- ContainerDescriptorHandlerConfig config = (ContainerDescriptorHandlerConfig) it.next();
+ ActiveMap handlerMap = collectionManager.getActiveMap( ContainerDescriptorHandler.class );
- String hint = config.getHandlerName();
- ContainerDescriptorHandler handler;
-
- // TODO: There MUST BE a better way that this, but I kept running into
- // incompatible ClassRealm class definitions...so, I give up.
- DefaultPlexusContainer handlerContainer = new DefaultPlexusContainer();
- handlerContainer.setParentPlexusContainer( container );
-
- Object conf = config.getConfiguration();
- if ( conf != null )
+ for ( Iterator it = containerDescriptorHandlers.iterator(); it.hasNext(); )
{
- StringReader reader = new StringReader( String.valueOf( conf ) );
+ ContainerDescriptorHandlerConfig config = (ContainerDescriptorHandlerConfig) it.next();
+
+ String hint = config.getHandlerName();
+ ContainerDescriptorHandler handler;
try
{
- handlerContainer.setConfigurationResource( reader );
- handlerContainer.initialize();
+ handler = (ContainerDescriptorHandler) handlerMap.checkedGet( hint );
}
- catch ( PlexusConfigurationResourceException e )
+ catch ( ComponentLookupException e )
{
throw new InvalidAssemblerConfigurationException( "containerDescriptorHandler: " + hint + " could not be loaded.", e );
}
- catch ( PlexusContainerException e )
- {
- throw new InvalidAssemblerConfigurationException( "containerDescriptorHandler: " + hint + " could not be loaded.", e );
- }
- }
- try
- {
- handler = (ContainerDescriptorHandler) handlerContainer.lookup( ContainerDescriptorHandler.class.getName(), hint );
- }
- catch ( ComponentLookupException e )
- {
- throw new InvalidAssemblerConfigurationException( "containerDescriptorHandler: " + hint + " could not be loaded.", e );
- }
+ handlers.add( handler );
- handlers.add( handler );
-
- if ( "plexus".equals( hint ) )
- {
- foundPlexus = true;
+ if ( "plexus".equals( hint ) )
+ {
+ foundPlexus = true;
+ }
}
}
@@ -299,12 +275,6 @@
tarArchiver.setLongfile( tarFileMode );
return tarArchiver;
- }
-
- public void contextualize( Context context )
- throws ContextException
- {
- container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
}
}
Added: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java?view=auto&rev=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java Mon Jul 16 13:40:11 2007
@@ -0,0 +1,201 @@
+package org.apache.maven.plugin.assembly.filter;
+
+import org.codehaus.plexus.archiver.Archiver;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.UnArchiver;
+import org.codehaus.plexus.components.io.fileselectors.FileInfo;
+import org.codehaus.plexus.logging.LogEnabled;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.logging.console.ConsoleLogger;
+import org.codehaus.plexus.util.IOUtil;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+public class SimpleAggregatingDescriptorHandler
+ implements ContainerDescriptorHandler, LogEnabled
+{
+
+ // component configuration.
+
+ private String filePattern;
+
+ private String outputPath;
+
+ private String commentChars = "#";
+
+ // calculated, temporary values.
+
+ private boolean overrideFilterAction;
+
+ private StringWriter aggregateWriter = new StringWriter();
+
+ private List filenames = new ArrayList();
+
+ // injected by the container.
+
+ private Logger logger;
+
+ public void finalizeArchiveCreation( Archiver archiver )
+ throws ArchiverException
+ {
+ if ( outputPath.endsWith( "/" ) )
+ {
+ throw new ArchiverException(
+ "Cannot write aggregated properties to a directory. You must specify a file name in the outputPath configuration for this handler. (handler: "
+ + getClass().getName() );
+ }
+
+ if ( outputPath.startsWith( "/" ) )
+ {
+ outputPath = outputPath.substring( 1 );
+ }
+
+ File temp = writePropertiesFile();
+
+ overrideFilterAction = true;
+
+ archiver.addFile( temp, outputPath );
+
+ overrideFilterAction = false;
+ }
+
+ private File writePropertiesFile()
+ throws ArchiverException
+ {
+ File f;
+
+ Writer writer = null;
+ try
+ {
+ f = File.createTempFile( "maven-assembly-plugin", "tmp" );
+ f.deleteOnExit();
+
+ writer = new FileWriter( f );
+
+ writer.write( commentChars + " Aggregated on " + new Date() + " from: " );
+
+ for ( Iterator it = filenames.iterator(); it.hasNext(); )
+ {
+ String filename = (String) it.next();
+
+ writer.write( "\n" + commentChars + " " + filename );
+ }
+
+ writer.write( "\n\n" );
+
+ writer.write( aggregateWriter.toString() );
+ }
+ catch ( IOException e )
+ {
+ throw new ArchiverException( "Error adding aggregated properties to finalize archive creation. Reason: "
+ + e.getMessage(), e );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
+
+ return f;
+ }
+
+ public void finalizeArchiveExtraction( UnArchiver unarchiver )
+ throws ArchiverException
+ {
+ }
+
+ public List getVirtualFiles()
+ {
+ return Collections.singletonList( outputPath );
+ }
+
+ public boolean isSelected( FileInfo fileInfo )
+ throws IOException
+ {
+ System.out.println( "\n\nChecking isSelected(..) for file with name: " + fileInfo.getName() + "\nin: " + getClass().getName() + "\n\n" );
+ if ( overrideFilterAction )
+ {
+ return true;
+ }
+
+ String name = fileInfo.getName();
+
+ if ( fileInfo.isFile() && name.matches( filePattern ) )
+ {
+ readProperties( fileInfo );
+ filenames.add( name );
+
+ return false;
+ }
+
+ return true;
+ }
+
+ private void readProperties( FileInfo fileInfo )
+ throws IOException
+ {
+ StringWriter writer = new StringWriter();
+ Reader reader = null;
+ try
+ {
+ reader = new InputStreamReader( fileInfo.getContents() );
+
+ IOUtil.copy( reader, writer );
+ }
+ finally
+ {
+ IOUtil.close( reader );
+ }
+
+ String content = writer.toString();
+
+ aggregateWriter.write( "\n" );
+ aggregateWriter.write( content );
+ }
+
+ protected final Logger getLogger()
+ {
+ if ( logger == null )
+ {
+ logger = new ConsoleLogger( Logger.LEVEL_INFO, "" );
+ }
+
+ return logger;
+ }
+
+ public void enableLogging( Logger logger )
+ {
+ this.logger = logger;
+ }
+
+ public String getPropertiesPattern()
+ {
+ return filePattern;
+ }
+
+ public void setPropertiesPattern( String propertiesPattern )
+ {
+ filePattern = propertiesPattern;
+ }
+
+ public String getOutputPath()
+ {
+ return outputPath;
+ }
+
+ public void setOutputPath( String outputPath )
+ {
+ this.outputPath = outputPath;
+ }
+
+}
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo?view=diff&rev=556728&r1=556727&r2=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo Mon Jul 16 13:40:11 2007
@@ -956,6 +956,7 @@
<type>String</type>
<required>true</required>
</field>
+ <!-- Commented out until it can be implemented and tested...
<field>
<name>configuration</name>
<version>1.1.0</version>
@@ -964,6 +965,7 @@
</description>
<type>DOM</type>
</field>
+ -->
</fields>
</class>
</classes>
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java?view=diff&rev=556728&r1=556727&r2=556728
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java Mon Jul 16 13:40:11 2007
@@ -7,7 +7,6 @@
import org.apache.maven.plugin.assembly.model.Assembly;
import org.apache.maven.plugin.assembly.testutils.MockManager;
import org.apache.maven.plugin.assembly.testutils.TestFileManager;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.archiver.ArchiveFinalizer;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
@@ -18,6 +17,7 @@
import org.codehaus.plexus.archiver.tar.TarLongFileMode;
import org.codehaus.plexus.archiver.war.WarArchiver;
import org.codehaus.plexus.archiver.zip.ZipArchiver;
+import org.codehaus.plexus.collections.ActiveCollectionManager;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.FileUtils;
import org.easymock.ArgumentsMatcher;
@@ -409,7 +409,7 @@
private DefaultAssemblyArchiver createSubject( MockAndControlForAssemblyArchiver macMgr, List phases, Logger logger )
{
- DefaultAssemblyArchiver subject = new DefaultAssemblyArchiver( macMgr.archiverManager, macMgr.container, phases );
+ DefaultAssemblyArchiver subject = new DefaultAssemblyArchiver( macMgr.archiverManager, macMgr.collectionManager, phases );
if ( logger != null )
{
@@ -429,9 +429,9 @@
Archiver archiver;
- MockControl containerControl;
+ MockControl collectionManagerControl;
- PlexusContainer container;
+ ActiveCollectionManager collectionManager;
private final MockManager mm;
@@ -443,10 +443,10 @@
archiverManager = ( ArchiverManager ) control.getMock();
- containerControl = MockControl.createControl( PlexusContainer.class );
- mm.add( containerControl );
+ collectionManagerControl = MockControl.createControl( ActiveCollectionManager.class );
+ mm.add( collectionManagerControl );
- container = (PlexusContainer) containerControl.getMock();
+ collectionManager = (ActiveCollectionManager) collectionManagerControl.getMock();
}
void createArchiver( Class archiverClass )