[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[pde-build-dev] Problem with building feature when feature use orbit's plug-ins

Hi all,

Recently, we come across a update site build problem, as demonstrated
by the projects included in attached file.

A short description is like this:
* Project A is a plugin that depend/use classes from
org.apache.commons.lang provided via orbit
* Project B is a plugin that depend/use classes from
org.apache.commons.lang provided via orbit, and classed from A
* TestFeature project is a feature project that include A and B, and
depend on org.apache.commons.lang
* TestUpdatesite is the update site created from TestProject

* org.apache.commons.lang (for testing)

When build individually, A and B compile without any error. However,
when build via the update site, or via the feature (export as
deployable feature), they fail with message saying that classes in B
can't not resolve org.apache.commons.lang.

I suspect this is some problem with the update site build mechanism,
but not sure how to find out. Recently, I manage to generate ant
script from "the feature", which seems to show how the update site
mechanism build works. Using these ant scripts (one for each of A, B,
TestFeature and org.apache.commons.lang), I have been able to
re-create the error. Even running the build ant script in A or B cause
the error, while a normal build doesn't.

Most significantly, I can generate ant build script for individual
plugin, and these works. Compare the two, I had these differences:

>From feature.xml:

               <path id="@dot.classpath">
                       <pathelement path="../org.apache.commons.lang/@dot"/>
                       <pathelement
path="${build.result.folder}/../org.apache.commons.lang_2.1.0.200805271048/@dot"/>
                       <pathelement path="${build.result.folder}/../TestA/bin"/>
                       <pathelement
path="${build.result.folder}/../TestA_1.0.0/bin"/>
                       <pathelement
path="${build.result.folder}/../TestA/@dot"/>
                       <pathelement
path="${build.result.folder}/../TestA_1.0.0/@dot"/>
               </path>

>From plugin:

               <path id="@dot.classpath">
                       <pathelement path="../org.apache.commons.lang"/>
                       <pathelement path="../org.apache.commons.lang/@dot"/>
                       <pathelement path="../TestA/bin"/>
                       <pathelement path="../TestA/@dot"/>
               </path>

It seems the the build script generating from feature.xml miss this
class path "<pathelement path="../org.apache.commons.lang"/>". Add
this and the build can be run again.

I am not sure if this is a bug for pde build, so post it here first.
Also, is there anyway to resolve this problem beside changing the pde
build itself ?
Any help is greatly appreciated.

Cheers,
-- 
Dennis Nguyen (Uy Dung Nguyen)
http://www.linkedin.com/in/dennisn08

Software Developer
Kestral Computing Pty Ltd

Attachment: TestProjects.zip
Description: Zip archive