diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java index 56b5ba58a..00a345144 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java @@ -129,13 +129,13 @@ public class Processor { private String namePrefix; - private Class entityAnn; + private final Class entityAnn; - private Class superTypeAnn; + private final Class superTypeAnn; - private Class embeddableAnn; + private final Class embeddableAnn; - private Class dtoAnn; + private final Class dtoAnn; public Processor(ProcessingEnvironment env, Class entityAnn, diff --git a/querydsl-apt/src/main/java/com/mysema/query/hql/apt/JPAAnnotationProcessor.java b/querydsl-apt/src/main/java/com/mysema/query/hql/apt/JPAAnnotationProcessor.java new file mode 100644 index 000000000..3d9cddbd9 --- /dev/null +++ b/querydsl-apt/src/main/java/com/mysema/query/hql/apt/JPAAnnotationProcessor.java @@ -0,0 +1,42 @@ +package com.mysema.query.hql.apt; + +import java.lang.annotation.Annotation; +import java.util.Set; + +import javax.annotation.processing.AbstractProcessor; +import javax.annotation.processing.RoundEnvironment; +import javax.annotation.processing.SupportedAnnotationTypes; +import javax.annotation.processing.SupportedSourceVersion; +import javax.lang.model.SourceVersion; +import javax.lang.model.element.TypeElement; +import javax.tools.Diagnostic; + +import com.mysema.query.annotations.Projection; +import com.mysema.query.apt.Processor; + +/** + * @author tiwe + * + */ +@SupportedAnnotationTypes("*") +@SupportedSourceVersion(SourceVersion.RELEASE_6) +public class JPAAnnotationProcessor extends AbstractProcessor{ + + @SuppressWarnings("unchecked") + @Override + public boolean process(Set annotations, RoundEnvironment roundEnv) { + try { + processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Running " + getClass().getSimpleName()); + Class entity = (Class)Class.forName("javax.persistence.Entity"); + Class superType = (Class)Class.forName("javax.persistence.MappedSuperclass"); + Class embeddable = (Class)Class.forName("javax.persistence.Embeddable"); + Class dtoAnnotation = Projection.class; + Processor p = new Processor(processingEnv, entity, superType, embeddable, dtoAnnotation, "Q"); + p.process(roundEnv); + return true; + } catch (ClassNotFoundException e) { + throw new RuntimeException(e.getMessage(), e); + } + } + +} diff --git a/querydsl-apt/src/main/java/com/mysema/query/jdoql/apt/JDOAnnotationProcessor.java b/querydsl-apt/src/main/java/com/mysema/query/jdoql/apt/JDOAnnotationProcessor.java new file mode 100644 index 000000000..a1557eb02 --- /dev/null +++ b/querydsl-apt/src/main/java/com/mysema/query/jdoql/apt/JDOAnnotationProcessor.java @@ -0,0 +1,42 @@ +package com.mysema.query.jdoql.apt; + +import java.lang.annotation.Annotation; +import java.util.Set; + +import javax.annotation.processing.AbstractProcessor; +import javax.annotation.processing.RoundEnvironment; +import javax.annotation.processing.SupportedAnnotationTypes; +import javax.annotation.processing.SupportedSourceVersion; +import javax.lang.model.SourceVersion; +import javax.lang.model.element.TypeElement; +import javax.tools.Diagnostic; + +import com.mysema.query.annotations.Projection; +import com.mysema.query.apt.Processor; + +/** + * @author tiwe + * + */ +@SupportedAnnotationTypes("*") +@SupportedSourceVersion(SourceVersion.RELEASE_6) +public class JDOAnnotationProcessor extends AbstractProcessor{ + + @SuppressWarnings("unchecked") + @Override + public boolean process(Set annotations, RoundEnvironment roundEnv) { + try { + processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Running " + getClass().getSimpleName()); + Class entity = (Class)Class.forName("javax.jdo.annotations.PersistenceCapable"); + Class superType = null; // ?!? + Class embeddable = (Class)Class.forName("javax.jdo.annotations.EmbeddedOnly"); + Class dtoAnnotation = Projection.class; + Processor p = new Processor(processingEnv, entity, superType, embeddable, dtoAnnotation, "Q"); + p.skipGetters().process(roundEnv); + return true; + } catch (ClassNotFoundException e) { + throw new RuntimeException(e.getMessage(), e); + } + } + +} \ No newline at end of file diff --git a/querydsl-hql/pom.xml b/querydsl-hql/pom.xml index 2acb5319b..83feeef42 100644 --- a/querydsl-hql/pom.xml +++ b/querydsl-hql/pom.xml @@ -45,7 +45,7 @@ com.mysema.querydsl - querydsl-hql-apt + querydsl-apt ${project.parent.version} diff --git a/querydsl-jdoql/pom.xml b/querydsl-jdoql/pom.xml index 6d5409015..b68dc6848 100644 --- a/querydsl-jdoql/pom.xml +++ b/querydsl-jdoql/pom.xml @@ -31,7 +31,7 @@ com.mysema.querydsl - querydsl-jdoql-apt + querydsl-apt ${project.parent.version} diff --git a/querydsl-root/pom.xml b/querydsl-root/pom.xml index 8e0b9c637..e87cada19 100644 --- a/querydsl-root/pom.xml +++ b/querydsl-root/pom.xml @@ -35,9 +35,7 @@ ../querydsl-apt ../querydsl-apt-jdk5 ../querydsl-collections - ../querydsl-jdoql-apt ../querydsl-jdoql - ../querydsl-hql-apt ../querydsl-hql ../querydsl-sql ../querydsl-docs