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





Reply via email to