I think we had the same discussion about a year ago:

Bug 436469: Declare compile-time (build-time) dependencies in manifest
Bug 434243: Import org.eclipse.osgi[.services] as source => compile errors 
for missing @ConsumerType

The problem is still the same: Stephan and I think that builds
a) should not be monolithic, and
b) should not require external dependency information

It should be possible to build bundles that depend on other bundles by 
just pointing the build process at the bundle's sources and at its 
pre-built dependencies.

But this is currently not possible because build-time dependencies are 
missing in the bundle metadata.
>From http://www.osgi.org/Technology/WhyOSGi :
"The OSGi programming model realizes the promise of component-based 
systems."

The final step to actually realize this promise would be to allow for 
component-based builds.

Markus



From:   Stephan Herrmann <stephan.herrm...@berlin.de>
To:     equinox-dev@eclipse.org
Date:   2015-05-07 18:17
Subject:        Re: [equinox-dev] dependency on org.osgi.annotation?
Sent by:        equinox-dev-boun...@eclipse.org



This is not helping.

On 05/07/2015 05:21 PM, BJ Hargrave wrote:
>  > User has an arbitrary plugin project which obviously depends on 
o.e.osgi.
>
> Well I would say that no one should depend upon org.eclipse.osgi. It is 
an implementation of the OSGi core spec. If you are writing
> bundles, then you are dependent on the OSGi API and should put osgi.core 
and possibly osgi.annotation on your compile path. These
> jars are available from OSGi Alliance website, Maven Central, JCenter, 
... and include their source.

Are you saying no-one should use type org.osgi.framework.Bundle, for 
example???
You read "depends" and think of a dependency declared by OSGi means,
but that's not what I was saying. I'm speaking of the situation of
all plug-in developers using Eclipse PDE + JDT (independent of whether
you like PDE or not).


> Perhaps JDT is a bit too sensitive for what it not a real compilation 
but instead just providing hover information.

You're interpretation of "compile" is narrower, than what I'm talking 
about.

Let me explain:
Eclipse has a single component, which is responsible for many tasks,
from creating detailed information for various views and hovers,
over providing the precise semantic information for refactoring,
up-to producing executable class files. We traditionally call this
component the "compiler".
The compiler *must* report any failed attempt to resolve a type.
You seem to be saying, Eclipse shouldn't use the compiler in this way,
but that discussion is moot.

>  > BTW, when I classified ProviderType as API, I certainly wasn't 
implying
>  > "runtime" API. These things are compile time API, just like @NonNull
>  > (which, too, has retention CLASS).
>
> It is necessary to compile the source. But what you are describing is 
not really compiling the source but using the source to
> provide some hover information. So missing things should not blow the 
whole thing up since it is not a real compilation.

You're missing the analogy to @NonNull.
There is one more perspective between *building* o.e.osgi and *runtime*:
Client compilation.
But as mentioned: this is a different discussion than how to reconcile
the incomplete artifact o.e.osgi with JDT.


I was hoping that this list could be the place for discussing,
how to improve the experience when developing Equinox bundles
within the Eclipse IDE with PDE and JDT.

Anyone?

Stephan
_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe 
from this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev


_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to