Thanks Jodi! Is the best approach to work with xstream? Can I just start xstream bundle?
I'm was trying to find some approach more 'automatic', like: a) embbed into project1 Abs, __ *Dhiego** **Abrantes** de Oliveira Martins* *Computer Science, M.Sc. Candidate at UFPE* www.dhiegoabrantes.com +55 83 9999.1081 ***Any fool can write code that a computer can understand. Good programmers write code that humans can understand*. (Martin Fowler) 2013/1/24 Jordi Deu-Pons <[email protected]> > Hi Dhiego, > > that means that the class loader of the XStream bundle don't have > access to your Project2 class loader. You need to register a composed > class loader to XStream. > > Have a look to this code: > > https://github.com/onexus/onexus/blob/develop/org.onexus.resource.serializer.xstream/src/main/java/org/onexus/resource/serializer/xstream/internal/ResourceSerializer.java > > The important part is: > this.xstream.setClassLoader(new RegisteredClassLoader()); > > And then at activation time all the bundles that produce classes that > you want to be able to serialize you must register their class loader > using the "register" method. > > I still have one problem with XStream, imagine I serialize an > instance of class A (Project2 bundle) then I reload Project2 bundle > then it's imposible to recover the serialized instance because we have > a new version of class A. May be someone in the list knows a better > aproach. > > Regards, > Jordi > > > On Thu, Jan 24, 2013 at 6:34 AM, Dhiego Abrantes de Oliveira Martins > <[email protected]> wrote: > > > > Hi all, > > > > I'm developing a project that uses XStream lib to manipulate XML. There > are > > a Project1 that is a service and have a maven dependence to xstream. > > > > The Project2 is a implementation of Project1 and have a transient > > dependency of XStream through Project1. > > > > The Project3 is just a client of Project2, just a consumer. > > > > I can start Project1 and Project2 normally. But, when I start the > Project3 > > and some method try to use XStream lib, I get that error: > > > > Exception in thread "Thread-12" java.lang.NoClassDefFoundError: > > org/xmlpull/v1/XmlPullParserFactory > > at > com.thoughtworks.xstream.io.xml.XppDriver.createParser(XppDriver.java:57) > > at > > > com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:58) > > at com.thoughtworks.xstream.XStream.fromXML(XStream.java:895) > > at com.thoughtworks.xstream.XStream.fromXML(XStream.java:886) > > at > > > br.ufpe.cin.main.ServiceDescriptorImpl.__getServiceDescriptors(ServiceDescriptorImpl.java:24) > > at > > > br.ufpe.cin.main.ServiceDescriptorImpl.getServiceDescriptors(ServiceDescriptorImpl.java) > > at > > > ipojo.example.hello.client.HelloClient.__invokeHelloServices(HelloClient.java:94) > > at > > > ipojo.example.hello.client.HelloClient.invokeHelloServices(HelloClient.java) > > at ipojo.example.hello.client.HelloClient.__run(HelloClient.java:54) > > at ipojo.example.hello.client.HelloClient.run(HelloClient.java) > > at java.lang.Thread.run(Thread.java:722) > > Caused by: java.lang.ClassNotFoundException: > > org.xmlpull.v1.XmlPullParserFactory not found by > > com.springsource.org.xmlpull [53] > > at > > > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460) > > at > > > org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72) > > at > > > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > > at > > > org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1317) > > at > > > org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1481) > > at > > > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1427) > > at > > > org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72) > > at > > > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > > ... 11 more > > > > My installed bundles: > > START LEVEL 1 > > ID State Level Name > > [ 0] [Active ] [ 0] System Bundle (4.0.3) > > [ 1] [Active ] [ 1] Distributed OSGi Distribution Software > > Single-Bundle Distribution (1.3.1) > > [ 2] [Active ] [ 1] Apache Felix Bundle Repository (1.4.3) > > [ 3] [Active ] [ 1] Apache Felix Configuration Admin Service > > (1.2.6) > > [ 4] [Active ] [ 1] Apache Felix EventAdmin (1.2.2) > > [ 5] [Active ] [ 1] Apache Felix iPOJO (1.6.0) > > [ 6] [Active ] [ 1] Apache Felix iPOJO Arch Command (1.6.0) > > [ 7] [Active ] [ 1] Apache Felix Shell Service (1.4.2) > > [ 8] [Active ] [ 1] Apache Felix Shell TUI (1.4.1) > > [ 9] [Active ] [ 1] Hello Service (1.0.0) > > [ 10] [Active ] [ 1] Hello Service Provider (1.0.0) > > [ 12] [Active ] [ 1] Adder Service Provider (0.0.1.SNAPSHOT) > > [ 13] [Active ] [ 1] Adder Service Interface (0.0.1.SNAPSHOT) > > [ 36] [Active ] [ 1] Hello Client (1.0.0) > > [ 42] [Active ] [ 1] Thoughtworks XStream (1.4.1) > > [ 49] [Active ] [ 1] Service Descriptor Specification (1.0.0) > > [ 50] [Active ] [ 1] Service Descriptor Provider (1.0.0) > > [ 52] [Active ] [ 1] Java XML Stream API (StAX) (1.0.1) > > [ 53] [Active ] [ 1] XMLPULL V1 API (1.1.4.c) > > > > Best regards! > > > > []'s > > > > Dhiego > > > > > -- > a10! i fins aviat. > J:-Deu > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >

