Thanks for the suggestions Andrew and Thomas.  I tried this, but nothing
works (ie- same compile errors):

1. add require bundle for org.eclipse.osgi to the downstream plugins
2. add -DflattenDependencies=true to the ant call to start the pde build.
(I didn't think this would work since the plugin and fragment are in the
same feature already)
3. Added Eclipse-ExtensibleAPI: true to my fragment (even though I know
it's not supposed to go there)
4. I even re-ordered the included plugins specified in the feature.xml.

Any more ideas?

On Tue, Jul 17, 2012 at 8:07 AM, Andrew Niefer <[email protected]> wrote:

> For PDE/Build, there should be no difference between Import-Package and
> Require-Bundle.  The bundles that bundles that PDE/Build will consider as
> required are from BundleDescription#getResolvedImports and
> BundleDescription#getResolvedRequires.
>
> Fragments should always show up on the classpath when a host bundle is
> required, the ExtensibleAPI header affects whether the fragments show up
> before or after the host.
>
> Here, the problem doesn't seem to be with the order of the classpath, but
> rather the order of compilation.
>
> One thing to check is the property "flattenDependencies", I believe the
> default is false if not set.  Without this set to true, then bundles
> compilation is only ordered by dependencies within a feature.  Features are
> processed in inclusion order.  If you set this to true, then all bundles
> across all features are sorted according to dependencies and compiled in
> that order.
> (As an aside, this ordering feature was added in 3.5, perhaps it is time
> to change the default to true :) ).
>
> -Andrew
>
>
>
> From:        Thomas Watson <[email protected]>
> To:        Equinox development mailing list <[email protected]>
> Date:        07/17/2012 08:41 AM
> Subject:        Re: [equinox-dev] PDE build with a framework adapter
> Sent by:        [email protected]
> ------------------------------
>
>
>
> Fragments to the system bundle (org.eclipse.osgi) should be added to the
> class path for any bundles that import packages exported by the fragment
> bundle.  This is similar to SWT where all the java classes are provided by
> the SWT fragments.  There is a header in org.eclipse.osgi
> (Eclipse-ExtensibleAPI: true) that simply a marker to indicate to PDE that
> it should place any fragments (that export packages) on the class path of
> consumers that either require-bundle the host (org.eclipse.osgi) or import
> a package provided by the host or one of its attached fragments.  The only
> thing I can think of is that this is not working seamlessly for
> Import-Package.  As an experiment could you try building a bundle that uses
> Require-Bundle: org.eclipse.osgi as well as Import-Package?
>
> If that works then I would open a bug against PDE-Build for the issue
> since it should handle Import-Package similarly to how PDE-UI does.
>
> Tom
>
>
>
> [image: Inactive hide details for Andrew Eisenberg ---07/16/2012 11:05:30
> PM---Hi all,]Andrew Eisenberg ---07/16/2012 11:05:30 PM---Hi all,
>
> From:
> Andrew Eisenberg <[email protected]>
> To:
> Equinox development mailing list <[email protected]>,
> Date:
> 07/16/2012 11:05 PM
> Subject:
> [equinox-dev] PDE build with a framework adapter
> ------------------------------
>
>
>
> Hi all,
>
> I have a framework adapter that I am creating.  Other bundles in the
> eclipse feature need to reference classes from the framework adapter.
> In a runtime workbench, this is working fine.  Similarly, I don't have
> any problems at runtime.  The bundles that require classes from the
> framework adapter just use import-package and everything seems to
> work.
>
> However, the problem is during a pde build.  The compile of the
> non-fragment bundles happens first and so they fail to compile since
> the fragment is not yet compiled (note that there is no explicit
> dependency on the fragment, there is only an import-package).  I've
> gotten around this through a horrendous hack where I compile the
> source folder of the framework adapter into a jar that gets stuck on
> the compile-time classpath of the bundles that need it.  And it is
> removed before creating the update site.
>
> Does anyone know a way around this?  Should I be asking this on the
> PDE mailing list?
>
> thanks,
> Andrew
> _______________________________________________
> equinox-dev mailing list
> [email protected]*
> **https://dev.eclipse.org/mailman/listinfo/equinox-dev*<https://dev.eclipse.org/mailman/listinfo/equinox-dev>
>
>
> _______________________________________________
> equinox-dev mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>
> _______________________________________________
> equinox-dev mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>

<<image/gif>>

<<image/gif>>

<<image/gif>>

<<image/gif>>

<<image/gif>>

<<image/gif>>

<<image/gif>>

<<image/gif>>

<<image/gif>>

_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to