Skip to content

Commit

Permalink
Code and dependencies cleanup.
Browse files Browse the repository at this point in the history
  • Loading branch information
nawroth committed Nov 30, 2011
1 parent d2c347d commit 4582786
Show file tree
Hide file tree
Showing 5 changed files with 169 additions and 103 deletions.
95 changes: 82 additions & 13 deletions pom.xml
Expand Up @@ -11,19 +11,10 @@
<groupId>org.neo4j.build.plugins</groupId> <groupId>org.neo4j.build.plugins</groupId>
<packaging>maven-plugin</packaging> <packaging>maven-plugin</packaging>
<version>0.1-SNAPSHOT</version> <version>0.1-SNAPSHOT</version>
<name>docs Maven Mojo</name> <name>Neo4j documentation assembler.</name>
<url>http://maven.apache.org</url> <url>components.neo4j.org</url>

<dependencies> <dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.0.3</version>
</dependency>
<dependency> <dependency>
<groupId>org.twdata.maven</groupId> <groupId>org.twdata.maven</groupId>
<artifactId>mojo-executor</artifactId> <artifactId>mojo-executor</artifactId>
Expand Down Expand Up @@ -90,5 +81,83 @@
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-settings</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interpolation</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.sonatype.aether</groupId>
<artifactId>aether-api</artifactId>
<version>1.11</version>
</dependency>
<dependency>
<groupId>org.sonatype.sisu</groupId>
<artifactId>sisu-inject-plexus</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-repository-metadata</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>3.0-alpha-2</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-monitor</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-container-default</artifactId>
<version>1.5.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-classworlds</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-annotations</artifactId>
<version>1.5.5</version>
</dependency>
</dependencies>
</dependencyManagement>
</project> </project>

3 changes: 3 additions & 0 deletions src/docs/subdir1/file2.txt
@@ -0,0 +1,3 @@
content2
${project.groupId}

32 changes: 24 additions & 8 deletions src/main/java/org/neo4j/build/plugins/docs/AssembleMojo.java
Expand Up @@ -21,6 +21,7 @@


import java.util.List; import java.util.List;


import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProject;
Expand All @@ -39,31 +40,46 @@ public class AssembleMojo extends AbstractMojo
* *
* @parameter * @parameter
*/ */
private List<String> sourceDirectories; protected List<String> sourceDirectories;

/**
* If filtering should be applied to files.
*
* @parameter expression="${filter}" default-value="false"
*/
protected boolean filter;


/** /**
* The maven project. * The maven project.
* *
* @parameter expression="${project}" * @parameter expression="${project}"
* @readonly * @readonly
*/ */
private MavenProject project; protected MavenProject project;


/** /**
* @component * @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 @Override
public void execute() throws MojoExecutionException public void execute() throws MojoExecutionException
{ {
DocsAssembler.assemble( project, getLog(), projectHelper, DocsAssembler.assemble( sourceDirectories, filter, getLog(),
sourceDirectories, resourceFiltering ); session, project, projectHelper, resourceFiltering );
} }
} }

100 changes: 56 additions & 44 deletions src/main/java/org/neo4j/build/plugins/docs/DocsAssembler.java
Expand Up @@ -31,6 +31,7 @@
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;


import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Resource; import org.apache.maven.model.Resource;
import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.logging.Log; import org.apache.maven.plugin.logging.Log;
Expand All @@ -55,58 +56,49 @@ public final class DocsAssembler


private MavenResourcesFiltering resourceFiltering; private MavenResourcesFiltering resourceFiltering;


private MavenSession session;

private Log getLog() private Log getLog()
{ {
return log; return log;
} }


private DocsAssembler( final MavenProject project, final Log log, public DocsAssembler( final MavenProject project, final Log log,
final MavenProjectHelper projectHelper ) final MavenProjectHelper projectHelper,
final MavenResourcesFiltering resourceFiltering,
MavenSession session )
{ {
this.project = project; this.project = project;
this.log = log; this.log = log;
this.projectHelper = projectHelper; 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.resourceFiltering = resourceFiltering;
this.session = session;
} }


static File assemble( final MavenProject project, final Log log, static File assemble( final List<String> sourceDirectories, final boolean filter,
final MavenProjectHelper projectHelper, final Log log,
final List<String> sourceDirectories ) MavenSession session, final MavenProject project,
final MavenProjectHelper projectHelper, MavenResourcesFiltering resourceFiltering )
throws MojoExecutionException throws MojoExecutionException
{ {
DocsAssembler assembler = new DocsAssembler( project, log, DocsAssembler assembler = new DocsAssembler( project, log,
projectHelper ); projectHelper, resourceFiltering, session );
return assembler.doAssembly( sourceDirectories ); return assembler.doAssembly( sourceDirectories, filter );
} }


static File assemble( final MavenProject project, final Log log, private File doAssembly( final List<String> sourceDirectories,
final MavenProjectHelper projectHelper, final boolean filter )
final List<String> sourceDirectories,
final MavenResourcesFiltering resourceFiltering )
throws MojoExecutionException
{
DocsAssembler assembler = new DocsAssembler( project, log,
projectHelper, resourceFiltering );
return assembler.doAssembly( sourceDirectories );
}

private File doAssembly( final List<String> sourceDirectories )
throws MojoExecutionException throws MojoExecutionException
{ {
getLog().info( "Filtering is: " + ( filter ? "on" : "off" ) );
List<File> dirs = getDirectories( sourceDirectories ); List<File> dirs = getDirectories( sourceDirectories );


File destFile = null; File destFile = null;
if ( resourceFiltering != null ) if ( filter )
{ {
File target = new File( new File( project.getBuild() File target = new File( new File( project.getBuild()
.getDirectory() ), "filtered-docs" ); .getDirectory() ), "filtered-docs" );
deleteRecursively( target );
filterResources( dirs, target ); filterResources( dirs, target );
destFile = createArchive( Collections.singletonList( target ) ); destFile = createArchive( Collections.singletonList( target ) );
} }
Expand Down Expand Up @@ -177,38 +169,37 @@ private void filterResources( final List<File> directories, File targetDir )
int baseDirLength = project.getBasedir() int baseDirLength = project.getBasedir()
.getAbsolutePath() .getAbsolutePath()
.length() + 1; .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<Resource> resources = new ArrayList<Resource>(); List<Resource> resources = new ArrayList<Resource>();
for ( File dir : directories ) for ( File dir : directories )
{ {
Resource resource = new Resource(); Resource resource = new Resource();
resource.setDirectory( dir.getAbsolutePath() resource.setDirectory( dir.getAbsolutePath()
.substring( baseDirLength ) ); .substring( baseDirLength ) );
getLog().info( "Adding source directory: " + dir );
resource.setFiltering( true ); resource.setFiltering( true );
getLog().info( "Adding source directory: " + dir );
resources.add( resource ); resources.add( resource );
} }
resourcesExecution.setResources( resources );
MavenResourcesExecution resourcesExecution = new MavenResourcesExecution(
resources, targetDir, project, "UTF-8",
Collections.<Object>emptyList(),
Collections.emptyList(), session );
resourcesExecution.setResourcesBaseDirectory( project.getBasedir() );
resourcesExecution.addFilterWrapper( new FileUtils.FilterWrapper()
{
@Override
public Reader getReader( final Reader reader )
{
return reader;
}
} );
try try
{ {
resourceFiltering.filterResources( resourcesExecution ); resourceFiltering.filterResources( resourcesExecution );
} }
catch ( MavenFilteringException e ) catch ( MavenFilteringException e )
{ {
// TODO Auto-generated catch block getLog().error( e );
e.printStackTrace();
} }
} }


Expand Down Expand Up @@ -304,4 +295,25 @@ private void addDirectory( final File dir, final List<File> directories )
} }
directories.add( dir ); directories.add( dir );
} }

private static void deleteRecursively( File file )
{
if ( !file.exists() )
{
return;
}

if ( file.isDirectory() )
{
for ( File child : file.listFiles() )
{
deleteRecursively( child );
}
}
if ( !file.delete() )
{
throw new RuntimeException(
"Couldn't empty database. Offending file:" + file );
}
}
} }

0 comments on commit 4582786

Please sign in to comment.