You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2015/08/10 16:50:35 UTC

svn commit: r1695098 - in /aries/trunk/blueprint/blueprint-maven-plugin/src: main/java/org/apache/aries/blueprint/plugin/ test/java/org/apache/aries/blueprint/plugin/

Author: cschneider
Date: Mon Aug 10 14:50:35 2015
New Revision: 1695098

URL: http://svn.apache.org/r1695098
Log:
[ARIES-1373] Add switch to generator for the annotation based style of jpa 2.1.0

Modified:
    aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java
    aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java
    aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java?rev=1695098&r1=1695097&r2=1695098&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java Mon Aug 10 14:50:35 2015
@@ -59,6 +59,14 @@ public class GenerateMojo extends Abstra
      * @required
      */
     protected List<String> scanPaths;
+    
+    /**
+     * true: Purely annotated mode (needs jpa 2.1.0 and transaction-blueprint 1.1.0)
+     * false: XML based mode for JPA 1.x and transaction-blueprint < 1.1.0
+     * @parameter default-value="true"
+     * @required
+     */
+    protected boolean persistenceAnnotated;
 
     public void execute() throws MojoExecutionException, MojoFailureException {
         try {
@@ -75,7 +83,7 @@ public class GenerateMojo extends Abstra
             Set<Class<?>> classes = FilteredClassFinder.findClasses(finder, scanPaths);
             Context context = new Context(classes);
             context.resolve();
-            new Generator(context, new FileOutputStream(file)).generate();
+            new Generator(context, new FileOutputStream(file), persistenceAnnotated).generate();
         } catch (Exception e) {
             throw new MojoExecutionException("Error building commands help", e);
         }

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java?rev=1695098&r1=1695097&r2=1695098&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java Mon Aug 10 14:50:35 2015
@@ -39,13 +39,16 @@ public class Generator implements Proper
     private static final String NS_BLUEPRINT = "http://www.osgi.org/xmlns/blueprint/v1.0.0";
     private static final String NS_EXT = "http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0";
     private static final String NS_JPA = "http://aries.apache.org/xmlns/jpa/v1.1.0";
-    private static final String NS_TX = "http://aries.apache.org/xmlns/transactions/v1.1.0";
+    private static final String NS_JPA2 = "http://aries.apache.org/xmlns/jpan/v1.0.0";
+    private static final String NS_TX = "http://aries.apache.org/xmlns/transactions/v1.2.0";
 
     private Context context;
     private XMLStreamWriter writer;
+    private boolean persistenceAnnotated;
 
-    public Generator(Context context, OutputStream os) throws XMLStreamException {
+    public Generator(Context context, OutputStream os, boolean persistenceAnnotated) throws XMLStreamException {
         this.context = context;
+        this.persistenceAnnotated = persistenceAnnotated;
         
         XMLOutputFactory factory = XMLOutputFactory.newInstance();
         writer = factory.createXMLStreamWriter(os);
@@ -56,6 +59,18 @@ public class Generator implements Proper
             writer.writeStartDocument();
             writer.writeCharacters("\n");
             writeBlueprint();
+            
+            if (persistenceAnnotated) {
+                if (isJpaUsed()) {
+                    writer.writeEmptyElement(NS_JPA2, "enable");
+                    writer.writeCharacters("\n");
+                }
+                writer.writeEmptyElement(NS_TX, "enable-annotations");
+                writer.writeCharacters("\n");
+                //if (isJtaUsed()) {
+//                    writer.writeEmptyElement(NS_TX, "enable-annotations");
+                //}
+            }
             for (Bean bean : context.getBeans()) {
                 writeBeanStart(bean);
                 bean.writeProperties(this);
@@ -76,13 +91,37 @@ public class Generator implements Proper
         }
     }
 
+    private boolean isJpaUsed() {
+        boolean jpaUsed = false;
+        for (Bean bean : context.getBeans()) {
+        if (bean.persistenceFields.length > 0) {
+            jpaUsed = true;
+        }
+        }
+        return jpaUsed;
+    }
+
+    private boolean isJtaUsed() {
+        boolean jtaUsed = false;
+        for (Bean bean : context.getBeans()) {
+            if (bean.transactionDef != null) {
+                jtaUsed = true;
+            }
+
+        }
+        return jtaUsed;
+    }
+
     private void writeBlueprint() throws XMLStreamException {
         writer.writeStartElement("blueprint");
         writer.writeDefaultNamespace(NS_BLUEPRINT);
         writer.writeNamespace("ext", NS_EXT);
-        writer.writeNamespace("jpa", NS_JPA);
+        if (persistenceAnnotated) {
+            writer.writeNamespace("jpa", NS_JPA2);
+        } else {
+            writer.writeNamespace("jpa", NS_JPA);
+        }
         writer.writeNamespace("tx", NS_TX);
-        writer.writeCharacters("\n");
     }
     
     public void writeBeanStart(Bean bean) throws XMLStreamException {
@@ -100,9 +139,11 @@ public class Generator implements Proper
             writer.writeAttribute("destroy-method", bean.destroyMethod);
         }
         writer.writeCharacters("\n");
-        writeTransactional(bean.transactionDef);
-
-        writePersistenceFields(bean.persistenceFields);
+        
+        if (!persistenceAnnotated) {
+            writeTransactional(bean.transactionDef);
+            writePersistenceFields(bean.persistenceFields);
+        }
     }
     
     private void writeFactory(ProducedBean bean) throws XMLStreamException {

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java?rev=1695098&r1=1695097&r2=1695098&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java Mon Aug 10 14:50:35 2015
@@ -56,7 +56,7 @@ public class GeneratorTest {
         Context context = new Context(beanClasses);
         context.resolve();
         ByteArrayOutputStream os = new ByteArrayOutputStream();
-        new Generator(context, os).generate();
+        new Generator(context, os, false).generate();
         System.out.println(os.toString("UTF-8"));
 
         document = readToDocument(os);