Return-Path: Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: (qmail 62616 invoked from network); 7 May 2009 14:39:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 7 May 2009 14:39:05 -0000 Received: (qmail 91463 invoked by uid 500); 7 May 2009 14:39:05 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 91434 invoked by uid 500); 7 May 2009 14:39:05 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 91422 invoked by uid 99); 7 May 2009 14:39:05 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 May 2009 14:39:05 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 May 2009 14:39:02 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id D0D0023889C0; Thu, 7 May 2009 14:38:41 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r772665 - /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java Date: Thu, 07 May 2009 14:38:41 -0000 To: commits@openjpa.apache.org From: ppoddar@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090507143841.D0D0023889C0@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ppoddar Date: Thu May 7 14:38:41 2009 New Revision: 772665 URL: http://svn.apache.org/viewvc?rev=772665&view=rev Log: OPENJPA-1010: Add -Asource option to control target compilable version for the generated meta-model source Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java?rev=772665&r1=772664&r2=772665&view=diff ============================================================================== --- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java (original) +++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java Thu May 7 14:38:41 2009 @@ -65,7 +65,7 @@ "javax.persistence.Entity", "javax.persistence.Embeddable", "javax.persistence.MappedSuperclass" }) -@SupportedOptions( { "log", "out" }) +@SupportedOptions( { "log", "out", "source" }) @SupportedSourceVersion(RELEASE_6) public class AnnotationProcessor6 extends AbstractProcessor { @@ -244,15 +244,34 @@ SourceCode.Class cls = source.getTopLevelClass(); cls.addAnnotation(TypesafeMetamodel.class.getName()) .addArgument("value", originalClass + ".class", false); - cls.addAnnotation(Generated.class.getName()) - .addArgument("value", this.getClass().getName()) - .addArgument("date", new Date().toString()); + if (getSourceVersion() >= 6) { + cls.addAnnotation(Generated.class.getName()) + .addArgument("value", this.getClass().getName()) + .addArgument("date", new Date().toString()); + } } private void comment(SourceCode source) { source.addComment(false, _loc.get("mmg-tool-sign").getMessage()); } + /** + * Parse annotation processor option -Asource=n to detect + * the source version for the generated classes. + * n must be a integer. Default or wrong specification returns 6. + */ + private int getSourceVersion() { + String version = processingEnv.getOptions().get("source"); + if (version != null) { + try { + return Integer.parseInt(version); + } catch (NumberFormatException e) { + + } + } + return 6; + } + private PrintWriter createSourceFile(String metaClass, TypeElement e) throws IOException { JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();