Merge pull request #385 from matthewadams/generic-exporter-improvements

GenericExporter improvements
This commit is contained in:
Timo Westkämper 2013-04-08 22:52:43 -07:00
commit ead84fca42
4 changed files with 39 additions and 11 deletions

View File

@ -53,6 +53,16 @@ public abstract class AbstractExporterMojo extends AbstractMojo {
* @parameter required=true
*/
private String[] packages;
/**
* @parameter default-value=true
*/
private boolean handleFields = true;
/**
* @parameter default-value=true
*/
private boolean handleMethods = true;
/**
* @parameter expression="${project}" readonly=true required=true
@ -113,7 +123,26 @@ public abstract class AbstractExporterMojo extends AbstractMojo {
exporter.export(packages);
}
protected abstract void configure(GenericExporter exporter);
/**
* Configures the {@link GenericExporter} generically; subclasses may override if desired.
* @see #configureSpecifically(GenericExporter)
*/
protected void configure(GenericExporter exporter) {
exporter.setHandleFields(handleFields);
exporter.setHandleMethods(handleMethods);
configureSpecifically(exporter);
}
/**
* Configures the {@link GenericExporter} specifically for the technology at
* hand. This method is intended to be overridden, but not required if there
* are no specifics to be configured.
*
* @see #configure(GenericExporter)
*/
protected void configureSpecifically(GenericExporter exporter) {
}
@SuppressWarnings("unchecked")
protected ClassLoader getProjectClassLoader() throws DependencyResolutionRequiredException,
@ -178,4 +207,11 @@ public abstract class AbstractExporterMojo extends AbstractMojo {
this.buildContext = buildContext;
}
public void setHandleFields(boolean handleFields) {
this.handleFields = handleFields;
}
public void setHandleMethods(boolean handleMethods) {
this.handleMethods = handleMethods;
}
}

View File

@ -13,8 +13,6 @@
*/
package com.mysema.query.maven;
import com.mysema.query.codegen.GenericExporter;
/**
* GenericExporterMojo calls the GenericExporter tool using the classpath of the module
*
@ -22,10 +20,4 @@ import com.mysema.query.codegen.GenericExporter;
* @requiresDependencyResolution test
*/
public class GenericExporterMojo extends AbstractExporterMojo {
@Override
protected void configure(GenericExporter exporter) {
// do nothing
}
}

View File

@ -30,7 +30,7 @@ import com.mysema.query.codegen.GenericExporter;
public class JDOExporterMojo extends AbstractExporterMojo {
@Override
protected void configure(GenericExporter exporter) {
protected void configureSpecifically(GenericExporter exporter) {
exporter.setEmbeddableAnnotation(EmbeddedOnly.class);
exporter.setEmbeddedAnnotation(Embedded.class);
exporter.setEntityAnnotation(PersistenceCapable.class);

View File

@ -31,7 +31,7 @@ import com.mysema.query.codegen.GenericExporter;
public class JPAExporterMojo extends AbstractExporterMojo {
@Override
protected void configure(GenericExporter exporter) {
protected void configureSpecifically(GenericExporter exporter) {
exporter.setEmbeddableAnnotation(Embeddable.class);
exporter.setEmbeddedAnnotation(Embedded.class);
exporter.setEntityAnnotation(Entity.class);