diff --git a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/AbstractExporterMojo.java b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/AbstractExporterMojo.java index 9432d9382..367807476 100644 --- a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/AbstractExporterMojo.java +++ b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/AbstractExporterMojo.java @@ -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; + } } diff --git a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/GenericExporterMojo.java b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/GenericExporterMojo.java index 4c65b3138..c9d9a57f9 100644 --- a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/GenericExporterMojo.java +++ b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/GenericExporterMojo.java @@ -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 - } - } diff --git a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/JDOExporterMojo.java b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/JDOExporterMojo.java index 201de0960..b7ca90a66 100644 --- a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/JDOExporterMojo.java +++ b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/JDOExporterMojo.java @@ -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); diff --git a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/JPAExporterMojo.java b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/JPAExporterMojo.java index 7a2c2e6ca..fcedb5c91 100644 --- a/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/JPAExporterMojo.java +++ b/querydsl-maven-plugin/src/main/java/com/mysema/query/maven/JPAExporterMojo.java @@ -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);