Author: mszefler
Date: Wed Nov 29 09:19:29 2006
New Revision: 480631
URL: http://svn.apache.org/viewvc?view=rev&rev=480631
Log:
JACOB annotation processor. Replaced XDOCLET Channel/ChannelListener generation
with a JDK5.0 "apt"
based version that uses annotations. The big benefit here is that it is now a
lot easier to modify
the code-generation since it is done in Java and not some crazy xdoclet
language. Also, the
code-generation is a lot faster and is a lot more flexible.
Be aware of "compiler errors" in the jacob and bpel-runtime that aren't. This
is an artifact of the
apt processing mechanism's interaction with our project structure. In any case,
if you see what
look like compile errors, but then the build succeeds, don't worry.
Removed:
incubator/ode/trunk/jacob/src/generated/java/
Modified:
incubator/ode/trunk/bpel-runtime/pom.xml
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ActivityRecovery.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Compensation.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/EventHandlerControl.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/InvokeResponse.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/LinkStatus.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ParentScope.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/PickResponse.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Termination.java
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/TimerResponse.java
incubator/ode/trunk/jacob-ap/src/main/java/org/apache/ode/jacob/ap/ChannelTypeAnnotationProcessor.java
incubator/ode/trunk/jacob/pom.xml
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Synch.java
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Val.java
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/cell/Cell.java
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStream.java
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/synch/SynchPrint.java
incubator/ode/trunk/pom.xml
Modified: incubator/ode/trunk/bpel-runtime/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/pom.xml?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
--- incubator/ode/trunk/bpel-runtime/pom.xml (original)
+++ incubator/ode/trunk/bpel-runtime/pom.xml Wed Nov 29 09:19:29 2006
@@ -61,6 +61,10 @@
</dependency>
<dependency>
<groupId>org.apache.ode</groupId>
+ <artifactId>ode-jacob-ap</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ode</groupId>
<artifactId>ode-utils</artifactId>
</dependency>
<dependency>
@@ -144,32 +148,28 @@
</dependencies>
<build>
<plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xdoclet-maven-plugin</artifactId>
- <executions>
- <execution>
- <phase>generate-sources</phase>
- <goals>
- <goal>xdoclet</goal>
- </goals>
- <configuration>
- <tasks>
- <doclet
destDir="${project.build.directory}/generated-sources/xdoclet" verbose="true">
- <fileset dir="${basedir}/src/main/java"
includes="**/*.java"/>
- <template havingClassTag="jacob.kind"
destinationFile="{0}ChannelListener.java"
templateFile="${basedir}/../jacob/src/xdt/org/apache/ode/jacob/ChannelListener.xdt"/>
- <template havingClassTag="jacob.kind"
destinationFile="{0}Channel.java"
templateFile="${basedir}/../jacob/src/xdt/org/apache/ode/jacob/channel.xdt"/>
- </doclet>
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
+ <plugin>
+ <groupId>org.apache.myfaces.tobago</groupId>
+ <artifactId>maven-apt-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <configuration>
+
<generated>target/generated-sources/apt</generated>
+ <target>1.5</target>
+ </configuration>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
- <phase>process-resources</phase>
+ <phase>test-compile</phase>
<goals><goal>run</goal></goals>
<configuration>
<tasks>
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ActivityRecovery.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ActivityRecovery.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ActivityRecovery.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ActivityRecovery.java
Wed Nov 29 09:19:29 2006
@@ -18,10 +18,12 @@
*/
package org.apache.ode.bpel.runtime.channels;
+import org.apache.ode.jacob.ap.ChannelType;
+
/**
- * @jacob.kind
*/
[EMAIL PROTECTED]
public interface ActivityRecovery {
/**
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Compensation.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Compensation.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Compensation.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Compensation.java
Wed Nov 29 09:19:29 2006
@@ -19,11 +19,11 @@
package org.apache.ode.bpel.runtime.channels;
import org.apache.ode.jacob.SynchChannel;
+import org.apache.ode.jacob.ap.ChannelType;
/**
- *
- * @jacob.kind
- */
+ */
[EMAIL PROTECTED]
public interface Compensation {
public void forget();
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/EventHandlerControl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/EventHandlerControl.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/EventHandlerControl.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/EventHandlerControl.java
Wed Nov 29 09:19:29 2006
@@ -18,10 +18,12 @@
*/
package org.apache.ode.bpel.runtime.channels;
+import org.apache.ode.jacob.ap.ChannelType;
+
/**
* Channel used to control processing of event handler activities.
- * @jacob.kind
*/
[EMAIL PROTECTED]
public interface EventHandlerControl {
/**
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/InvokeResponse.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/InvokeResponse.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/InvokeResponse.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/InvokeResponse.java
Wed Nov 29 09:19:29 2006
@@ -18,10 +18,12 @@
*/
package org.apache.ode.bpel.runtime.channels;
+import org.apache.ode.jacob.ap.ChannelType;
+
/**
* Response channel for pick requests.
- * @jacob.kind
*/
[EMAIL PROTECTED]
public interface InvokeResponse {
public void onResponse();
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/LinkStatus.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/LinkStatus.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/LinkStatus.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/LinkStatus.java
Wed Nov 29 09:19:29 2006
@@ -18,9 +18,11 @@
*/
package org.apache.ode.bpel.runtime.channels;
+import org.apache.ode.jacob.ap.ChannelType;
+
/**
- * @jacob.kind
*/
[EMAIL PROTECTED]
public interface LinkStatus {
void linkStatus(boolean value);
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ParentScope.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ParentScope.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ParentScope.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/ParentScope.java
Wed Nov 29 09:19:29 2006
@@ -25,10 +25,12 @@
import org.w3c.dom.Element;
import java.util.Set;
+import org.apache.ode.jacob.ap.ChannelType;
+
/**
* Channel used for child-to-parent scope communication.
- * @jacob.kind
*/
[EMAIL PROTECTED]
public interface ParentScope {
void compensate(OScope scope, SynchChannel ret);
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/PickResponse.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/PickResponse.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/PickResponse.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/PickResponse.java
Wed Nov 29 09:19:29 2006
@@ -18,12 +18,15 @@
*/
package org.apache.ode.bpel.runtime.channels;
+import org.apache.ode.jacob.ap.ChannelType;
+
/**
* Response channel for pick requests.
* @jacob.kind
* @jacob.parent TimerResponseChannel
*/
-public interface PickResponse extends TimerResponse{
[EMAIL PROTECTED]
+public interface PickResponse extends TimerResponse {
public void onRequestRcvd(int selectorIdx, String mexId);
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Termination.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Termination.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Termination.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/Termination.java
Wed Nov 29 09:19:29 2006
@@ -18,10 +18,13 @@
*/
package org.apache.ode.bpel.runtime.channels;
+
+import org.apache.ode.jacob.ap.ChannelType;
+
/**
* Channel used for parent-to-child scope communication.
- * @jacob.kind
*/
[EMAIL PROTECTED]
public interface Termination {
/**
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/TimerResponse.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/TimerResponse.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/TimerResponse.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/channels/TimerResponse.java
Wed Nov 29 09:19:29 2006
@@ -18,10 +18,12 @@
*/
package org.apache.ode.bpel.runtime.channels;
+import org.apache.ode.jacob.ap.ChannelType;
+
/**
* Channel for timer notification.
- * @jacob.kind
*/
[EMAIL PROTECTED]
public interface TimerResponse {
/** timer event has occurred */
public void onTimeout();
Modified:
incubator/ode/trunk/jacob-ap/src/main/java/org/apache/ode/jacob/ap/ChannelTypeAnnotationProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/jacob-ap/src/main/java/org/apache/ode/jacob/ap/ChannelTypeAnnotationProcessor.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/jacob-ap/src/main/java/org/apache/ode/jacob/ap/ChannelTypeAnnotationProcessor.java
(original)
+++
incubator/ode/trunk/jacob-ap/src/main/java/org/apache/ode/jacob/ap/ChannelTypeAnnotationProcessor.java
Wed Nov 29 09:19:29 2006
@@ -111,6 +111,11 @@
pw.println(" extends org.apache.ode.jacob.ChannelListener<" +
c.getQualifiedName() + "Channel>" );
pw.println(" implements " + c.getQualifiedName());
pw.println("{");
+ pw.println();
+ pw.println(" private static final Log __log = LogFactory.getLog(" +
c.getQualifiedName() + ".class);");
+ pw.println();
+ pw.println(" protected Log log() { return __log; } " );
+ pw.println();
pw.println(" protected " + c.getSimpleName() + "ChannelListener(" +
c.getQualifiedName() + "Channel channel) {");
pw.println(" super(channel);");
pw.println(" }");
Modified: incubator/ode/trunk/jacob/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/pom.xml?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
--- incubator/ode/trunk/jacob/pom.xml (original)
+++ incubator/ode/trunk/jacob/pom.xml Wed Nov 29 09:19:29 2006
@@ -37,54 +37,35 @@
</dependency>
<dependency>
<groupId>org.apache.ode</groupId>
- <artifactId>ode-superbia</artifactId>
- <version>2.0-SNAPSHOT</version>
+ <artifactId>ode-jacob-ap</artifactId>
</dependency>
<dependency>
- <groupId>xstream</groupId>
- <artifactId>xstream</artifactId>
+ <groupId>xstream</groupId>
+ <artifactId>xstream</artifactId>
</dependency>
+
</dependencies>
<build>
<plugins>
<!-- A bit of maven2 lunacy: add an extra source directory to
the compile path; simple eh? -->
- <plugin>
- <groupId>org.apache.ode</groupId>
- <artifactId>ode-superbia</artifactId>
- <executions>
- <execution>
- <phase>generate-sources</phase>
- <goals>
- <goal>msdp</goal>
- </goals>
- <configuration>
- <sourcedir>src/generated/java</sourcedir>
- </configuration>
- </execution>
- </executions>
- </plugin>
+<plugin>
+ <groupId>org.apache.myfaces.tobago</groupId>
+ <artifactId>maven-apt-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <configuration>
+ <generated>target/generated-sources/apt</generated>
+ <target>1.5</target>
+ </configuration>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ </execution>
+ </executions>
+</plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xdoclet-maven-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>xdoclet</goal>
- </goals>
- <configuration>
- <tasks>
- <doclet
destDir="${basedir}/src/generated/java" verbose="false">
- <fileset dir="${basedir}/src/main/java"
includes="**/*.java"/>
- <template havingClassTag="jacob.kind"
destinationFile="{0}ChannelListener.java"
templateFile="${basedir}/src/xdt/org/apache/ode/jacob/ChannelListener.xdt"/>
- <template havingClassTag="jacob.kind"
destinationFile="{0}Channel.java"
templateFile="${basedir}/src/xdt/org/apache/ode/jacob/channel.xdt"/>
- </doclet>
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
</project>
Modified:
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Synch.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Synch.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
--- incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Synch.java
(original)
+++ incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Synch.java Wed
Nov 29 09:19:29 2006
@@ -18,14 +18,16 @@
*/
package org.apache.ode.jacob;
+import org.apache.ode.jacob.ap.ChannelType;
+
/**
* Synch represents a synchronous invocation callback notification.
* <p>
* It is the only allowable return type (other than "void") for JACOB objects.
*
- * @jacob.kind
* @author Maciej Szefler <a href="mailto:[EMAIL PROTECTED]">mbs</a>
*/
[EMAIL PROTECTED]
public interface Synch {
public void ret();
}
Modified: incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Val.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Val.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
--- incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Val.java
(original)
+++ incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/Val.java Wed
Nov 29 09:19:29 2006
@@ -18,10 +18,11 @@
*/
package org.apache.ode.jacob;
+import org.apache.ode.jacob.ap.ChannelType;
/**
* Generic return-value channel type.
- * @jacob.kind
*/
[EMAIL PROTECTED]
public interface Val {
public void val(Object retVal);
}
Modified:
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/cell/Cell.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/cell/Cell.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/cell/Cell.java
(original)
+++
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/cell/Cell.java
Wed Nov 29 09:19:29 2006
@@ -19,12 +19,14 @@
package org.apache.ode.jacob.examples.cell;
import org.apache.ode.jacob.Val;
+import org.apache.ode.jacob.ap.ChannelType;
/**
* Channel type for a cell. The channel allows reading of and setting the
values of a cell.
*
* @jacob.kind
*/
[EMAIL PROTECTED]
public interface Cell {
/**
Modified:
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStream.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStream.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStream.java
(original)
+++
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStream.java
Wed Nov 29 09:19:29 2006
@@ -19,6 +19,7 @@
package org.apache.ode.jacob.examples.eratosthenes;
import org.apache.ode.jacob.SynchChannel;
+import org.apache.ode.jacob.ap.ChannelType;
/**
* DOCUMENTME.
@@ -27,6 +28,7 @@
* @jacob.kind
* @author Maciej Szefler <a href="mailto:[EMAIL PROTECTED]">mbs</a>
*/
[EMAIL PROTECTED]
public interface NaturalNumberStream {
public void val(int n, SynchChannel ret);
}
Modified:
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/synch/SynchPrint.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/synch/SynchPrint.java?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
---
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/synch/SynchPrint.java
(original)
+++
incubator/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/examples/synch/SynchPrint.java
Wed Nov 29 09:19:29 2006
@@ -19,14 +19,15 @@
package org.apache.ode.jacob.examples.synch;
import org.apache.ode.jacob.SynchChannel;
+import org.apache.ode.jacob.ap.ChannelType;
/**
* DOCUMENTME.
* <p>Created on Mar 4, 2004 at 4:21:03 PM.</p>
*
- * @jacob.kind
* @author Maciej Szefler <a href="mailto:[EMAIL PROTECTED]">mbs</a>
*/
[EMAIL PROTECTED]
public interface SynchPrint {
public SynchChannel print(String msg);
}
Modified: incubator/ode/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/pom.xml?view=diff&rev=480631&r1=480630&r2=480631
==============================================================================
--- incubator/ode/trunk/pom.xml (original)
+++ incubator/ode/trunk/pom.xml Wed Nov 29 09:19:29 2006
@@ -111,6 +111,7 @@
<module>minerva</module>
<module>jacob</module>
+ <module>jacob-ap</module>
<module>bpel-scripts</module>
<module>bpel-schemas</module>
@@ -423,6 +424,11 @@
<dependency>
<groupId>org.apache.ode</groupId>
<artifactId>ode-jacob</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ode</groupId>
+ <artifactId>ode-jacob-ap</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>