diff --git a/pom.xml b/pom.xml
index 68d8405..461ea75 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,19 +11,10 @@
org.neo4j.build.plugins
maven-plugin
0.1-SNAPSHOT
- docs Maven Mojo
- http://maven.apache.org
+ Neo4j documentation assembler.
+ components.neo4j.org
+
-
- org.apache.maven
- maven-plugin-api
- 3.0.3
-
-
- org.apache.maven
- maven-core
- 3.0.3
-
org.twdata.maven
mojo-executor
@@ -90,5 +81,83 @@
+
+
+
+ org.apache.maven
+ maven-core
+ 3.0.3
+
+
+ org.apache.maven
+ maven-settings
+ 3.0.3
+
+
+ org.codehaus.plexus
+ plexus-utils
+ 2.0.6
+
+
+ org.apache.maven
+ maven-model
+ 3.0.3
+
+
+ org.codehaus.plexus
+ plexus-interpolation
+ 1.14
+
+
+ org.apache.maven
+ maven-artifact
+ 3.0.3
+
+
+ org.apache.maven
+ maven-plugin-api
+ 3.0.3
+
+
+ org.sonatype.aether
+ aether-api
+ 1.11
+
+
+ org.sonatype.sisu
+ sisu-inject-plexus
+ 2.1.1
+
+
+ org.apache.maven
+ maven-repository-metadata
+ 3.0.3
+
+
+ org.apache.maven
+ maven-project
+ 3.0-alpha-2
+
+
+ org.apache.maven
+ maven-monitor
+ 2.2.1
+
+
+ org.codehaus.plexus
+ plexus-container-default
+ 1.5.5
+
+
+ org.codehaus.plexus
+ plexus-classworlds
+ 2.4
+
+
+ org.codehaus.plexus
+ plexus-component-annotations
+ 1.5.5
+
+
+
-
diff --git a/src/docs/subdir1/file2.txt b/src/docs/subdir1/file2.txt
new file mode 100644
index 0000000..1e82757
--- /dev/null
+++ b/src/docs/subdir1/file2.txt
@@ -0,0 +1,3 @@
+content2
+${project.groupId}
+
diff --git a/src/main/java/org/neo4j/build/plugins/docs/AssembleMojo.java b/src/main/java/org/neo4j/build/plugins/docs/AssembleMojo.java
index 92c1836..be7e885 100644
--- a/src/main/java/org/neo4j/build/plugins/docs/AssembleMojo.java
+++ b/src/main/java/org/neo4j/build/plugins/docs/AssembleMojo.java
@@ -21,6 +21,7 @@
import java.util.List;
+import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
@@ -39,7 +40,14 @@ public class AssembleMojo extends AbstractMojo
*
* @parameter
*/
- private List sourceDirectories;
+ protected List sourceDirectories;
+
+ /**
+ * If filtering should be applied to files.
+ *
+ * @parameter expression="${filter}" default-value="false"
+ */
+ protected boolean filter;
/**
* The maven project.
@@ -47,23 +55,31 @@ public class AssembleMojo extends AbstractMojo
* @parameter expression="${project}"
* @readonly
*/
- private MavenProject project;
+ protected MavenProject project;
/**
* @component
*/
- private MavenProjectHelper projectHelper;
+ protected MavenProjectHelper projectHelper;
/**
- * @component
+ *
+ * @component role="org.apache.maven.shared.filtering.MavenResourcesFiltering" role-hint="default"
+ * @required
+ */
+ protected MavenResourcesFiltering resourceFiltering;
+
+ /**
+ * @parameter default-value="${session}"
+ * @readonly
+ * @required
*/
- private MavenResourcesFiltering resourceFiltering;
+ protected MavenSession session;
@Override
public void execute() throws MojoExecutionException
{
- DocsAssembler.assemble( project, getLog(), projectHelper,
- sourceDirectories, resourceFiltering );
+ DocsAssembler.assemble( sourceDirectories, filter, getLog(),
+ session, project, projectHelper, resourceFiltering );
}
}
-
diff --git a/src/main/java/org/neo4j/build/plugins/docs/DocsAssembler.java b/src/main/java/org/neo4j/build/plugins/docs/DocsAssembler.java
index e075d7b..534789e 100644
--- a/src/main/java/org/neo4j/build/plugins/docs/DocsAssembler.java
+++ b/src/main/java/org/neo4j/build/plugins/docs/DocsAssembler.java
@@ -31,6 +31,7 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
+import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Resource;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.logging.Log;
@@ -55,58 +56,49 @@ public final class DocsAssembler
private MavenResourcesFiltering resourceFiltering;
+ private MavenSession session;
+
private Log getLog()
{
return log;
}
- private DocsAssembler( final MavenProject project, final Log log,
- final MavenProjectHelper projectHelper )
+ public DocsAssembler( final MavenProject project, final Log log,
+ final MavenProjectHelper projectHelper,
+ final MavenResourcesFiltering resourceFiltering,
+ MavenSession session )
{
this.project = project;
this.log = log;
this.projectHelper = projectHelper;
- }
-
- public DocsAssembler( final MavenProject project, final Log log,
- final MavenProjectHelper projectHelper,
- final MavenResourcesFiltering resourceFiltering )
- {
- this( project, log, projectHelper );
this.resourceFiltering = resourceFiltering;
+ this.session = session;
}
- static File assemble( final MavenProject project, final Log log,
- final MavenProjectHelper projectHelper,
- final List sourceDirectories )
+ static File assemble( final List sourceDirectories, final boolean filter,
+ final Log log,
+ MavenSession session, final MavenProject project,
+ final MavenProjectHelper projectHelper, MavenResourcesFiltering resourceFiltering )
throws MojoExecutionException
{
DocsAssembler assembler = new DocsAssembler( project, log,
- projectHelper );
- return assembler.doAssembly( sourceDirectories );
+ projectHelper, resourceFiltering, session );
+ return assembler.doAssembly( sourceDirectories, filter );
}
- static File assemble( final MavenProject project, final Log log,
- final MavenProjectHelper projectHelper,
- final List sourceDirectories,
- final MavenResourcesFiltering resourceFiltering )
- throws MojoExecutionException
- {
- DocsAssembler assembler = new DocsAssembler( project, log,
- projectHelper, resourceFiltering );
- return assembler.doAssembly( sourceDirectories );
- }
-
- private File doAssembly( final List sourceDirectories )
+ private File doAssembly( final List sourceDirectories,
+ final boolean filter )
throws MojoExecutionException
{
+ getLog().info( "Filtering is: " + ( filter ? "on" : "off" ) );
List dirs = getDirectories( sourceDirectories );
File destFile = null;
- if ( resourceFiltering != null )
+ if ( filter )
{
File target = new File( new File( project.getBuild()
.getDirectory() ), "filtered-docs" );
+ deleteRecursively( target );
filterResources( dirs, target );
destFile = createArchive( Collections.singletonList( target ) );
}
@@ -177,38 +169,37 @@ private void filterResources( final List directories, File targetDir )
int baseDirLength = project.getBasedir()
.getAbsolutePath()
.length() + 1;
- MavenResourcesExecution resourcesExecution = new MavenResourcesExecution();
- resourcesExecution.setEncoding( "UTF-8" );
- resourcesExecution.setMavenProject( project );
- resourcesExecution.setOutputDirectory( targetDir );
- resourcesExecution.setResourcesBaseDirectory( project.getBasedir() );
- resourcesExecution.addFilterWrapper( new FileUtils.FilterWrapper()
- {
- @Override
- public Reader getReader( final Reader reader )
- {
- return reader;
- }
- } );
List resources = new ArrayList();
for ( File dir : directories )
{
Resource resource = new Resource();
resource.setDirectory( dir.getAbsolutePath()
.substring( baseDirLength ) );
- getLog().info( "Adding source directory: " + dir );
resource.setFiltering( true );
+ getLog().info( "Adding source directory: " + dir );
resources.add( resource );
}
- resourcesExecution.setResources( resources );
+
+ MavenResourcesExecution resourcesExecution = new MavenResourcesExecution(
+ resources, targetDir, project, "UTF-8",
+ Collections.