Re: [equinox-dev] Equinox, PDE and packages from the ExtensionClasspath (e.g. JavaFX)

2012-11-13 Thread Gunnar Wagenknecht
Am 14.11.2012 01:30, schrieb Neil Bartlett:
> I really feel that the problem is in the launcher, so that's where it
> needs to be fixed, i.e. by setting the osgi.parentClassloader=app system
> property.

I agree. So the wrong property is only used if the Equinox is launched
using the binary executable or also when launched using "java -jar
org.eclipse.osgi..."?

I think the dilema is that anything that requires a "fix" will make
adoption harder because people won't be able to use released versions
(eg., Juno) for JavaFX development. Is that correct?

-Gunnar

-- 
Gunnar Wagenknecht
gun...@wagenknecht.org
http://wagenknecht.org/

___
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev


[equinox-dev] IP CQs waiting on your team

2012-11-13 Thread portal on behalf of emo
equinox-dev,
IPZilla records show that one or more of the projects on which you are
developer are in need of attention.  The following CQs have been in the
'awaiting_project' status for over 3 weeks  and need your team to take
action.

  rt.equinox:

6484 Apache Felix Resolver -- checkintocvs, nonepl, sourceandbinary,
unmodified, 6 months ago
https://dev.eclipse.org/ipzilla/show_bug.cgi?id=6484

If you have any questions, please do not hesitate to contact your project
lead, PMC member, or the EMO 

___
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev


Re: [equinox-dev] Equinox, PDE and packages from the ExtensionClasspath (e.g. JavaFX)

2012-11-13 Thread Neil Bartlett
I agree with BJ that it would be better to use an Equinox-specific
directive for this Equinox-specific functionality. I believe that Felix
should work fine today with the following:

Fragment-Host: system.bundle;x-appclasspath:=ext

because it would ignore the unknown directive, and would provide visibility
of the JavaFX classes via the framework's application classpath. The same
would be true of Equinox sans the slightly strange Eclipse launcher.

There are implementation challenges with this approach, because the
instruction to use the extension loader needs to be passed out of the
framework to the launcher. The framework shouldn't actually know what
classloader it has been started in, only the launcher knows that. Therefore
in order to obey the above directive, the framework would need to actually
find the extension loader, which will a "sibling" of its own classloader.
The Java classloader API doesn't provide methods for navigating up and down
the tree in this fashion, AFAIK.

I really feel that the problem is in the launcher, so that's where it needs
to be fixed, i.e. by setting the osgi.parentClassloader=app system property.



On Tue, Nov 13, 2012 at 10:57 PM, Tom Schindl
wrote:

> Am 13.11.12 23:42, schrieb BJ Hargrave:
> >> > Fragment-Host: system.bundle; extension:=extclasspath
> >>
> >> Would this extension:=extclasspath cause problems to other
> >> OSGi-Implementations like e.g. felix?
> >
> > A compliant framework should reject this manifest since the standard
> > directive does not specify a valid value.
> >
> > If you are thinking of having a non-standard, Equinox-specific value for
> > a standard directive, why not just add an Equinox-specific manifest
> > header or Equinox-specific directive?
> >
>
> Because Equinox already supports it this way and if the change is coming
> with Java7u something we need to use what is already in the framework.
>
> > Fragment-Host: system.bundle; x-appclasspath:=ext
> >
>
> I'm all for having such a framework specific option, if I got Neil and
> Tom right only equinox has this strange setting that it does not consult
> the extension classpath and has to be forced in this direction. So if
> equinox is willing to implement it, I'll happily use it but if I have
> the choice of:
> a) can't run at all on equinox
> b) only work on equinox
>
> I'll go for b). Users of other frameworks would have to create their own
> fragment, not the prefered solution but well.
>
> > This does not sound like it would work in general anyway. What happens
> > when the framework is launched from code whose classpath does not
> > include ext? I assume the option here is either use the bootclasscloader
> > for the parent of the classloader used to load the framework or use the
> > current classloader for the parent of the classloader used to load the
> > framework.
> >
>
> I let Tom Watson comment on this.
>
> Tom
>
> --
> B e s t S o l u t i o n . a tEDV Systemhaus GmbH
> 
> tom schindl geschäftsführer/CEO
> 
> eduard-bodem-gasse 5-7/1   A-6020 innsbruck fax  ++43 512 935833
> http://www.BestSolution.at  phone++43 512 935834
> ___
> equinox-dev mailing list
> equinox-dev@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
___
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev


Re: [equinox-dev] Equinox, PDE and packages from the ExtensionClasspath (e.g. JavaFX)

2012-11-13 Thread Tom Schindl
Am 13.11.12 23:42, schrieb BJ Hargrave:
>> > Fragment-Host: system.bundle; extension:=extclasspath
>>
>> Would this extension:=extclasspath cause problems to other
>> OSGi-Implementations like e.g. felix?
> 
> A compliant framework should reject this manifest since the standard
> directive does not specify a valid value.
> 
> If you are thinking of having a non-standard, Equinox-specific value for
> a standard directive, why not just add an Equinox-specific manifest
> header or Equinox-specific directive?
> 

Because Equinox already supports it this way and if the change is coming
with Java7u something we need to use what is already in the framework.

> Fragment-Host: system.bundle; x-appclasspath:=ext
> 

I'm all for having such a framework specific option, if I got Neil and
Tom right only equinox has this strange setting that it does not consult
the extension classpath and has to be forced in this direction. So if
equinox is willing to implement it, I'll happily use it but if I have
the choice of:
a) can't run at all on equinox
b) only work on equinox

I'll go for b). Users of other frameworks would have to create their own
fragment, not the prefered solution but well.

> This does not sound like it would work in general anyway. What happens
> when the framework is launched from code whose classpath does not
> include ext? I assume the option here is either use the bootclasscloader
> for the parent of the classloader used to load the framework or use the
> current classloader for the parent of the classloader used to load the
> framework.
> 

I let Tom Watson comment on this.

Tom

-- 
B e s t S o l u t i o n . a tEDV Systemhaus GmbH

tom schindl geschäftsführer/CEO

eduard-bodem-gasse 5-7/1   A-6020 innsbruck fax  ++43 512 935833
http://www.BestSolution.at  phone++43 512 935834
___
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev


Re: [equinox-dev] Equinox, PDE and packages from the ExtensionClasspath (e.g. JavaFX)

2012-11-13 Thread BJ Hargrave
> > Fragment-Host: system.bundle; extension:=extclasspath
> 
> Would this extension:=extclasspath cause problems to other
> OSGi-Implementations like e.g. felix?

A compliant framework should reject this manifest since the standard 
directive does not specify a valid value.

If you are thinking of having a non-standard, Equinox-specific value for a 
standard directive, why not just add an Equinox-specific manifest header 
or Equinox-specific directive?

Fragment-Host: system.bundle; x-appclasspath:=ext

This does not sound like it would work in general anyway. What happens 
when the framework is launched from code whose classpath does not include 
ext? I assume the option here is either use the bootclasscloader for the 
parent of the classloader used to load the framework or use the current 
classloader for the parent of the classloader used to load the framework.

-- 

BJ Hargrave
Senior Technical Staff Member, IBM
OSGi Fellow and CTO of the OSGi Alliance
hargr...@us.ibm.com

office: +1 386 848 1781
mobile: +1 386 848 3788
___
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev


[equinox-dev] Equinox, PDE and packages from the ExtensionClasspath (e.g. JavaFX)

2012-11-13 Thread Tom Schindl
Hi,

Following up my last mail on all this stuff. I had a meeting on IRC with
Tom Watson, discussing how one could make use of none public packages.

Normally I'd say to anyone that they should not use them because they
are an implementation detail of your JRE. The problem as it looks like
today is that JavaFX is not JSRed and hence not part of a EE-profile.

The current thinking is that it will endup in the ext/lib directory in
Java8 (and maybe one of the Java7-Updates) and so if people want to use
it in OSGi-Envs they need to get access to it.

There are 2 sides of the problem:
a) Runtime: How can we provide people access to javafx-Classes
b) Tooling: How can people make use of javafx-Classes inside their IDE
   (Bnd, PDE)

Runtime:

Tom Watson and myself came to the conclusion that the best solution to
provide people access to the none-public packages is to provide a
fragment to the system.bundle who itself has no source but exports the
javafx-packages, so that developers can use them in their app bundles.

An equinox specific problem in this regard is that equinox normally only
consults the bootclassloader for classes because of history reasons so
the fragment we'll have to provide has some equinox specific setting:

> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-Name: Myext
> Bundle-SymbolicName: javafx.bundle
> Bundle-Version: 8.0.0.qualifier
> Fragment-Host: system.bundle; extension:=extclasspath
> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
> Export-Package: javafx

Would this extension:=extclasspath cause problems to other
OSGi-Implementations like e.g. felix?

The final question is which of the packages of javafx we'll export.
JavaFX is quite young and sometimes people have to reside to internal
APIs to implement things, so I think we need to be pragmatic and export
also none-public packages but mark them as x-internal:=true. Any objections?

(Eclipse)Tooling:
-
BND-Tools:
--
Neil told me that BND-Tools already picked up stuff from the
system.bundle fragments and so I hope it simply works but I have not tested.

PDE:

PDE does not pick up the stuff but consults the EE when createing the
JRE Classpath Container and setting up the accessible rules for it. In
reality this stuff is not done by PDE but JDT-Launch where all this
stuff is handled. That's the bad news. The good one is that
JDT-Launching has an extension point allowing us to contribute to the
access rules and so we can provide a plugin which adds access rules for
javafx-packages when we detect a Java8 EE (not sure yet how this
Compact1, ... is going to be handled).

Summary:

We have a plan, a working prototype how we can integrate ext/lib or more
generally none public JRE-packages into the runtime. The tooling already
as of Eclipse 3.3 provides the needed hooks we need to provide the
tooling integration.

Tom

-- 
B e s t S o l u t i o n . a tEDV Systemhaus GmbH

tom schindl geschäftsführer/CEO

eduard-bodem-gasse 5-7/1   A-6020 innsbruck fax  ++43 512 935833
http://www.BestSolution.at  phone++43 512 935834
___
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev