[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: AW: AW: AW: [equinox-dev] Classloading problems running EquinoxweavedAspectJ

We have an issue in Pax Runner related to this, so it may be that the
work around from there will also help you:
http://issues.ops4j.org/jira/browse/PAXRUNNER-115
You do not have to use Pax Runner, is just that will give you hints
what you have to set in order to solve the NoClassDefFound. I guess
that beside what you have done you have to set also the classpath and
boot delegation to include org.aspectj.*

Actually this is my reason behind my question about equinox supporting
extension:=bootclasspath as that it may be a solution.

Alin Dreghiciu

On Wed, Mar 19, 2008 at 12:10 AM, Kiev Gama <kievgama@xxxxxxxxxxx> wrote:
>
> Thank you Heiko.
>
> Here is what I did after your last mail:
>
> 1-I've "bundlized" aspectjrt.jar into aspectjrt-osgi.jar, and copied it to
> the same place of the weaved equinox
> My aspectjrt-osgi.jar has the following header in its manifest
> Fragment-Host: org.eclipse.osgi;bundle-version="3.2.0.v20060601"
>
> 2-Run the equinox like this:
> java -Dosgi.framework.extensions=aspectjrt-osgi.jar -jar
> org.eclipse.osgi_3.2.0.v20060601.jar -console
>
> 3-The following happens:
>
> java.lang.NoClassDefFoundError: org/aspectj/lang/NoAspectBoundException
>         at
> org.eclipse.osgi.baseadaptor.BaseAdaptor$ParentClassLoader.<init>(Bas
> eAdaptor.java:76)
>         at
> org.eclipse.osgi.baseadaptor.BaseAdaptor.<clinit>(BaseAdaptor.java:70
> )
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Unknown Source)
>         at
> org.eclipse.core.runtime.adaptor.EclipseStarter.createAdaptor(Eclipse
> Starter.java:777)
>         at
> org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarte
> r.java:280)
>         at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja
> va:173)
>         at
> org.eclipse.core.runtime.adaptor.EclipseStarter.main(EclipseStarter.j
> ava:150)
> Caused by: java.lang.ClassNotFoundException:
> org.aspectj.lang.NoAspectBoundExcep
> tion
>
>         at java.net.URLClassLoader$1.run(Unknown Source)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(Unknown Source)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
>
>         at java.lang.ClassLoader.loadClass(Unknown Source)
>         at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>         ... 8 more
>
>
> However if I run like this it works fine:
> java -Djava.ext.dirs=. -jar org.eclipse.osgi_3.2.0.v20060601.jar -console
>
> I am not sure of the consequences (I would be glad to know it) of this in
> the long run, but I've installed some bundles with no problem. The weaving
> worked as well.
>
> If you could help me to do it the right way that would be awesome.
>
> Thanks again!
>
> Kiev
> ________________________________
> Subject: AW: AW: AW: [equinox-dev] Classloading problems running
> EquinoxweavedAspectJ
> Date: Tue, 18 Mar 2008 15:59:27 +0100
>
>
> From: Heiko.Seeberger@xxxxxxxxxxxxx
> To: equinox-dev@xxxxxxxxxxx
>
>
>
>
> Kiev,
>
>
>
> OSGi will not allow you any non-OSGi class loading tricks.
>
>
>
> Yes, you can have a fragment for the system bundle. These are called
> framework extension bundles.
>
> In order to be found by Equinox this fragment has to be co-located with the
> system bundle and you have to register it by the system property
>
> osgi.framework.extensions=<FRAGMENT>
>
>
>
> Heiko
>
>  ________________________________
>
>
> Von: equinox-dev-bounces@xxxxxxxxxxx
> [mailto:equinox-dev-bounces@xxxxxxxxxxx] Im Auftrag von Kiev Gama
>  Gesendet: Dienstag, 18. März 2008 06:57
>  An: Equinox development mailing list
>  Betreff: RE: AW: AW: [equinox-dev] Classloading problems running
> EquinoxweavedAspectJ
>
>
>
> Thanks for the response.
>
>  I have tried to run in two different ways:
>
>  1 - If I put aspectJrt.jar in the classpath I get an explicit dependency
> error on the AJ classes
>  2 - Then, I've set the aspectJ\lib in the java.ext.dirs option and I've got
> the error that I sent.
>
>  I'll check on that other tip that you gave me.
>  Can I use fragment bundles with the bundle 0 (framework bundle) ?
>
>  Thanks again
>
>
>
>
>  ________________________________
>
>
> Subject: AW: AW: [equinox-dev] Classloading problems running Equinox
> weavedAspectJ
>  Date: Tue, 18 Mar 2008 14:18:12 +0100
>  From: Heiko.Seeberger@xxxxxxxxxxxxx
>  To: equinox-dev@xxxxxxxxxxx
>
>
> Kiev,
>
>
>
> Thank you for the information provided.
>
>
>
> As far as I understand you are weaving some aspects into Equinox (into the
> FrameworkLogEntry), right?
>
>
>
> This will create dependencies from Equinox to your classes and possibly to
> AspectJ (for example when using around advices). These dependencies cannot
> be resolved, because in OSGi only dependencies declared in the bundle
> manifest are visible.
>
>
>
> Maybe you could put your classes and the AspectJ runtime library into a
> framework extension fragment (look for details in the Eclipse Wiki).
>
> Any comments on this?
>
>
>
> Another solution could be to use Equinox Aspects and load-time weaving.
>
>
>
> Heiko
>
>
>
>  ________________________________
>
>
> Von: equinox-dev-bounces@xxxxxxxxxxx
> [mailto:equinox-dev-bounces@xxxxxxxxxxx] Im Auftrag von Kiev Gama
>  Gesendet: Dienstag, 18. März 2008 05:53
>  An: Equinox development mailing list
>  Betreff: RE: AW: [equinox-dev] Classloading problems running Equinox
> weavedAspectJ
>
>
>
> Actually I'm not using the Equinox from the Equinox Aspects project.
>  I'm doing AspectJ compile-time (offline) weaving of a standard Equinox
> framework.
>
>  AspectJ 1.5
>  Equinox 3.2.0
>
>
>  Does the list allow the attaching of a file?
>  I can attach the weaved jar.
>
>  Thanks for the help.
>  ________________________________
>
>
> Subject: AW: [equinox-dev] Classloading problems running Equinox weaved
> AspectJ
>  Date: Tue, 18 Mar 2008 13:33:10 +0100
>  From: Heiko.Seeberger@xxxxxxxxxxxxx
>  To: equinox-dev@xxxxxxxxxxx
>
>
> Kiev,
>
>
>
> Could you please provide some more information about your setting?
>
>
>
> - Are you using compile-time weaving or loag-time weaving by Equinox
> Aspects?
>
> - Which AspectJ version are you using?
>
>
>
> Further it could be valuable if you could attach your project(s) …
>
>
>
> Heiko
>
>
>
>  ________________________________
>
>
> Von: equinox-dev-bounces@xxxxxxxxxxx
> [mailto:equinox-dev-bounces@xxxxxxxxxxx] Im Auftrag von Kiev Gama
>  Gesendet: Dienstag, 18. März 2008 02:11
>  An: equinox-dev@xxxxxxxxxxx
>  Betreff: [equinox-dev] Classloading problems running Equinox weaved AspectJ
>
>
>
> Hello,
>
>  I weaved Equinox framework v 3.2.0 with AspectJ and I am getting the
> following the weaved framework:
>
>  Exception in thread "main" java.lang.NoClassDefFoundError:
> org/eclipse/osgi/framework/log/FrameworkLogEntry
>  Caused by: java.lang.ClassNotFoundException:
> org.eclipse.osgi.framework.log.FrameworkLogEntry
>          at java.net.URLClassLoader$1.run(Unknown Source)
>          at java.security.AccessController.doPrivileged(Native Method)
>          at java.net.URLClassLoader.findClass(Unknown Source)
>          at java.lang.ClassLoader.loadClass(Unknown Source)
>          at java.lang.ClassLoader.loadClass(Unknown Source)
>          at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>
>
>  The FrameworkLogEntry class is the weaved jar. Does anybody know in detail
> how the class loading works or why that is happening?
>
>  This version does not use digitally signed jars. I found errors regarding
> the hashing of classes with version 3.3 and that is why I've tried weaving a
> previous version.
>
>  Thanks,
>
>  Kiev Gama
>
>
>  ________________________________
>
>
> Do more with your photos with Windows Live Photo Gallery. Get Windows
> Live-Free
>
>
>  ________________________________
>
>
> Do more with your photos with Windows Live Photo Gallery. Get Windows
> Live—Free
>
>
>  ________________________________
>
>
> Don't get caught with egg on your face. Play chicktionary!
>
>
> ________________________________
> Do more with your photos with Windows Live Photo Gallery. Get Windows
> Live—Free
> _______________________________________________
>  equinox-dev mailing list
>  equinox-dev@xxxxxxxxxxx
>  https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>