I've been looking at this issue and OPENJPA-159 in my "copious" free time. The official supported way to submit work outside of a transaction in WebSphere is to go through a WebSphere proprietary interface (similar to what we have in WASManagedRuntime).
Unfortunately that interface is not published in any maven repository, or generally made available in a central location. We were able to get permission to use a precompiled jar for our build process, but we can't redistribute it (ie publish it to a maven repository). It can be included in our source repository though. I believe this approach is used by other vendors who use the APIs (ie Spring if I'm not mistaken). The net outcome is that we have two options: 1. Use the proprietary interfaces in the same manner as we do in WASManagedRuntime - use serp to add an interface to one of our classes (not an entity) after we've compiled it. When the class is used we'll use reflection to invoke the appropriate methods. 2. Add the WebSphere jar in our svn repository and then reference it as a system dependency (won't be shipped as a dependency) in the maven build . The class(es) that use the proprietary interfaces can call methods directly and we can avoid the bytecode weaving. The downside is there will be a 4.7 K jar file added to svn. It's relatively light weight and it shouldn't be changed often (if at all). How to people feel about including the WebSphere APIs in this way? On the one hand it make the code quite a bit easier to maintain, but on the other hand it's a binary in SVN. -Mike
