Hi, I also tried to run the transactions unit tests using the org.osgi.framework.system.packages.extra property listing just the transaction packages that we care about, but the tests failed when I did that. This means setting the org.osgi.framework.system.packages property, as I described previously, is still the way to get this working.
Cheers Brian DePradine Web Services Development IBM Hursley External +44 (0) 1962 816319 Internal 246319 If you can't find the time to do it right the first time, where will you find the time to do it again? Brian De Pradine/UK/i...@ibmgb wrote on 20/04/2010 13:50:44: > [image removed] > > Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating- > RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/ > unit/impl/PersistenceUnitInfoImpl.java > > Brian De Pradine > > to: > > aries-dev > > 20/04/2010 13:51 > > Please respond to aries-dev > > Hi Joe, > > The mechanism to specify the bootclasspath was removed a while ago in > favour of the mechanism that David is referring to (this is currently the > way that the transaction unit tests work). In order to get this mechanism > to work for the samples you will need to add the following to the command > line (it is quite long so I suggest creating a script or batch file) > > - > Dorg.osgi.framework.system.packages=javax.accessibility,javax.activation,javax.activity,javax.annotation,javax.annotation.processing,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,javax.imageio,javax.imageio.event,javax.imageio.metadata,javax.imageio.plugins.bmp,javax.imageio.plugins.jpeg,javax.imageio.spi,javax.imageio.stream,javax.jws,javax.jws.soap,javax.lang.model,javax.lang.model.element,javax.lang.model.type,javax.lang.model.util,javax.management,javax.management.loading,javax.management.modelmbean,javax.management.monitor,javax.management.openmbean,javax.management.relation,javax.management.remote,javax.management.remote.rmi,javax.management.timer,javax.naming,javax.naming.directory,javax.naming.event,javax.naming.ldap,javax.naming.spi,javax.net,javax.net.ssl,javax.print,javax.print.attribute,javax.print.attribute.standard,javax.print.event,javax.rmi,javax.rmi.CORBA,javax.rmi.ssl,javax.script,javax.security.auth,javax.security.auth.callback,javax.security.aut! > > h.kerberos,javax.security.auth.login,javax.security.auth.spi,javax.security.auth.x500,javax.security.cert,javax.security.sasl,javax.sound.midi,javax.sound.midi.spi,javax.sound.sampled,javax.sound.sampled.spi,javax.sql,javax.sql.rowset,javax.sql.rowset.serial,javax.sql.rowset.spi,javax.swing,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.plaf.metal,javax.swing.plaf.multi,javax.swing.plaf.synth,javax.swing.table,javax.swing.text,javax.swing.text.html,javax.swing.text.html.parser,javax.swing.text.rtf,javax.swing.tree,javax.swing.undo,javax.tools,javax.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.xml.crypto,javax.xml.crypto.dom,javax.xml.crypto.dsig,javax.xml.crypto.dsig.dom,javax.xml.crypto.dsig.keyinfo,javax.xml.crypto.dsig.spec,javax.xml.datatype,javax.xml.namespace,javax.xml.p! > > arsers,javax.xml.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stax,javax.xml.transform.stream,javax.xml.validation,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi,javax.xml.xpath,org.ietf.jgss,org.omg.CORBA,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA.TypeCodePackage,org.omg.CORBA.portable,org.omg.CORBA_2_3,org.omg.CORBA_2_3.portable,org.omg.CosNaming,org.omg.CosNaming.NamingContextExtPackage,org.omg.CosNaming.NamingContextPackage,org.omg.Dynamic,org.omg.DynamicAny,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage,org.omg.IOP,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage,org.omg.Messaging,org.omg.PortableInterceptor,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.PortableServer,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer.P! > OAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServ! > > er.ServantLocatorPackage,org.omg.PortableServer.portable,org.omg.SendingContext,org.omg.stub.java.rmi,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.html,org.w3c.dom.ls,org.w3c.dom.ranges,org.w3c.dom.stylesheets,org.w3c.dom.traversal,org.w3c.dom.views,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers,javax.transaction;partial=true;mandatory:=partial,javax.transaction.xa;partial=true;mandatory:=partial > > Cheers > > Brian DePradine > Web Services Development > IBM Hursley > External +44 (0) 1962 816319 Internal 246319 > > If you can't find the time to do it right the first time, where will you > find the time to do it again? > > > Joe Bohn <[email protected]> wrote on 19/04/2010 20:30:06: > > > [image removed] > > > > Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating- > > RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/ > > unit/impl/PersistenceUnitInfoImpl.java > > > > Joe Bohn > > > > to: > > > > aries-dev > > > > 19/04/2010 20:30 > > > > Please respond to aries-dev > > > > > > I didn't have any success specifying bootclasspath when starting equinox > > > ... same linkage error. I also tried to removing the geronimo-jta > > spec from the config.ini to eliminate the possibility of it being loaded > > > from 2 different classloaders ... but still the same result. > > > > Joe > > > > > > > > On 4/19/10 1:25 PM, Joe Bohn wrote: > > > > > > Thanks David. I was just speaking about this with Jarek as well. So it > > > seems that the problem is that some transaction classes are loaded > from > > > the system bundle. At one time we were including the geronimo-jta spec > > > jar in the Xbootclasspath when starting equinox to avoid this issue. > But > > > then something was changed (don't recall what at the moment) so that > was > > > no longer necessary. I'll try adding the spec back to the > Xbootclasspath > > > when starting equinox to confirm that resolves the issue. If anybody > > > recalls what had changed that removed that requirement - and why it no > > > longer seems to be working - please let me know. > > > > > > Joe > > > > > > On 4/19/10 1:05 PM, David Jencks wrote: > > >> Karaf has some goo like > > >> > > >> javax.transaction; javax.transaction.xa; version=1.1; partial=true; > > >> mandatory:=partial, \ > > >> > > >> about exporting from the system bundle which is supposed to avoid > some > > >> linkage problems. Do the samples have the same goo? > > >> > > >> thanks > > >> david jencks > > >> > > >> On Apr 19, 2010, at 9:54 AM, Joe Bohn wrote: > > >> > > >>> It certainly looks like this fix is necessary (the one to return the > > >>> JTA_DATASOURCE rather than the NON_JTA_DATASOURCE) - but I want to > > >>> warn you that it surfaces another problem. I don't know the details > > >>> of how to fix this yet but we need to get it resolved. This is > > >>> especially important because it looks like you are getting ready to > > >>> create a new RC and I think this error will prevent that from > passing > > >>> if not resolved: > > >>> > > >>> To recreate the error just run Blog for JPA or AriesTrader > configured > > >>> for container managed JPA. > > >>> > > >>> java.lang.LinkageError: loader constraint violation: when resolving > > >>> interface method > > >>> "javax.transaction.Transaction.enlistResource(Ljavax/ > > transaction/xa/XAResource;)Z" > > >>> the class loader (instance of > > >>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the > > >>> current class, org/apache/aries/transaction/jdbc/ConnectionWrapper, > > >>> and the class loader (instance of > > >>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for > > >>> resolved class, javax/transaction/Transaction, have different Class > > >>> objects for the type javax/transaction/xa/XAResource used in the > > >>> signature > > >>> at > > >>> org.apache.aries.transaction.jdbc.ConnectionWrapper.<init> > > (ConnectionWrapper.java:67) > > >>> > > >>> at > > >>> > > > org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getEnlistedConnection > > (XADatasourceEnlistingWrapper.java:85) > > >>> > > >>> at > > >>> > > > org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection > > (XADatasourceEnlistingWrapper.java:50) > > >>> > > >>> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) > > >>> at > > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke > > (DelegatingMethodAccessorImpl.java:25) > > >>> > > >>> at java.lang.reflect.Method.invoke(Method.java:597) > > >>> at > > >>> org.apache.aries.jndi.services.ServiceHelper > > $JNDIServiceDamper.invoke(ServiceHelper.java:99) > > >>> > > >>> at $Proxy13.getConnection(Unknown Source) > > >>> at > > >>> org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection > > (DelegatingDataSource.java:131) > > >>> > > >>> at > > >>> org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection > > (DecoratingDataSource.java:106) > > >>> > > >>> at > > >>> org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary > > (DBDictionaryFactory.java:91) > > >>> > > >>> at > > >>> > > > org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance > > (JDBCConfigurationImpl.java:595) > > >>> > > >>> at > > >>> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration > > (MappingRepository.java:1489) > > >>> > > >>> at > > >>> org.apache.openjpa.lib.conf.Configurations.configureInstance > > (Configurations.java:507) > > >>> > > >>> at > > >>> org.apache.openjpa.lib.conf.Configurations.configureInstance > > (Configurations.java:432) > > >>> > > >>> at > > >>> > org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104) > > >>> > > >>> at > > >>> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate > > (MetaDataRepositoryValue.java:68) > > >>> > > >>> at > > >>> > org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83) > > >>> at > > >>> > > > org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance > > (OpenJPAConfigurationImpl.java:939) > > >>> > > >>> at > > >>> > > > org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance > > (OpenJPAConfigurationImpl.java:930) > > >>> > > >>> at > org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:343) > > >>> at > org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:315) > > >>> at > > >>> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker > > (AbstractBrokerFactory.java:218) > > >>> > > >>> at > > >>> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker > > (AbstractBrokerFactory.java:202) > > >>> > > >>> at > > >>> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker > > (DelegatingBrokerFactory.java:156) > > >>> > > >>> at > > >>> > > > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager > > (EntityManagerFactoryImpl.java:213) > > >>> > > >>> at > > >>> > > > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager > > (EntityManagerFactoryImpl.java:57) > > >>> > > >>> at > > >>> > > > org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext > > (JTAPersistenceContextRegistry.java:122) > > >>> > > >>> at > > >>> > > > org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext > > (JTAEntityManager.java:73) > > >>> > > >>> at > > >>> > > > org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist > > (JTAEntityManager.java:220) > > >>> > > >>> at > > >>> > > > org.apache.aries.samples.ariestrader.persist.jpa.cm.TradeJpaCm.createQuote > > (TradeJpaCm.java:444) > > >>> > > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > >>> at > > >>> sun.reflect.NativeMethodAccessorImpl.invoke > > (NativeMethodAccessorImpl.java:39) > > >>> > > >>> at > > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke > > (DelegatingMethodAccessorImpl.java:25) > > >>> > > >>> at java.lang.reflect.Method.invoke(Method.java:597) > > >>> at > > >>> org.apache.aries.blueprint.proxy.Collaborator$1.invoke > > (Collaborator.java:66) > > >>> > > >>> at > > >>> org.apache.aries.blueprint.proxy.Collaborator.invoke > > (Collaborator.java:151) > > >>> > > >>> at > > >>> org.apache.aries.samples.ariestrader.persist.jpa.cm. > > $TradeJpaCm360369157.createQuote(Unknown > > >>> Source) > > >>> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) > > >>> at > > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke > > (DelegatingMethodAccessorImpl.java:25) > > >>> > > >>> at java.lang.reflect.Method.invoke(Method.java:597) > > >>> at > > >>> > > org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe > > $JdkProxyFactory$1.invoke(AbstractServiceReferenceRecipe.java:614) > > >>> > > >>> at $Proxy15.createQuote(Unknown Source) > > >>> at > > >>> org.apache.aries.samples.ariestrader.web.TradeBuildDB.<init> > > (TradeBuildDB.java:183) > > >>> > > >>> at > > >>> > > org.apache.aries.samples.ariestrader.web.TradeConfigServlet.service > > (TradeConfigServlet.java:418) > > >>> > > >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > > >>> at > > >>> > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) > > >>> at > > >>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > > (ServletHandler.java:1157) > > >>> > > >>> at > > >>> org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter > > (WelcomeFilesFilter.java:169) > > >>> > > >>> at > > >>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > > (ServletHandler.java:1148) > > >>> > > >>> at > > >>> > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) > > >>> at > > >>> > > > org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle > > (HttpServiceServletHandler.java:64) > > >>> > > >>> at > > >>> > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > > >>> at > > >>> > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > > >>> at > > >>> > > org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle > > (HttpServiceContext.java:111) > > >>> > > >>> at > > >>> > > > org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle > > (JettyServerHandlerCollection.java:64) > > >>> > > >>> at > > >>> > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > > >>> at org.mortbay.jetty.Server.handle(Server.java:322) > > >>> at > > >>> > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) > > >>> at > > >>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete > > (HttpConnection.java:864) > > >>> > > >>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) > > >>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > > >>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > > >>> at > > >>> org.mortbay.io.nio.SelectChannelEndPoint.run > > (SelectChannelEndPoint.java:409) > > >>> > > >>> at > > >>> org.mortbay.thread.QueuedThreadPool$PoolThread.run > > (QueuedThreadPool.java:520) > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> I discovered this in trunk while attempting to run the AriesTrader > > >>> sample - but the same is also true of the Blog sample. When we > > >>> attempt to use declarative transaction support after the change be > > >>> > > >>> > > >>> On 4/19/10 11:59 AM, [email protected] wrote: > > >>>> Author: hughesj > > >>>> Date: Mon Apr 19 15:59:35 2010 > > >>>> New Revision: 935639 > > >>>> > > >>>> URL: http://svn.apache.org/viewvc?rev=935639&view=rev > > >>>> Log: > > >>>> ARIES-287 fix a couple egregious errors in PersistenceUnitInfoImpl > - > > >>>> this time in the 0.1-incubating release candidate branch > > >>>> > > >>>> Modified: > > >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/ > > src/main/java/org/apache/aries/jpa/container/unit/impl/ > > PersistenceUnitInfoImpl.java > > >>>> > > >>>> > > >>>> Modified: > > >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/ > > src/main/java/org/apache/aries/jpa/container/unit/impl/ > > PersistenceUnitInfoImpl.java > > >>>> > > >>>> URL: > > >>>> http://svn.apache.org/viewvc/incubator/aries/branches/0.1- > > incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/ > > container/unit/impl/PersistenceUnitInfoImpl.java? > > rev=935639&r1=935638&r2=935639&view=diff > > >>>> > > >>>> > > > ============================================================================== > > >>>> > > >>>> --- > > >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/ > > src/main/java/org/apache/aries/jpa/container/unit/impl/ > > PersistenceUnitInfoImpl.java > > >>>> (original) > > >>>> +++ > > >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/ > > src/main/java/org/apache/aries/jpa/container/unit/impl/ > > PersistenceUnitInfoImpl.java > > >>>> Mon Apr 19 15:59:35 2010 > > >>>> @@ -80,17 +80,20 @@ public class PersistenceUnitInfoImpl imp > > >>>> if(jarFiles != null) { > > >>>> for(String jarFile : jarFiles){ > > >>>> URL url = bundle.getResource(jarFile); > > >>>> - if(url == null) > > >>>> + if(url == null) { > > >>>> _logger.error("The persistence unit {} in bundle {} listed the jar > > >>>> file {}, but " + > > >>>> "{} could not be found in the bundle", new > > >>>> Object[]{getPersistenceUnitName(), > > >>>> bundle.getSymbolicName() + "_" + bundle.getVersion(), jarFile, > > >>>> jarFile}); > > >>>> + } else { > > >>>> + urls.add(url); > > >>>> + } > > >>>> } > > >>>> } > > >>>> return urls; > > >>>> } > > >>>> > > >>>> public DataSource getJtaDataSource() { > > >>>> - String jndiString = (String) > > >>>> unit.getPersistenceXmlMetadata().get > > (ParsedPersistenceUnit.NON_JTA_DATASOURCE); > > >>>> > > >>>> + String jndiString = (String) > > >>>> unit.getPersistenceXmlMetadata().get > > (ParsedPersistenceUnit.JTA_DATASOURCE); > > >>>> > > >>>> DataSource toReturn = null; > > >>>> if(jndiString != null) { > > >>>> try { > > >>>> > > >>>> > > >>>> > > >>> > > >>> > > >>> -- > > >>> Joe > > >> > > >> > > > > > > > > > > > > -- > > Joe > > > > > > > Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU > > > > > Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
