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);