How are you launching equinox? Are you certain the config.ini is getting read? Try using a VM option to be sure (-Dosgi.compatibility.bootdelegation=true). This option is set to true by default when launched with the equinox launcher (org.eclipse.equinox.launcher). But it is set to false when using the OSGi launching API (org.osgi.framework.launch) or just using "java -jar org.eclipse.osgi.jar". See https://bugs.eclipse.org/bugs/show_bug.cgi?id=178477
Tom
"." ---06/23/2012 02:12:52 PM---Hello Tom,
|
"." <las-palmas-11@xxxxxxxxxxxxxxxx> |
|
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>, |
|
06/23/2012 02:12 PM |
|
Re: [equinox-dev] Some Packages must be imported outside of Eclipse |
Hello Tom,
Eclipse is launched with a backwards compatibility flag that is allowing your bundles to load classes from the packages provided by the VM (osgi.compatibility.bootdelegation=true). When you launch equinox "outside of eclipse" this option is not set by default.
I added osgi.compatibility.bootdelegation=true to the config.ini in the configuration directory and the packages are still not available. E.g. I get a Class Not Found Exception in a bundle that uses QName when javax.xml.namespace is not imported.
Moreover, according to this site http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html osgi.compatibility.bootdelegation is set to true by default, so this should also applies to "outside of Eclipse".
PDE also has tools for generating your import statements.
I only know the "Automated Management of Dependencies" (AMD) function (section) in die bundle manifest editor. Are more tools available in the PDE?
Rene
-------- Original Message --------
Subject: Re: [equinox-dev] Some Packages must be imported outside of Eclipse
From: Thomas Watson <tjwatson@xxxxxxxxxx>
To: Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
Date: Thu Jun 21 2012 15:01:24 GMT+0200
PDE also has tools for generating your import statements. Eclipse is launched with a backwards compatibility flag that is allowing your bundles to load classes from the packages provided by the VM (osgi.compatibility.bootdelegation=true). When you launch equinox "outside of eclipse" this option is not set by default.
Tom
BJ Hargrave---06/20/2012 04:17:10 PM---This is why you should use something like bndtools to make your bundles. Hand editing your manifest's package statements is not
|
BJ Hargrave/Austin/IBM@IBMUS |
|
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>, |
|
06/20/2012 04:17 PM |
|
Re: [equinox-dev] Some Packages must be imported outside of Eclipse |
This is why you should use something like bndtools to make your bundles. Hand editing your manifest's package statements is not a good idea.
--
|
office: +1 386 848 1781
mobile: +1 386 848 3788
|
From: "." <las-palmas-11@xxxxxxxxxxxxxxxx>
To: Equinox development mailing list <equinox-dev@xxxxxxxxxxx>,
Date: 2012/06/20 17:10
Subject: Re: [equinox-dev] Some Packages must be imported outside of Eclipse
Sent by: equinox-dev-bounces@xxxxxxxxxxx
Hello Richard,
thanks for your answer.
If it's not recommend to change the property to make packages like
javax.* directly available: Is it possible in Eclipse to automatically
import such packages when I use classes from them? I want to avoid the
effort to manually check all my classes for imports from everything
except java.* and manually adding these packages to the bundle manifest
before I export the bundle as JAR.
Regards,
Rene
-------- Original Message --------
Subject: Re: [equinox-dev] Some Packages must be imported outside of Eclipse
From: Richard S. Hall <heavy@xxxxxxxxxxxxxx>
To: Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
Date: Wed Jun 20 2012 22:26:55 GMT+0200
> On 6/20/12 16:17 , . wrote:
>> Hello,
>>
>> if I start a OSGi bundle in Eclipse (Equinox) not only java.*, but
>> also packages like javax.* are directly available and therefore must
>> be not imported in the bundle manifest.
>
> I would expect that you can import the javax.* packages, but you are
> correct that you shouldn't/can't import the java.* packages.
>
>> In contrast, when I run a bundle outside of Eclipse (also in Equinox;
>> with startup.bat/startup.sh and config.ini) all used packages except
>> java.* MUST be imported, otherwise it results to Class Not Found
>> Exceptions.
>>
>> What is the reason why e.g. javax.* are not available outside of
>> Eclipse without importing them? Is it possible, e.g. with a parameter
>> in the config.ini, to make these packages directly available or in
>> other words create the same runtime environment like in Eclipse?
>
> The reason is historical, I'd guess.
>
> You can configure this via the org.osgi.framework.bootdelegation
> framework configuration property, but I'd recommend against doing so.
> Double check, but I'd expect that you can import the javax.* packages
> in Equinox when running in Eclipse...you should always import
> everything except java.* packages...
>
> -> richard
>
>>
>> Thanks in advance!
>>
>> Regards,
>> Rene
>> _______________________________________________
>> equinox-dev mailing list
>> equinox-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
|