Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
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



Inactive hide details for BJ Hargrave---06/20/2012
          04:17:10 PM---This is why you should use something like
          bndtools to make youBJ 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


    From:

BJ Hargrave/Austin/IBM@IBMUS

    To:

Equinox development mailing list <equinox-dev@xxxxxxxxxxx>,

    Date:

06/20/2012 04:17 PM

    Subject:

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

Back to the top