Getting started with PDE Build

June 6th, 2007  |  Published in Builds, Configuration, Rich Client Platform, Tutorial  |  279 Comments

I often work with teams getting started with Eclipse RCP, and the most common complaint I hear is that it’s too hard to set up automated builds. PDE Build can be frustrating to work with because it’s a black box. Your code goes in one side and a fully branded RCP application pops out the other. But if something goes wrong inside the box, where do you start to debug?

In my opinion, the best way to work with PDE Build is to get a very simple build running in your environment. Then make small, incremental additions, verifying the integrity of the process after each change. So the immediate problem for a team becomes: How do I get that first build running?

To help with this, I’ve put together a simple feature-based RCP product build. Just download and import the sample projects. If you follow the instructions in the included readme.txt file, you should have a build running fairly quickly. Before you know it, you’ll be seeing that always elusive BUILD SUCCESSFUL message flash across your screen!

Note: If you want to run this sample build using Eclipse 3.2, you’ll need to work around a PDE Build defect. For instructions on how to do this, check out the “Problems parsing feature file in a product build” section on the PDE Build wiki page.

Update – October 6, 2009: The sample projects have now been updated to work with Eclipse 3.5.1

Responses

  1. Running Automated Tests with PDE Build « RCP Quickstart: Eclipse Rich Client Platform Tips, Training and Consulting says:

    August 6th, 2007 at 8:25 pm (#)

    [...] Automated Tests with PDE Build In a previous post, I provided a set of projects that you could use to get a sample build running quickly. The idea [...]

  2. Alex Yeo says:

    September 1st, 2007 at 5:06 pm (#)

    Hi Patrick,

    Thank you for the examples. It works!

    However, appreciate if you can help point me in the direction where building features can be automated instead of product based builds.

    Also, have you given much thought to workarounds for hard-coding the fully qualified paths to the eclipseLocation, base and buildDirectory properties?

  3. pjpaulin says:

    September 4th, 2007 at 1:44 pm (#)

    Hi Alex,

    I’ll try to put together a feature build in a future post. But really, all you need to do is have an allElements.xml file that references the feature you’d like to build.

    As for hard-coding directories, I’m not sure how to get around this. If you have ideas in this area, I’d be interested in hearing them.

  4. Troy says:

    October 18th, 2007 at 4:24 am (#)

    Hi Patrick.

    Thanks for the start, this part of RCP is an absolute nightmare.
    I cannot get your example to run, apparently the launcher doesn’t exist?
    I am using this in Eclipse 3.2.1 with MyEclipse 5.5.

    The org.eclipse.equinox package doesn’t exist in either my install of eclipse or in the eclipse runtime binary. Where should this be? Have been banging my head against this PDE build for days now!

    Cheers,
    Troy

  5. pjpaulin says:

    October 18th, 2007 at 1:06 pm (#)

    Hi Troy,

    Yes, PDE Build is tough to get started with. I know what you’re going through, and trust me it gets easier!

    As for running the examples with Eclipse 3.2, there are a few changes you’ll need to make:

    1. In the task, change classname=”org.eclipse.equinox.launcher.Main” to classname=”org.eclipse.core.Main”.

    2. At the end of the task, change the to the 3.2 version by commenting out the first line and uncommenting the second.

    Hope this helps,

    — Patrick

  6. Richard says:

    November 9th, 2007 at 2:35 pm (#)

    Hi Patrick,

    thanks a lot for the example, it’s the 1st one I’ve tried that actually created .exe launcher in my product :-). However I still cannot get it to work, I wonder if you have some tips about what could be wrong:

    After some tweaking (I had to add org.eclipse.equinox.app manually, it was neither in Runtime Binary nor in Delta pack) I ended up with runnable product, which ends up, shortly after start, with RuntimeException:
    “Application “com.rcpquickstart.helloworld.application” could not be found in the registry. The applications available are: .”

    At that point I realized that I was working with RCP 3.2.1, so I switched to 3.3M4, where it doesn’t even build – assemble phase in generated assemble.org.eclipse.pde.build.container.feature.win32.win32.x86.xml in eclipse.brand target ends with java.io.EOFException.

    Sorry for a lengthy post, I am getting more and more surprised that whole Eclipse IDE can be really built this way :-/.

    Regards, Richard.

  7. pjpaulin says:

    November 9th, 2007 at 5:44 pm (#)

    Hi Richard,

    The most painless way to get the build running is to create a build target containing the final 3.3 RCP Runtime Binary and the RCP Delta Pack. Not having the Delta Pack is what causes the EOF Exception. If you build against such a target and are still getting errors, let me know.

    And yes, PDE Build can be frustrating to work with. The error messages aren’t especially helpful and little things can mess up the whole process. It does work, though, so stick with it!

    — Patrick

  8. Richard says:

    November 12th, 2007 at 12:50 pm (#)

    Hi Patrick,

    thanks for the tip, with 3.3.1.1 everything works! Hopefully I won’t need to migrate to newer version of RCP in next couple years :-).

    Richard.

  9. Channing Walton says:

    December 6th, 2007 at 3:30 pm (#)

    Hi Patrick,
    we’ve been pulling our hair out over this too. We’ve got as far as ant attempting to run the tests but the error we get is: Application “org.eclipse.test.uitestapplication” could not be found in the registry.

    The test plugins are present and are completely stumped.

    Pointers would be greatly appreciated. We’re using eclipse 3.3 so its slightly different to your example.

    Channing

  10. Channing Walton says:

    December 6th, 2007 at 3:32 pm (#)

    That should have been: “The test plugins are present and we are completely stumped.”

  11. pjpaulin says:

    December 6th, 2007 at 5:51 pm (#)

    Hi Channon,

    I’m assuming your question is related to my post on running automated tests with PDE Build:

    http://rcpquickstart.wordpress.com/2007/08/06/running-automated-tests-with-pde-build/

    First, the sample code for that is based on Eclipes 3.3, so it should match your environment. And when you say the test plugins are present, do you mean the plugins that come with the Ecilpse Testing Framework? These are what contribute uitestapplication. If those plugins are there, you should check the log to see if some dependency is not being met when the test plugins are resolving.

    And remember, the test framework needs to run in a complete copy of the Eclipse SDK, not just the RCP runtime binary. This is a common mistake that causes the test plugins to not resolve.

    Hope this helps,

    — Patrick

  12. Greg Johnson says:

    December 8th, 2007 at 11:13 pm (#)

    Hi Patrick,
    I am delighted to find something – anything – that is actually comprehensible about PDE Build. However, I’m trying to do this for a cross platform RCP app – and starting with my mac. I made the edits you suggest, and then two more for the platform (osx,carbon,ppc), but get the following results in the pde-build: section:

    [java] fetch:
    [java] generateFeature:
    [java] BUILD FAILED
    [java] /Applications/Addons/eclipse_europa/plugins/org.eclipse.pde.build_3.3.2.R331_v20071019/scripts/productBuild/productBuild.xml:24: The following error occurred while executing this line:
    [java] /Applications/Addons/eclipse_europa/plugins/org.eclipse.pde.build_3.3.2.R331_v20071019/scripts/productBuild/productBuild.xml:51: Internal Error. Content Provider not set for Site: “{0}”.
    [java] Total time: 0 seconds

    BUILD FAILED

    Any clues? I’m not sure where to go from here…

  13. pjpaulin says:

    December 10th, 2007 at 5:26 pm (#)

    Hi Greg,

    I’m guessing from your paths that you’re running on a Mac. You’ll need to modify the paths in the build.properties file based on whatever paths you choose for your “helloworld-build” and “helloworld-build-target” directories.

    If the directories are not an issue, let me know and I’ll dig into it more.

    — Patrick

  14. Johan Asterholm says:

    December 10th, 2007 at 9:27 pm (#)

    There seems to be something wrong with the download file. i just get an empty file when trying (tried on two different machines).

  15. Georges Bachelier says:

    December 11th, 2007 at 8:47 am (#)

    Hi Patrick,

    I was happy to find an example on this complex topic of PDE Building, unfortunately the archive file seems to be corrupted. The zip file size is 131K, but is empty when opened with IZArc.

    Could you please check this?

    Kind regards,
    Georges

  16. pjpaulin says:

    December 11th, 2007 at 9:06 pm (#)

    Hi Johan and Georges,

    The downloads should work now. Thanks for letting me know!

    — Patrick

  17. Johan Asterholm says:

    December 11th, 2007 at 11:45 pm (#)

    The example works great! Thanks for a nice example.

    Regards Johan

  18. Johan Asterholm says:

    December 12th, 2007 at 12:13 am (#)

    I have a question if its ok. I put my own rcp product in the same layout as your example but i get a problem. My RCP product requests some compile and run time libraries. they are placed in my plug in and i have specified these as extra classpath libraries in the feature. however, it seems like they are not found at compiletime even if they are in the build.xml which was placed in my plugin directory. any clues? Best Regards Johan

  19. Johan Asterholm says:

    December 12th, 2007 at 12:32 am (#)

    sorry forget about my squestion. it works great now. (my product file was not up to date).

  20. Georges Bachelier says:

    December 12th, 2007 at 9:28 am (#)

    Hi Patrick,

    everything works fine now! I did not grab the proper versions of RCP Runtime and Delta Pack. Thank you so much for this example! It makes me confident again with this RCP build process. The only consolation I had until today was to feel part of a community of RCP build fighters.

    One last word: in your Readme file, you mention that the application should appear shortly during unit tests execution. May be is it an outdated comment; the build.xml script does not launch any unit test.

    Best regards,

    Georges

  21. pjpaulin says:

    December 12th, 2007 at 1:22 pm (#)

    Hi Georges,

    I’m glad the example works for you, and thanks for catching the readme file mistake! It’s now corrected.

    — Patrick

  22. Georges Bachelier says:

    December 17th, 2007 at 12:07 pm (#)

    Hi Patrick,

    although my project looks like yours from a structural point of view (plug-in, feature, builder) and my settings seem to be correct, I can’t get a successful PDE build on my project. The first error message is [eclipse.generateFeature] Missing required plug-in org.eclipse.ui.console_0.0.0.
    I get the same error if I add org.eclipse.ui.console to the list of required plug-ins for the com.rcpquickstart.helloworld project. Could you please tell me how I can fix this?

    Best regards,

    Georges

  23. pjpaulin says:

    December 17th, 2007 at 8:43 pm (#)

    Hi Georges,

    Does your application use the console plug-in? If so, you’d need to add that plug-in to your build target. It makes sense that you’d get this error by adding org.eclipse.ui.console to the Hello World project.

    But there are often a set of pretty meaningless missing plug-in messages at the beginning of the build. If you’d like to email me the complete log for the build, I’d be happy to take a look at it.

    — Patrick

  24. Aaron Pritzlaff says:

    January 2nd, 2008 at 3:16 pm (#)

    Hi Patrick,
    Thanks for your help – I was able to quickly convert my rcp project to a neat headless build based on your example. Though now similar to Mr Bachelier’s problem, I receive “missing required plug-in” errors when I add a dependency to another plugin — namely a “plug-in from existing JAR archives”. I was hoping you could cover how to adapt the build.properties/build.xml/etc to cover how to extend your helloworld example to include a new “helloworld.dependencies” project dependency. (Preferably with the new dependency plug-in referencing its jars, not unzipping them on import).

    It would also be very useful to provide a similar helloworld example for dependency plug-ins.

    Many thanks for all the help,
    Aaron

  25. Patrick says:

    January 3rd, 2008 at 4:54 pm (#)

    Hi Aaron,

    You shouldn’t need to make any changes to the build.properties or build.xml files when you add a new plug-in (wrapping a JAR or otherwise). Have you added the new plug-in to the feature that is referenced in your product configuration?

    If you’d like to send me the log output from the build process, I’d be happy to look at it.

    — Patrick

  26. Aaron Pritzlaff says:

    January 4th, 2008 at 2:24 pm (#)

    Thanks again Patrick for your patience/help.

    After downloading the helloworld example project (and many thanks again – it was a pleasure to find that working right out-of-the box after spending a lot of time being frustrated working out how to get PDEBuild to work) I’ve made the following changes to add a dependency on log4j.

    In Eclipse 3.3.1.1:

    1) Navigate to File->New->Project->Existing Plug-in from Existing JAR Archives

    2) Add External -> navigate to log4j somewhere on my harddisk

    3) Give set the name and id to “com.rcpquickstart.helloworld.dependencies”, untick “Unzip the JAR archives into the project”, and create it in a new custom location — a directory called “com.rcpquickstart.helloworld.dependencies” alongside the other com.recpquickstart.* directories from the download

    4) In the “com.rcpquickstart.helloworld” project, edit the plugin.xml by navigating to the dependencies tab in the editor and adding “com.rcpquickstart.helloworld.dependencies” as a new required plug-in.

    5) log4j can now be referenced from the helloworld plugin, but running the default ant build target now fails (as expected).

    6) Edit feature.xml in the com.recpquickstart.helloworld.feature project. Navigate to the plugin tab and select the “com.rcpquickstart.helloworld.dependencies” project

    Running the default ant build target fails with the following error:



    [java] generateScript:
    [java] [eclipse.buildScript] Some inter-plug-in dependencies have not been satisfied.
    [java] [eclipse.buildScript] Bundle com.rcpquickstart.helloworld:
    [java] [eclipse.buildScript] Missing required plug-in com.rcpquickstart.helloworld.dependencies_0.0.0.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.filesystem.win32.x86:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.filesystem_[1.1.0,2.0.0) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.resources.win32:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.resources_[3.3.0,3.4.0) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.platform.source.win32.win32.x86:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.platform.source_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3
    Dz has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.rcp.source.win32.win32.x86:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.rcp.source_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2d
    S has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.win32:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.ide_[3.2.0,4.0.0) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.update.core.win32:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.update.core_[3.0.0,4.0.0) has not been found.
    [java]
    [java] BUILD FAILED
    [java] l:\eclipse3.3\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\productBuild\productBuild.xml:27: The following error occurred while executing this line:
    [java] L:\eclipse3.3\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\build.xml:64: The following error occurred while executing this line:
    [java] L:\eclipse3.3\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\templates\headless-build\customTargets.xml:
    10: The following error occurred while executing this line:
    [java] L:\eclipse3.3\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\productBuild\allElements.xml:9: The following error occurred while executing this line:
    [java] L:\eclipse3.3\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\genericTargets.xml:85: Unable to find plug-in: com.rcpquickstart.helloworld_0.0.0. Please check the error log for more details.
    [java]
    [java] Total time: 0 seconds

    BUILD FAILED

    What steps have I missed?

    The files I have changed from the helloworld download (asside from adding the new com.rcpquickstart.helloworld.dependencies project):

    com.rcpquickstart.helloworld\META-INF\MANIFEST.MF

    ORIGINAL LINE:
    Require-Bundle: org.eclipse.ui,
    org.eclipse.core.runtime

    CHANGED TO:
    Require-Bundle: org.eclipse.ui,
    org.eclipse.core.runtime,
    com.rcpquickstart.helloworld.dependencies

    com.rcpquickstart.helloworld.build\build.properties
    ORIGINAL LINES:
    base=c:/helloworld-build-target

    buildDirectory=c:/helloworld-build

    CHANGED TO:
    project.root=l:/trunk

    base=${project.root}/build-target
    buildDirectory=${project.root}/target

    com.rcpquickstart.helloworld.feature\feature.xml

    NEW LINES:

    My build-target directory looks like this (perhaps something there isn’t tickity-boo?)

    L:\trunk\build-target>tree
    Folder PATH listing
    Volume serial number is 04BB-1FFF
    L:.
    +—eclipse
    +—configuration
    ¦ +—org.eclipse.osgi
    ¦ +—.manager
    +—features
    ¦ +—org.eclipse.equinox.executable_3.3.2.R331_v20071022-7C-7IB9rtLA9gKLWTaWl
    ¦ ¦ +—bin
    ¦ ¦ ¦ +—carbon
    ¦ ¦ ¦ ¦ +—macosx
    ¦ ¦ ¦ ¦ +—ppc
    ¦ ¦ ¦ ¦ ¦ +—Eclipse.app
    ¦ ¦ ¦ ¦ ¦ +—Contents
    ¦ ¦ ¦ ¦ ¦ +—MacOS
    ¦ ¦ ¦ ¦ +—x86
    ¦ ¦ ¦ ¦ +—Eclipse.app
    ¦ ¦ ¦ ¦ +—Contents
    ¦ ¦ ¦ ¦ +—MacOS
    ¦ ¦ ¦ +—gtk
    ¦ ¦ ¦ ¦ +—linux
    ¦ ¦ ¦ ¦ ¦ +—ppc
    ¦ ¦ ¦ ¦ ¦ +—x86
    ¦ ¦ ¦ ¦ ¦ +—x86_64
    ¦ ¦ ¦ ¦ +—solaris
    ¦ ¦ ¦ ¦ +—sparc
    ¦ ¦ ¦ +—motif
    ¦ ¦ ¦ ¦ +—aix
    ¦ ¦ ¦ ¦ ¦ +—ppc
    ¦ ¦ ¦ ¦ +—linux
    ¦ ¦ ¦ ¦ ¦ +—x86
    ¦ ¦ ¦ ¦ +—solaris
    ¦ ¦ ¦ ¦ +—sparc
    ¦ ¦ ¦ +—win32
    ¦ ¦ ¦ ¦ +—win32
    ¦ ¦ ¦ ¦ +—x86
    ¦ ¦ ¦ +—wpf
    ¦ ¦ ¦ +—win32
    ¦ ¦ ¦ +—x86
    ¦ ¦ +—gtk_root
    ¦ ¦ ¦ +—about_files
    ¦ ¦ +—motif_root
    ¦ ¦ +—about_files
    ¦ +—org.eclipse.rcp_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    ¦ +—META-INF
    +—plugins
    ¦ +—org.eclipse.equinox.launcher.carbon.macosx_1.0.2.R331_v20071019
    ¦ ¦ +—META-INF
    ¦ +—org.eclipse.equinox.launcher.gtk.linux.ppc_1.0.2.R331_v20071019
    ¦ ¦ +—META-INF
    ¦ +—org.eclipse.equinox.launcher.gtk.linux.x86_1.0.2.R331_v20071019
    ¦ ¦ +—META-INF
    ¦ +—org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.2.R331_v20071019
    ¦ ¦ +—META-INF
    ¦ +—org.eclipse.equinox.launcher.gtk.solaris.sparc_1.0.2.R331_v20071019
    ¦ ¦ +—META-INF
    ¦ +—org.eclipse.equinox.launcher.motif.aix.ppc_1.0.2.R331_v20071019
    ¦ ¦ +—META-INF
    ¦ +—org.eclipse.equinox.launcher.win32.win32.x86_1.0.2.R331_v20071019
    ¦ ¦ +—META-INF
    ¦ +—org.eclipse.equinox.launcher.wpf.win32.x86_1.0.2.R331_v20071019
    ¦ ¦ +—META-INF
    ¦ +—org.eclipse.jdt.source.macosx.carbon.ppc_3.3.1.r331_v20070629-7o7jE72EDlXAbqAcnbmyg1rf8RIL
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.jdt.launching.macosx_3.1.100.v20061211
    ¦ +—org.eclipse.platform.source.linux.gtk.ppc_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.core.filesystem.linux.ppc_1.0.100.v20070430
    ¦ ¦ +—org.eclipse.update.core.linux_3.2.0.v20070615
    ¦ ¦ +—src
    ¦ +—org.eclipse.platform.source.linux.gtk.x86_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.core.filesystem.linux.x86_1.1.0.v20070416
    ¦ ¦ +—org.eclipse.update.core.linux_3.2.0.v20070615
    ¦ ¦ +—src
    ¦ +—org.eclipse.platform.source.linux.gtk.x86_64_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.core.filesystem.linux.x86_64_1.0.100.v20070510
    ¦ ¦ +—org.eclipse.update.core.linux_3.2.0.v20070615
    ¦ ¦ +—src
    ¦ +—org.eclipse.platform.source.macosx.carbon.ppc_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.core.filesystem.macosx_1.0.0.v20060603
    ¦ +—org.eclipse.platform.source.solaris.gtk.sparc_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.core.filesystem.solaris.sparc_1.0.100.v20070425
    ¦ +—org.eclipse.platform.source.win32.win32.x86_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.core.filesystem.win32.x86_1.1.0.v20070510
    ¦ ¦ +—org.eclipse.core.resources.win32_3.3.0.v20070226
    ¦ ¦ ¦ +—a
    ¦ ¦ +—org.eclipse.ui.win32_3.2.100.I20070319-0010
    ¦ ¦ +—org.eclipse.update.core.win32_3.2.100.v20070615
    ¦ ¦ +—src
    ¦ +—org.eclipse.platform.source.win32.wpf.x86_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.core.filesystem.win32.x86_1.1.0.v20070510
    ¦ ¦ +—org.eclipse.core.resources.win32_3.3.0.v20070226
    ¦ ¦ ¦ +—a
    ¦ ¦ +—org.eclipse.update.core.win32_3.2.100.v20070615
    ¦ ¦ +—src
    ¦ +—org.eclipse.rcp.source.aix.motif.ppc_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.swt.motif.aix.ppc_3.3.1.v3347a
    ¦ ¦ +—about_files
    ¦ +—org.eclipse.rcp.source.linux.gtk.ppc_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.swt.gtk.linux.ppc_3.3.2.v3347
    ¦ ¦ +—about_files
    ¦ +—org.eclipse.rcp.source.linux.gtk.x86_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.swt.gtk.linux.x86_3.3.2.v3347
    ¦ ¦ +—about_files
    ¦ +—org.eclipse.rcp.source.linux.gtk.x86_64_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.swt.gtk.linux.x86_64_3.3.2.v3347
    ¦ ¦ +—about_files
    ¦ +—org.eclipse.rcp.source.macosx.carbon.ppc_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.swt.carbon.macosx_3.3.2.v3347a
    ¦ ¦ ¦ +—about_files
    ¦ ¦ +—org.eclipse.ui.carbon_3.2.100.I20070605-0010
    ¦ +—org.eclipse.rcp.source.solaris.gtk.sparc_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.swt.gtk.solaris.sparc_3.3.2.v3347
    ¦ ¦ +—about_files
    ¦ +—org.eclipse.rcp.source.win32.win32.x86_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    ¦ ¦ +—META-INF
    ¦ ¦ +—src
    ¦ ¦ +—org.eclipse.swt.win32.win32.x86_3.3.2.v3347a
    ¦ ¦ +—about_files
    ¦ +—org.eclipse.rcp.source.win32.wpf.x86_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    ¦ +—META-INF
    ¦ +—src
    ¦ +—org.eclipse.swt.wpf.win32.x86_3.3.1.v3347a
    ¦ +—about_files
    +—readme

  27. Patrick says:

    January 4th, 2008 at 8:11 pm (#)

    Hi Aaron,

    I think the issue is that the dependencies plug-in is not getting copied to the build directory. If you look at the “init” target in the build.xml file, it’s copying the projects from your workspace into the build directory. Currently, it’s hard coded to copy only the main plug-in.

    You’ll either need to add the dependencies plug-in there or create a more generic rule about what gets copied where. A rule I’ve used in the past is to copy everything that has “.feature” in it to the feature directory and copy everything that does NOT have “.feature” in it to the plugins directory. It would look something like this:


    <copy todir="${buildDirectory}/plugins">
         <fileset dir="../">
              <exclude name="*.feature/**" />
         </fileset>
    </copy>
    <copy todir="${buildDirectory}/features">
         <fileset dir="../">
              <include name="*.feature/**" />
         </fileset>
    </copy>

    BTW, I think it’s best to wrap each third-party library in it’s own plug-in. For example, I wrap log4j in a plug-in called org.apache.log4j.

    Hope this helps,

    — Patrick

  28. Aaron Pritzlaff says:

    January 7th, 2008 at 1:08 pm (#)

    That’s excellent – what a noob mistake to make. ;-) Thanks again for all the hand-holding; it’s much appreciated!

  29. Georges Bachelier says:

    January 30th, 2008 at 1:21 pm (#)

    Hi Patrick,

    we would like to bundle the JRE 6 in our RCP application. The information found in the Eclipse Help, (Feature and Plug-in Build Configuration Properties chapter) let me think that this was easy to do. Unfortunately, I can’t get it working. I have added the following line to my build.properties file:
    root=absolute:file:${eclipseLocation}/notice.html

    I was expecting the notice.html to be copied in the root folder of my product, but alas, nothing happened. I have tried many different configurations such as root.win32.win32.x86=
    but none of them gave any result. Did I misunderstand this property usage?

    Thanks a lot in advance for your time,

    Georges

  30. Patrick says:

    January 30th, 2008 at 9:40 pm (#)

    Hi Georges,

    You’re using the correct mechanism to add files to the root. Frankly, I’m not sure why your root= property isn’t working. Embedding ${eclispseLocation} into the path is the only unusual thing, and while this won’t work when building within the IDE, it should work fine for an automated build.

    I just tried using your exact syntax with the sample build project for this post, and the notice.html file got copied in fine. Maybe you could try the same experiment and then see where your project differs from the sample.

    FWIW, I usually specify root content in a rootfiles folder located in the feature itself. I know that this might not be practical for JREs though.

    — Patrick

  31. Georges Bachelier says:

    January 31st, 2008 at 12:40 pm (#)

    Hi Patrick,

    I did not add the root property to the proper file! I was modifying the build.properties of the build project instead of the feature one! It works fine now.
    Thanks a lot for your help!

    Georges

  32. Georges Bachelier says:

    February 1st, 2008 at 6:51 am (#)

    Hi Patrick,

    is it possible to use environment variables in a build.properties file? We would like our build process to be runnable by everyone in our development team.
    My file contains the following:

    bin.includes = feature.xml
    root=absolute:file:D:\eclipse-SDK-3.3.1.1-win32-full\eclipse\notice.html

    Is it possible to replace the Eclipse pathname with an environment variable? I have done some tests with different syntaxes, but I did not get any of them working.

    Thanks a lot in advance for your time,

    Georges

  33. Patrick says:

    February 1st, 2008 at 4:56 pm (#)

    Hi Georges,

    The environmental variables work for me when I’m doing an automated build. I used ${eclipseLocation} with the sample build in the post, and it worked fine.

    I do get an error, though, when I try to build within the IDE by clicking on the “Eclipse Product export wizard” link in the Product Configuration editor. I suppose that makes sense, as it’s not using the build.properties file at that point.

    — Patrick

  34. Georges Bachelier says:

    February 6th, 2008 at 12:43 pm (#)

    Hi Patrick,

    sorry, I can’t get the build process working with environmental variables.
    Did you use ${eclipseLocation} in the feature properties file, or in the builder one?
    Could you please send the modified file? May be did I do a stupid mistake, like usual…
    Are you working on a Linux platform or a Windows one?

    Kind regards,

    Georges

  35. Patrick says:

    February 6th, 2008 at 5:54 pm (#)

    Hi Georges,

    I simply added your line to the build.properties file in the feature:

    root=absolute:file:${eclipseLocation}/notice.html

    This worked fine. I am running under Windows and my Eclipse install is in c:\eclipse. Can you try adding the line to a clean copy of the tutorial build and see if that works?

    — Patrick

  36. Georges Bachelier says:

    February 7th, 2008 at 12:08 pm (#)

    Hi Patrick,

    you are right, adding the line
    root=absolute:file:${eclipseLocation}/notice.html
    to the feature build.properties file works, eclipseLocation being itself assigned a hard coded pathname in the builder build.properties file.

    But, if you try to assign a value to eclipseLocation like this: eclipseLocation=${env.ECLIPSE_HOME}

    with the following lines in build.xml:

    the build process fails with the message:
    D:\helloworld-build\features\com.rcpquickstart.helloworld.feature\${env.ECLIPSE_HOME} not found.

    I guess root=absolute:file:${eclipseLocation}/notice.html cannot be resolved if eclipseLocation is assigned a value through an environment variable probably because
    of the order in which variables are evaluated.

    If this issue could be fixed, we would have our build process parameterized by user environment variables values. Do you see any solution to this?

    Thanks a lot in advance for your time!

    Georges

  37. Patrick says:

    February 7th, 2008 at 5:31 pm (#)

    Hi Georges,

    Yes, it looks like environmental variables do not get loaded, though you can set them in the Environment tab of the Ant run dialog.

    They may get loaded, though, when you run ant from the command line. Have you tried this?

    — Patrick

  38. Georges Bachelier says:

    February 8th, 2008 at 6:54 am (#)

    Hi Patrick,

    I have found an acceptable solution which does not rely on environment variables: we now have two properties files: build.properties and build_local.properties. The first one contains fixed properties like configs or product while the second file contains user-dependent properties such as eclipseLocation and baseLocation (we are 3 developers on this project and every one should be able to build the product from his machine before we set a nightly build mechanism up). I declare both property files at the beginning of the build.xml file and everything is OK. The only trick was to add
    to the pde-build target.

    Many thanks for your efficient and kind support!

    Georges

  39. Steven says:

    February 8th, 2008 at 2:40 pm (#)

    I’m having problems getting log4j to work from an Eclipse 3.3.1 plugin. I’ve created a new plugin from existing jars and added log4j to it. I’ve edited the manifest to export all the log4j packages.

    However, in another plugin project that references the log4j plugin as a dependency, Eclipse says it can’t find the org.apache.log4j package.

    We have many other libraries wrapped in their own plugin and they work. We don’t see anything different with the log4j plugin, but it’s not working.

    Any suggestions?

  40. Patrick says:

    February 8th, 2008 at 7:36 pm (#)

    Hi Steven,

    It sounds like you’ve done what you need to do to access the log4j package. Did you type the package names or use the wizard to create the list? Also, remember that exporting a subpackage does not allow access to parent packages. If you’d like to send me the manifest, I’d be happy to take a look at it.

    Also, remember that log4j will need visibility back into the plug-in that contains your configuration file. The best way to achieve this is to use “buddy” classloading. Alex Blewitt has written a good article that walks you through this:

    http://www.eclipsezone.com/articles/eclipse-vms/

    Hope this helps,

    — Patrick

  41. Claudiu says:

    February 8th, 2008 at 9:57 pm (#)

    Hi,

    Trying to run the ant script I’m getting this error:

    D:\WORK\PROGRAMS\eclipse\plugins\org.eclipse.pde.build_3.2.1.r321_v20060823\scripts\productBuild\productBuild.xml:47: Unable to find element: /com.rcpquickstart.helloworld/helloworld.product.

    The helloworld-build folder seems to be constructed correctly and the properties from buil.properties are setted accordingly.

    Any idea about solving this?

  42. Patrick says:

    February 9th, 2008 at 12:07 am (#)

    Hi Claudiu,

    I’m not sure what the problem could be. Can you email me the build.properties file and the build.xml (if you’ve made any changes to it). I’m going to be traveling the next few days, but I’ll look at it as soon as I can.

    — Patrick

  43. Steven says:

    February 11th, 2008 at 11:33 am (#)

    I deleted the log4j plugin project and started again. This time it works. There’s so few steps involved in wrapping log4j as a plugin, I don’t see where we went wrong the first time. Oh well, such is life in software development!

  44. Claudiu says:

    February 11th, 2008 at 6:58 pm (#)

    Only my fault it was a typo on product id. But now it stops saying that ’some inter-plug-in dependencies have not been satisfied’. My product has some dependencies introduced through the its features. Where do I have to add these archives in order to be found

  45. Patrick says:

    February 11th, 2008 at 10:29 pm (#)

    Hi Claudio,

    If you’ve added plug-ins to your feature, you’ll need to make sure these get copied into the build directory. The default build script is hard-coded to copy only the plug-ins in the tutorial. There is a comment above (posted on January 4th) which describes the changes you need to make.

    Hope this helps,

    — Patrick

  46. Claudiu says:

    February 12th, 2008 at 9:21 am (#)

    Hi Patrick,

    Thank you for your quick answer. I saw the post you’re talking about, but let me explain my problem. I have a product who depends on other modules. Something like this: i have a client who depends on BO module and on DAO module. When I try to build the project it says that the jars for this modules could not be found. I was hoping that the pde build knows that has to create these jars also, before creating the product. Do I have to do this manually and the add them in the build/plugins directory ?

    Thank you for your very kind support,
    Claudiu

  47. Immo Huneke says:

    February 14th, 2008 at 11:03 am (#)

    Hi Patrick,

    Thanks for this very thorough and accurate guide. At first I couldn’t get your example to work until I realised that the pathnames supplied for both the “base” and “eclipseLocation” parameters in the build.properties file have to be absolute paths expressed with forward slashes (not the DOS convention, although a drive letter is allowed), contain no spaces and don’t have quote-marks around them. It also doesn’t seem possible to use any kind of environment variable reference as part of these paths, which is a pity. An attempt to use an environment variable as part of the “base” pathname leads to the error message “Content Provider not set for site: {0}”, which was observed by Greg Johnson on December 8 (see above).

    I had to reinstall my eclipse and target platform because they were originally under “Program Files”!

    Best regards,
    Immo

  48. Patrick says:

    February 14th, 2008 at 5:08 pm (#)

    Hi Immo,

    Yes, I’ve experienced all of the issues you mention. I’m not aware of any way to use environmental variables in the build process, And as far as the Eclipse and target platform location is concerned, I think this may relate to ANT not handling paths with spaces correctly. I try to avoid spaces in any directory that will be referenced by PDE Build.

    — Patrick

  49. Immo Huneke says:

    February 15th, 2008 at 9:13 pm (#)

    Thanks for all your help. I’ve finally managed to get the build working and would like to invite readers to follow my recipe on http://aspsp.blogspot.com/ .

  50. Tibor says:

    February 19th, 2008 at 11:01 am (#)

    Hi,

    We are developing a feature-based Eclipse RCP application for that we would like to introduce a continuous build system (CruiseControl).
    We have already managed to set up a headless build solution based on this great example (thanks to Patrick!)

    Our only problem is that the PDE Build seems to ignore the Launcher name () that we specify in the product file.
    It generates successfully the zip deliverable, but with the default launcher name, “launcher.exe” instead of the expected “ertools.exe” inside.
    At the same time, in case of the Helloworld example, if we change the launcher name in the product file, it works fine.

    Any hint to resolve this problem is welcome and highly appreciated.

    Notes:
    We use the following architecture: configs=win32, win32, x86
    The content of our product file (ertools.product):

    -Xmx512m

    Best regards,
    Tibor

  51. Tibor says:

    February 19th, 2008 at 11:06 am (#)

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <?pde version=”3.1″?>

    <product name=”ERTOOLS – X.X.XX (YYYYYY)” id=”com.contiautomotive.ertools.main.ertools” application=”com.contiautomotive.ertools.main.application” useFeatures=”true”>

    <configIni use=”default”/>

    <launcherArgs>
    <vmArgs>-Xmx512m</vmArgs>
    </launcherArgs>

    <windowImages i16=”icons/alt_window_16.gif” i32=”icons/alt_window_32.gif”/>

    <splash
    location=”com.contiautomotive.ertools.main” />
    <launcher name=”ertools”>
    <solaris/>
    <win useIco=”true”>
    <ico path=”icons/alt_launcher.ico”/>
    <bmp/>
    </win>
    </launcher>

    <vm>
    </vm>

    <plugins>
    </plugins>

    <features>
    <feature id=”com.contiautomotive.ertools” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.cm” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.codegen” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.compare” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.compileserver” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.data” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.devpath” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.eeprom” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.erelease” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.extbins” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.extlib” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.extpacs” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.login” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.main” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.make” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.qa” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.refreshgencode” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.reports” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.restorescp” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.sandbox” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.standalone” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.support” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.transfercp” version=”6.1.0.qualifier”/>
    </features>

    </product>

  52. Avinash says:

    February 19th, 2008 at 3:14 pm (#)

    Hi,
    I tried the building the same as per the steps in the readme.txt and I got the following

    Buildfile: C:\Project\Eclipse3.3.1.1\eclipse\workspace\com.rcpquickstart.helloworld.build\build.xml
    clean:
    [delete] Deleting directory c:\helloworld-build
    init:
    [mkdir] Created dir: c:\helloworld-build
    [mkdir] Created dir: c:\helloworld-build\plugins
    [mkdir] Created dir: c:\helloworld-build\features
    [copy] Copying 28 files to c:\helloworld-build\plugins
    [copy] Copying 3 files to c:\helloworld-build\features
    pde-build:
    [java] java.lang.NoClassDefFoundError: org/eclipse/equinox/launcher/Main
    [java] Exception in thread “main”

    BUILD FAILED
    C:\Project\Eclipse3.3.1.1\eclipse\workspace\com.rcpquickstart.helloworld.build\build.xml:58: Java returned: 1

    Total time: 1 second

    Is there anything I am missing .

    Thanks,
    Avinash

  53. Patrick says:

    February 19th, 2008 at 5:12 pm (#)

    Hi Tibor,

    My guess is that the launcher name is not getting named correctly because your icon file path is not complete. The path should begin with the plug-in that contains the icon, like:

    /com.contiautomotive.ertools.main/icons/alt_launcher.ico

    If changing the icon path doesn’t work, let me know and I’ll look into it further.

    — Patrick

  54. Patrick says:

    February 19th, 2008 at 5:17 pm (#)

    Hi Avinash,

    This error occurs when the build.xml file fails to locate the eclipse launcher plug-in. This can be caused by one of the following:

    1. You’re not using Eclipse 3.3.
    2. The eclipseLocation property in the build.properties file points to the wrong location.
    3. The equinoxLauncherPluginVersion property in the build.properties file is not set correctly.

    Hope this helps,

    — Patrick

    If

  55. Avinash says:

    February 19th, 2008 at 6:12 pm (#)

    Hi ,
    Thanks for the reply but

    I am using Eclipse version : Version: 3.3.1.1

    and here are the contents of the build.properties. I had changed them as specified in the readme.txt.

    # Version of org.ecilpse.pdebuild
    pdeBuildPluginVersion=3.3.2.R331_v20071019

    # Version of org.eclipse.equinox.launcher
    equinoxLauncherPluginVersion=1.0.2.R331_v20071019

    ############# ECLIPSE LOCATION ######################
    #
    # Specify the directory of the Eclipse installation
    # that will be used to execute PDE Build.
    #
    #####################################################

    eclipseLocation=C:\Project\Eclipse3.3.1.1\eclipse

    Regards,
    Avinash

  56. Patrick says:

    February 19th, 2008 at 6:27 pm (#)

    Hi Avinahs,

    It looks like you might have taken the launcher version from the org.eclipse.equinox.launcher.win32.win32.x86 fragment. For Eclipse 3.3.1.1, the version of the org.eclipse.equinox.launcher plug-in is 1.0.1.R33x_v20070828. So in your build.properties file, the property would be:

    equinoxLauncherPluginVersion=1.0.1.R33x_v20070828

    Hope this helps,

    — Patrick

  57. Avinash says:

    February 19th, 2008 at 6:51 pm (#)

    Hi Patrick,
    Awesome… It worked..Thanks for the response.

    Regards,
    Avinash

  58. Tibor says:

    February 20th, 2008 at 11:49 am (#)

    Hi Patrick,

    Thanks for your suggestion.
    Now, I simplified my product file as much as possible (see below).
    The build is still successful, but the name of the executable is still “launcher.exe”.

    Best regards,
    Tibor

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <?pde version=”3.1″?>

    <product name=”ERTools” id=”com.contiautomotive.ertools.main.ertools” application=”com.contiautomotive.ertools.main.application” useFeatures=”true”>

    <configIni use=”default”/>

    <launcherArgs>
    </launcherArgs>

    <windowImages/>

    <launcher name=”ertools”>
    <solaris/>
    <win useIco=”true”>
    <bmp/>
    </win>
    </launcher>

    <vm>
    </vm>

    <plugins>
    </plugins>

    <features>
    <feature id=”com.contiautomotive.ertools” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.cm” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.codegen” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.compare” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.compileserver” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.data” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.devpath” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.eeprom” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.erelease” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.extbins” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.extlib” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.extpacs” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.login” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.main” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.make” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.qa” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.refreshgencode” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.reports” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.restorescp” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.sandbox” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.standalone” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.support” version=”6.1.0.qualifier”/>
    <feature id=”com.contiautomotive.ertools.transfercp” version=”6.1.0.qualifier”/>
    </features>

    </product>

  59. Tibor says:

    February 20th, 2008 at 2:14 pm (#)

    Hi Patrick,

    Might I have some more questions:
    1.) Can I somehow debug the headless build? It would be nice to put some breakpoints in the Ant files of the headless build.
    2.) I do not need to zip the result. Can I disable somehow the zipping?

    Best regards,
    Tibor

  60. Tibor says:

    February 23rd, 2008 at 8:32 pm (#)

    Hi Patrick,

    Finally we found out what was the problem.
    Starting the “product=” option with “/features/…” or “/plugins/…” in the build.properties file causes that the file name of the resulting launcher executable will be “launcher.exe” whatever was specified in the product file.
    In spite of it the headless build displayed a “BUILD SUCCESSFUL” message.
    To avoid this you should start the path with the plugin or feature id where the
    product configuration file is located.
    I already know how to disable zipping, too.
    So my problem is solved, now.

    Thanks and best regards,
    Tibor

  61. Patrick says:

    February 23rd, 2008 at 10:38 pm (#)

    Hi Tibor,

    I’m glad you got things working. Sorry I didn’t get back to you sooner. I’ve been traveling the last few days.

    — Patrick

  62. Tibor says:

    February 25th, 2008 at 8:39 pm (#)

    Hi Patrick,

    No problem. Anyway, you helped us a lot with your great sample!

    Thank you very much,
    Tibor

  63. Ramesh says:

    February 27th, 2008 at 8:17 pm (#)

    Hi Patrick,
    I looked at the example and it worked for our set of plugins for rcp . But we actually needed to build the same , starting from extracting from svn , I could figure out that in build.properties it is specified there but I dont know how to actually configure those setting.

    Can you please let me know how to proceed for that.

    Thanks & Regards,
    Ramesh

  64. Patrick says:

    February 27th, 2008 at 10:44 pm (#)

    Hi Ramesh,

    There are various ways to do this. The simplest is to simply have an ANT script perform the SVN checkout before PDE Build is started.

    To do things the Eclipse way, you’ll need to learn about the PDE Build fetch process and map files. I’d direct you the Eclipse web site for more information on that. Particularly this article:

    http://www.eclipse.org/articles/Article-PDE-Automation/automation.html

    Also, the current PDE Build fetch implementation works only with CVS, but there is an external project which provides support for SVN:

    http://sourceforge.net/projects/svn-pde-build/

    Hope this helps,

    — Patrick

  65. Joachim Kainz says:

    March 5th, 2008 at 7:59 pm (#)

    Patrick,

    Thank you very much for putting the examples together. They did not work for me right away for two reasons:

    1) mea culpa: I did not copy the RCP distribution as you suggested in the readme.txt.
    2) You are setting ${base} in build.properties to /tmp/helloworld-build-target. This sets ${baseLocation} to c:/helloworld-build-target/eclispse and means that the PDE build scripts expect to find an Eclipse install there. My eclipse is installed in /opt/eclipse, so I set my ${base} to /opt
    3) I need to fully qualify ${product} with the complete pathname
    4) mea culpa 2: I had changed ${buildDirectory} to a relative path, starting with “./”. This does not work. It must be an absolute path.

    I have republished my build.properties & build.xml at http://jolira.com/getting-started-with-pde-build/. I hope it will be useful for people.

    Best regards,

    Joachim

  66. Kyle S. Bober says:

    April 1st, 2008 at 7:22 pm (#)

    Hi Patrick,
    I am attempting to get you tutorial build to work but I am running into the following exception during execution:

    pde-build:
    [java] Executing ‘C:\Program Files\Java\jdk1.6.0_04\jre\bin\java.exe’ with arguments:
    [java] ‘-classpath’
    [java] ‘C:\Tools\Europa\plugins\org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar’
    [java] ‘org.eclipse.equinox.launcher.Main’
    [java] ‘-application’
    [java] ‘org.eclipse.ant.core.antRunner’
    [java] ‘-buildfile’
    [java] ‘C:/Tools/Europa/plugins/org.eclipse.pde.build_3.3.2.R331_v20071019/scripts/productBuild/productBuild.xml’
    [java] ‘-Dtimestamp=007′
    [java]
    [java] The ‘ characters around the executable and arguments are
    [java] not part of the command.

    BUILD FAILED
    C:\Projects\Sandbox\PDE Build\com.rcpquickstart.helloworld.build\build.xml:58: Java returned: 13
    at org.apache.tools.ant.taskdefs.Java.execute(Java.java:107)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.Main.runBuild(Main.java:698)
    at org.apache.tools.ant.Main.startAnt(Main.java:199)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

    Total time: 4 seconds

    I am running Eclipse 3.3.1.1, Ant 1.7, and Java 1.6

    Any help would be much appreciated!
    -Kyle

  67. Patrick says:

    April 1st, 2008 at 8:42 pm (#)

    Hi Kyle,

    Yeah, I was looking at the log and there doesn’t seem to be anything wrong with the build script. The failure occurs before Eclipse is loaded, so the problem must be either with the java.exe call (path issue?) or one of the parameters passed in. Have you made any changes to the build.xml file? If you have, feel free to send it on and I’ll take a look.

    Also, I’ve never run this tutorial with Java 6, but I can’t imagine that would make any difference.

    — Patrick

  68. Rudolf says:

    April 14th, 2008 at 4:01 pm (#)

    We have a similar problem like Tibor:
    the launcher name and the branding icons are not used if we are trying to build the product with the antscript (however building/exporting from the IDE works ok). Additionally your example project works corretly (sets the name/icon) both from IDE and from command line.
    I could not figure out what is the difference what breaks our project.

    I have also noticed that the generated XML build file (package.org.eclipse.pde.build.container.feature.win32.win32.x86.xml) does contain an (eclipse.brand task, however it uses variable like ${launcerName} but the property is nowhere defined) (the mentioned files generated from your example project DO contain a line). Does anyone experienced similar problems with headless builds?

    Thanks, Rudolf

  69. Patrick says:

    April 14th, 2008 at 5:32 pm (#)

    As you probably know, Tibor’s problem was caused by the way he was pathing to the product configuration file. What does your path look like?

    It’s hard to tell what’s going on without more information. If you’d like to send me your build.properties file, I’d be happy to take a look.

    — Patrick

  70. Rudolf says:

    April 15th, 2008 at 9:51 pm (#)

    Hello

    I have run into a similar problem. After a little debugging it turned out that the “product=” option’s first segment should be the ID of the plugin’s or feature’s followed by the path to the product config file relative to the plugin. Further investigation shows that you have two options: either you can use /my.product OR /full/absolute/path/to/my.product. Both version is usable. If you mistype anything in the path the build process will run without any error reporting or logging, but of curse the eclipse.brand ant task is not running and neuther the launcher executable will be renamed nor the application icons will be correctly copied.
    In my case everything looked ok, BUT my product file was inside a project which unfortunately was just a simple java project and not a plugin project (so the plugin ID was not defined). Anyway thanks for the info. It solved the issue and now our build works correctly. Readers BEWARE: double check that product= line :)

    Rudolf

  71. Marcel says:

    May 8th, 2008 at 4:09 pm (#)

    I’m having trouble finding an easy way to display the product version (major.minor.micro.qualifier) and the Build Id in the About dialog of my RCP app. I’m thinking of putting some tokens in the About text and then somehow replacing that when building.

    However I’m not sure how to do that or if there’s an easier way to do this.
    Thoughts?

  72. Patrick says:

    May 8th, 2008 at 8:43 pm (#)

    Hi Marcel,

    The standard approach is to create an about.mappings file in the plug-in that defines your product. This file contains substitution variables that you can use in the about text defined your product configuration. Here is a discussion on proper usage from the newsgroup:

    http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/msg09827.html

    Of course, you’ll still need to update the mapping file during the build, unless you want to do it manually. PDE Build provides a customTargets.xml file that allows you to hook a custom ANT target that will update the file during the build process.

    — Patrick

  73. jorge says:

    May 9th, 2008 at 3:37 pm (#)

    Hello Patrick,
    I am trying to create a pde build for my eclipse rcp application and am using your sample project as a guide to do this. I have my project building as a feature from eclipse ide without any problems. I also have not had any issues running your example and getting a packaged build from your example. When I run my build I get the following errors:
    [java] generateFeature:
    [java] [eclipse.generateFeature] Some inter-plug-in dependencies have not been satisfied.
    [java] [eclipse.generateFeature] Bundle org.eclipse.platform.source.win32.win32.x86:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.platform.source_3.3.3.r33x_r20080129-_19UEl7Ezk_gXF1kouft has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.rcp.source.win32.win32.x86:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.rcp.source_3.3.3.r33x_r20080129-8y8eE9UEUWI6qujeED0xT7bc has not been found.

    I am not sure where to go from here.

  74. Patrick says:

    May 9th, 2008 at 7:49 pm (#)

    Hi Jorge,

    The log messages you list don’t look sufficient to cause a build failure. It is common for the build to list unmet dependencies for plug-ins in your build target but that are not used by your application. In this case, the dependencies listed are for source projects and these really shouldn’t be an issue unless you have declared dependencies on them in your own plug-ins.

    If you’d like to send me the complete output generated by the build process I’d be happy to take a look. You can send it to patrick at rcpquickstart dot com.

    — Patrick

  75. Shihwei Li says:

    May 14th, 2008 at 4:15 pm (#)

    Hi Patrick,

    Thank you very much for set this site up!

    I have been fighting with rcp head-less build for a month and can’t anything out except for the “Internal Error. Content Provider not set for Site: “{0}”.

    I ran into your site and saw lot of people successfully generating the product with your example code. I tried it and it still gave me the mysterious “Internal Error. Content Provider not set for Site: “{0}”.

    From the comments, I saw few people had the same problem for different causes. I understand that it might be related to path setup, however, I don’t see anything wrong with my build.properites.

    I am using Eclipse 3.3.2 on a windows xp. The location of my Eclipse installation is at c:\Eclipse\eclipse3.3.2 and the RCP runtime/delta pack is located at c:\Eclipse\eclipseRCP.

    Here is my build.properties file, do you mind taking a look at it and tell me what is wrong. It must be something small, but I can’t get it out. Thank you very much.

    Error message I got is after the build.properites below.

    –peter

    ###############################################################################
    # Copyright (c) 2003, 2006 IBM Corporation and others.
    # All rights reserved. This program and the accompanying materials
    # are made available under the terms of the Eclipse Public License v1.0
    # which accompanies this distribution, and is available at
    # http://www.eclipse.org/legal/epl-v10.html
    #
    # Contributors:
    # IBM Corporation – initial API and implementation
    ###############################################################################
    #####################
    # Parameters describing how and where to execute the build.
    # Typical users need only update the following properties:
    # baseLocation – where things you are building against are installed
    # bootclasspath – The base jars to compile against (typicaly rt.jar)
    # configs – the list of {os, ws, arch} configurations to build.
    #
    # Of course any of the settings here can be overridden by spec’ing
    # them on the command line (e.g., -DbaseLocation=d:/eclipse

    ############# PLUG-IN VERSIONS ######################
    #
    # Look in the plugins directory of your Eclipse
    # installation to determine the version numbers
    # the correct version numbers. These version numbers
    # are used to create the correct paths when launching
    # PDE Build.
    #
    #####################################################

    # Version of org.ecilpse.pde.build
    pdeBuildPluginVersion=3.3.2.v20071019

    # Version of org.eclipse.equinox.launcher
    #equinoxLauncherPluginVersion=1.0.1.R33x_v20070828
    equinoxLauncherPluginVersion=1.0.1.R33x_v20080118

    ############# BASE LOCATION #########################
    #
    # Specify the directory of the base under which your
    # your build target is located. This directory should
    # contain the RCP Runtime Binary that you want to
    # compile against.
    #
    #####################################################

    base=c:/Eclipse/eclipseRCP

    ############# ECLIPSE LOCATION ######################
    #
    # Specify the directory of the Eclipse installation
    # that will be used to execute PDE Build.
    #
    #####################################################

    eclipseLocation=c:/Eclipse/eclipse3.3.2

    ############# PRODUCT/PACKAGING CONTROL #############
    product=/com.rcpquickstart.helloworld/helloworld.product
    runPackager=true

    #Set the name of the archive that will result from the product build.
    #archiveNamePrefix=

    # The prefix that will be used in the generated archive.
    archivePrefix=helloworld

    # The location underwhich all of the build output will be collected.
    collectingFolder=${archivePrefix}

    # The list of {os, ws, arch} configurations to build. This
    # value is a ‘&’ separated list of ‘,’ separate triples. For example,
    # configs=win32,win32,x86 & linux,motif,x86
    # By default the value is *,*,*
    #configs = *, *, *
    configs=win32, win32, x86
    ##& \
    # linux, gtk, ppc &\
    # linux, gtk, x86 & \
    # linux, gtk, x86_64 & \
    # linux, motif, x86 & \
    # solaris, motif, sparc & \
    # solaris, gtk, sparc & \
    # aix, motif, ppc & \
    # hpux, motif, PA_RISC & \
    # macosx, carbon, ppc

    # By default PDE creates one archive (result) per entry listed in the configs property.
    # Setting this value to try will cause PDE to only create one output containing all
    # artifacts for all the platforms listed in the configs property.
    #groupConfigurations=true

    #The format of the archive. By default a zip is created using antZip.
    #The list can only contain the configuration for which the desired format is different than zip.
    #archivesFormat=win32, win32, x86 – antZip& \
    # linux, gtk, ppc – antZip &\
    # linux, gtk, x86 – antZip& \
    # linux, gtk, x86_64 – antZip& \
    # linux, motif, x86 – antZip& \
    # solaris, motif, sparc – antZip& \
    # solaris, gtk, sparc – antZip& \
    # aix, motif, ppc – antZip& \
    # hpux, motif, PA_RISC – antZip& \
    # macosx, carbon, ppc – antZip

    #Set to true if you want the output to be ready for an update jar (no site.xml generated)
    #outputUpdateJars = false

    #Set to true for Jnlp generation
    #codebase should be a URL that will be used as the root of all relative URLs in the output.
    #generateJnlp=false
    #jnlp.codebase=
    #jnlp.j2se=
    #jnlp.locale=
    #jnlp.generateOfflineAllowed=true or false generate attribute in the generated features
    #jnlp.configs=${configs} #uncomment to filter the content of the generated jnlp files based on the configuration being built

    #Set to true if you want to sign jars
    #signJars=false
    #sign.alias=
    #sign.keystore=
    #sign.storepass=

    #Arguments to send to the zip executable
    zipargs=

    #Arguments to send to the tar executable
    tarargs=

    #Control the creation of a file containing the version included in each configuration – on by default
    #generateVersionsLists=false

    ############## BUILD NAMING CONTROL ################
    # The directory into which the build elements are fetched and where
    # the build takes place.
    buildDirectory=c:/temp/helloworld-build

    # Type of build. Used in naming the build output. Typically this value is
    # one of I, N, M, S, …
    buildType=I

    # ID of the build. Used in naming the build output.
    buildId=HelloWorld

    # Label for the build. Used in naming the build output
    buildLabel=${buildType}.${buildId}

    # Timestamp for the build. Used in naming the build output
    timestamp=007

    #The value to be used for the qualifier of a plugin or feature when you want to override the value computed by pde.
    #The value will only be applied to plugin or features indicating build.properties, qualifier = context
    #forceContextQualifier=

    #Enable / disable the generation of a suffix for the features that use .qualifier.
    #The generated suffix is computed according to the content of the feature
    #generateFeatureVersionSuffix=true

    ############# BASE CONTROL #############
    # Settings for the base Eclipse components and Java class libraries
    # against which you are building.
    # Base location for anything the build needs to compile against. For example,
    # in most RCP app or a plug-in, the baseLocation should be the location of a previously
    # installed Eclipse against which the application or plug-in code will be compiled and the RCP delta pack.

    baseLocation=${base}/eclipse
    #Os/Ws/Arch/nl of the eclipse specified by baseLocation
    baseos=win32
    basews=win32
    basearch=x86

    #this property indicates whether you want the set of plug-ins and features to be considered during the build to be limited to the ones reachable from the features / plugins being built
    filteredDependencyCheck=false

    #pluginPath is a list of locations in which to find plugins and features. This list is separated by the platform file separator (; or :)
    #a location is one of:
    #- the location of the jar or folder that is the plugin or feature : /path/to/foo.jar or /path/to/foo
    #- a directory that contains a /plugins or /features subdirectory
    #- the location of a feature.xml, or for 2.1 style plugins, the plugin.xml or fragment.xml
    #pluginPath=

    skipBase=true
    eclipseURL=
    eclipseBuildId=
    eclipseBaseURL=${eclipseURL}/eclipse-platform-${eclipseBuildId}-win32.zip

    ############# MAP FILE CONTROL ################
    # This section defines CVS tags to use when fetching the map files from the repository.
    # If you want to fetch the map file from repository / location, change the getMapFiles target in the customTargets.xml

    skipMaps=true
    mapsRepo=:pserver:anonymous@example.com/path/to/repo
    mapsRoot=path/to/maps
    mapsCheckoutTag=HEAD

    #tagMaps=true
    mapsTagTag=v${buildId}

    ############ REPOSITORY CONTROL ###############
    # This section defines properties parameterizing the repositories where plugins, fragments
    # bundles and features are being obtained from.

    # The tags to use when fetching elements to build.
    # By default thebuilder will use whatever is in the maps.
    # This value takes the form of a comma separated list of repository identifier (like used in the map files) and the
    # overriding value
    # For example fetchTag=CVS=HEAD, SVN=v20050101
    # fetchTag=HEAD
    skipFetch=true

    ############# JAVA COMPILER OPTIONS ##############
    # The location of the Java jars to compile against. Typically the rt.jar for your JDK/JRE
    #bootclasspath=${java.home}/lib/rt.jar

    # specific JRE locations to compile against. These values are used to compile bundles specifying a
    # Bundle-RequiredExecutionEnvironment. Uncomment and set values for environments that you support
    #CDC-1.0/Foundation-1.0= /path/to/rt.jar
    #CDC-1.1/Foundation-1.1=
    #OSGi/Minimum-1.0=
    #OSGi/Minimum-1.1=
    #JRE-1.1=
    #J2SE-1.2=
    #J2SE-1.3=
    #J2SE-1.4=
    #J2SE-1.5=
    #JavaSE-1.6=
    #PersonalJava-1.1=
    #PersonalJava-1.2=
    #CDC-1.0/PersonalBasis-1.0=
    #CDC-1.0/PersonalJava-1.0=
    #CDC-1.1/PersonalBasis-1.1=
    #CDC-1.1/PersonalJava-1.1=

    # Specify the output format of the compiler log when eclipse jdt is used
    logExtension=.log

    # Whether or not to include debug info in the output jars
    javacDebugInfo=false

    # Whether or not to fail the build if there are compiler errors
    javacFailOnError=true

    # Enable or disable verbose mode of the compiler
    javacVerbose=true

    # Extra arguments for the compiler. These are specific to the java compiler being used.
    #compilerArg=

    # Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
    #javacSource=1.3

    # Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
    #javacTarget=1.1

    Here is the error message:

    Buildfile: C:\Documents and Settings\sli\workspace\com.rcpquickstart.helloworld.build\build.xml
    clean:
    [delete] Deleting directory c:\temp\helloworld-build
    init:
    [mkdir] Created dir: c:\temp\helloworld-build
    [mkdir] Created dir: c:\temp\helloworld-build\plugins
    [mkdir] Created dir: c:\temp\helloworld-build\features
    [copy] Copying 28 files to c:\temp\helloworld-build\plugins
    [copy] Copying 3 files to c:\temp\helloworld-build\features
    pde-build:
    [java] Buildfile: c:/Eclipse/eclipse3.3.2/plugins/org.eclipse.pde.build_3.3.2.v20071019/scripts/productBuild/productBuild.xml
    [java] main:
    [java] preBuild:
    [java] preSetup:
    [java] checkLocalMaps:
    [java] getMapFiles:
    [java] [concat] No existing resources and no nested text, doing nothing
    [java] postSetup:
    [java] checkLocalBase:
    [java] getBaseComponents:
    [java] generateFeature:
    [java] fetch:
    [java] generateFeature:
    [java] BUILD FAILED
    [java] c:\Eclipse\eclipse3.3.2\plugins\org.eclipse.pde.build_3.3.2.v20071019\scripts\productBuild\productBuild.xml:24: The following error occurred while executing this line:
    [java] c:\Eclipse\eclipse3.3.2\plugins\org.eclipse.pde.build_3.3.2.v20071019\scripts\productBuild\productBuild.xml:51: Internal Error. Content Provider not set for Site: “{0}”.
    [java] Total time: 0 seconds

    BUILD FAILED
    C:\Documents and Settings\sli\workspace\com.rcpquickstart.helloworld.build\build.xml:58: Java returned: 13

    Total time: 8 seconds

  76. Shihwei Li says:

    May 14th, 2008 at 5:57 pm (#)

    Hi All,

    I figured out why I got error “Internal Error. Content Provider not set for Site: “{0}”” I post my findings here for reference.

    It is to do with the path on base and baseLocation

    Here is my environment setting:
    c:\Eclipse\eclipse3.3.2_RCP is a directory containing RCP runtime and RCP delta pack.

    Here is my original build.properties:
    base=c:/Eclipse/eclipseRCP
    baseLocation=${base}/eclipse

    After change it to the followings, it works for me.
    base=c:/Eclipse
    baseLocation=${base}/eclipseRCP

    My mistake, which has been bothering me for a month, was to think baseLocation=${base}/eclipse points to the executable ‘ecipse.exe’. It turns out that baseLocation points to the ‘eclipse’ directory. In my case, I rename the eclipse directory to ‘eclipseRCP’.

    It is also good to know that forwarding slash ‘/’, not ‘\’, should be used in build.properties for specifying path since the property is a java- and ant- based property, so it follows java convention. If you use ‘\’, you got the same ‘{0}’ error for different cause.

    –peter

  77. Shihwei Li says:

    May 14th, 2008 at 6:04 pm (#)

    Partick,

    Thank you again for this wonderful example and the site for discussions. Your example is my first one that can be built head-lessly.

    Now I am more confident to go back to fight with my own RCP project to automate the build.

    –peter

  78. Patrick says:

    May 14th, 2008 at 10:03 pm (#)

    Hi Peter,

    I’m glad you got things working and thanks for posting your experiences. I’m sure it will help others trying to set up automated builds.

    — Patrick

  79. Sébastien says:

    May 20th, 2008 at 2:24 pm (#)

    Patrick,
    Thx for these tutorial, it helps me a lot. But i have 2 questions :
    - If I want a full automate build process,(so not assuming your plugins are build and copied in the build dir), is the right that I must use and customize the generated ant script from the plugin.xml ?
    - I must deploy multiplatform, but in the latest delta pack for eclipse 3.3.2, I’m missing the runtimes for HP-UX , any idea ? Can I use runtimes from a previous eclipse release (3.3.2 M4 or something like that) ?

    thx again,
    Seb

  80. Patrick says:

    May 20th, 2008 at 9:00 pm (#)

    Hi Sébastien,

    If you’d like to customize the build process you should modify the ant script in the build project. You can modify it to download from cvs/svn whatever plug-in projects you would like to build and then launch the PDE Build process. You should never need to modify the ant scripts generated by PDE Build itself.

    As for the HP-UX stuff, it looks like you got your answer on the RCP newsgroup. I have no extra info to offer.

    — Patrick

  81. Sébastien says:

    May 21st, 2008 at 9:36 am (#)

    Ok,
    indeed the mailing list finally answered faster than I though ;-)
    One more question : the build.xml generated when doing plugin.xml>right click>generated ant script , can this process be done automaticly ?
    Suppose there is new plugin/jar in my project, my build machine has to generate again the build.xml to include these to the classpath for instance.

  82. Patrick says:

    May 21st, 2008 at 5:38 pm (#)

    Hi Sébastien,

    Yes, the build.xml files for each plug-in are generated automatically by the PDE Build process. In general, you shouldn’t have to worry about these files. Is there some specific problem you’re trying to solve?

    — Patrick

  83. Sébastien says:

    May 22nd, 2008 at 6:42 am (#)

    You’re right ,
    I though I had to take care of jaring the plugins before the PDE build but it does ! Waow that make my build process a bit more cleaner ;-) .
    New question :
    Is it possible to not archive ? I’ve a custom script which runs after the pde build and that expects a directory (as the temp folder during the pde build). I’ve search in de build.properties but didn’t find any option.

  84. Patrick says:

    May 22nd, 2008 at 7:25 pm (#)

    Hi Sébastien,

    You can output your product as a folder by modifying the archivesFormat property in the build.properties file. Check out this link for more information:

    http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.pde.doc.user/guide/tasks/pde_controlling_output.htm

    — Patrick

  85. Fred Bulah says:

    May 23rd, 2008 at 8:31 pm (#)

    Hello Patrick,
    Much thanks for the example. It seems easy to follow. However, I have not been able to get it to work. I am running Eclipse 3.3 in a default configuration, copied in your examples. It nearly runs successfully to completion but fails at the very end with (tail of the console log):

    [java] all.children:
    [java] [zip] Building zip: c:\helloworld-build\features\org.eclipse.pde.build.container.feature\org.eclipse.pde.build.container.feature_1.0.0.log.zip
    [java] [delete] Deleting directory c:\helloworld-build\features\org.eclipse.pde.build.container.feature\feature.temp.folder
    [java] [unzip] Expanding: c:\helloworld-build\features\org.eclipse.pde.build.container.feature\org.eclipse.pde.build.container.feature_1.0.0.log.zip into c:\helloworld-build\I.HelloWorld\compilelogs
    [java] BUILD SUCCESSFUL
    [java] BUILD SUCCESSFUL
    [java] Total time: 5 seconds
    test:
    [unzip] Expanding: c:\helloworld-build\I.HelloWorld\HelloWorld-win32.win32.x86.zip into c:\helloworld-build\test
    [copy] Copying 2439 files to c:\helloworld-build\test\helloworld

    BUILD FAILED
    C:\pdebuild-and-test-example\com.rcpquickstart.helloworld.build\build.xml:83: Failed to copy c:\eclipse_3.3\configuration\org.eclipse.equinox.app\.manager\.tmp43601.instance to c:\helloworld-build\test\helloworld\configuration\org.eclipse.equinox.app\.manager\.tmp43601.instance due to The process cannot access the file because another process has locked a portion of the file

    Total time: 9 seconds

    It appear that it is attempting to copy a temporary file that is locked by Eclipse. I edited the line 83 in C:\pdebuild-and-test-example\com.rcpquickstart.helloworld.build\build.xml

    to exclude the temporary files:

    I re-ran but still get the same error. It appears to be ignoring the exclude directives. I feel like I am getting close, but no cigar as yet. Any ideas?

  86. Patrick says:

    May 27th, 2008 at 5:46 pm (#)

    Hi Fred,

    Sorry about the delay in getting back to you. My daughter graduated from high school on Friday and I had a busy weekend.

    As for your issue, first I just want to clarify that the script you’re running is from a different post:

    http://rcpquickstart.wordpress.com/2007/08/06/running-automated-tests-with-pde-build/

    I just don’t want anyone looking at this later to get confused! In any case, is it possible that you have Eclipse open at the same time you’re running the script? If so, you’ll want to close it down or a better solution is to download a clean copy of the Eclipse SDK and point your eclipseLocation variable to that.

    If this isn’t the problem, let me know and we can dig into it further.

    — Patrick

  87. David Pérez says:

    May 28th, 2008 at 11:02 am (#)

    Thanks Patrick for your usefull and simple example.
    It works ok, but some of my plugins have optional dependencies.

    The dependencies are included in the target platform, but aren’t included in my feature, as they are only needed for compiling.

    Product export wizard compiles ok, but the Ant script complains because it cannot find the classes inside the optional dependencies.

    Any tip will be greatly appreciated in this wild world of RCP building.

  88. Patrick says:

    May 28th, 2008 at 1:21 pm (#)

    Hi David,

    Does the Ant script fail because of the dependencies, or do you just get warnings? It’s common for the build process to list missing dependencies and then continue on.

    If the process is failing, I’d be happy to look at the log to see what’s going on.

    — Patrick

  89. David Pérez says:

    May 28th, 2008 at 2:48 pm (#)

    Just a tip:

    I use the very handy predefined Ant variable that PDE makes available:

    ${eclipse.pdebuild.home}

    In this way I save specifying the Eclipse location

  90. David Pérez says:

    May 28th, 2008 at 2:59 pm (#)

    Thanks Patrick for your quick answer and williness to help.

    Here is the Ant output to my previous problem. Sorry is a little long, I have tried to shorten a little.
    Some of the messages are just warnings and others error. :-(
    The errors are due to the dependencies.

    pde-build:
    [java] Buildfile: /C:/eclipse/plugins/org.eclipse.pde.build_3.3.2.v20071019/scripts//productBuild/productBuild.xml
    [java] main:
    [java] preBuild:
    [java] preSetup:
    [java] checkLocalMaps:
    [java] getMapFiles:
    [java] [concat] No existing resources and no nested text, doing nothing
    [java] postSetup:
    [java] checkLocalBase:
    [java] getBaseComponents:
    [java] generateFeature:
    [java] fetch:
    [java] generateFeature:
    [java] [eclipse.generateFeature] Some inter-plug-in dependencies have not been satisfied.
    [java] [eclipse.generateFeature] Bundle com.springsource.org.apache.velocity:
    [java] [eclipse.generateFeature] Unsatisfied import package com.werken.xpath_[0.9.4,1.0.0).
    [java] [eclipse.generateFeature] Unsatisfied import package javax.servlet_[2.5.0,3.0.0).
    [java] [eclipse.generateFeature] Unsatisfied import package javax.servlet.http_[2.5.0,3.0.0).
    [java] [eclipse.generateFeature] Unsatisfied import package org.apache.log_[1.0.1,1.0.1].
    [java] [eclipse.generateFeature] Unsatisfied import package org.jdom.output_[1.0.0,2.0.0).
    [java] [eclipse.generateFeature] Bundle com.springsource.org.apache.velocity.tools.view:
    [java] [eclipse.generateFeature] Unsatisfied import package javax.servlet_[2.5.0,3.0.0).
    [java] [eclipse.generateFeature] Unsatisfied import package javax.servlet.http_[2.5.0,3.0.0).
    [java] [eclipse.generateFeature] Unsatisfied import package org.apache.commons.beanutils_[1.7.0,2.0.0).
    [java] [eclipse.generateFeature] Bundle common.nl_es:
    [java] [eclipse.generateFeature] Host plug-in common_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.boot.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.boot_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.expressions.tests.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.expressions.tests_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.filebuffers.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.filebuffers_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.filebuffers.tests.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.filebuffers.tests_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.filesystem.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.filesystem_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.net.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.net_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.resources.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.resources_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.runtime.compatibility.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.runtime.compatibility_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.variables.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.variables_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.cm.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.cm_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.device.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.device_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.ds.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.ds_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.event.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.event_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.http.jetty.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.http.jetty_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.http.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.http_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.http.registry.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.http.registry_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.http.servlet.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.http.servlet_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.http.servletbridge.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.http.servletbridge_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.log.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.log_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.metatype.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.metatype_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.servletbridge.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.servletbridge_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.useradmin.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.useradmin_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.wireadmin.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.wireadmin_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.help.appserver.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.help.appserver_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.help.base.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.help.base_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.help.ui.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.help.ui_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.help.webapp.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.help.webapp_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.jface.text.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.jface.text_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.osgi.services.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.osgi.services_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.browser.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.browser_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.intro.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.intro_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.intro.universal.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.intro.universal_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.navigator.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.navigator_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.navigator.resources.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.navigator.resources_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.net.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.net_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.presentations.r21.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.presentations.r21_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.views.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.views_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.views.properties.tabbed.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.views.properties.tabbed_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.workbench.texteditor.nl_es:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.workbench.texteditor_[0.0.0,9.9.9) has not been found.
    [java] generate:
    [java] preGenerate:
    [java] allElements:
    [java] allElementsDelegator:
    [java] init:
    [java] generateScript:
    [java] [eclipse.buildScript] Some inter-plug-in dependencies have not been satisfied.
    [java] [eclipse.buildScript] Bundle com.springsource.org.apache.velocity:
    [java] [eclipse.buildScript] Unsatisfied import package com.werken.xpath_[0.9.4,1.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package javax.servlet_[2.5.0,3.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package javax.servlet.http_[2.5.0,3.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.log_[1.0.1,1.0.1].
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.log.format_[1.0.1,1.0.1].
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.log.output.io_[1.0.1,1.0.1].
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.oro.text.perl_[2.0.8,3.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.tools.ant_[1.7.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.tools.ant.taskdefs_[1.7.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.jdom_[1.0.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.jdom.input_[1.0.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.jdom.output_[1.0.0,2.0.0).
    [java] [eclipse.buildScript] Bundle com.springsource.org.apache.velocity.tools.view:
    [java] [eclipse.buildScript] Unsatisfied import package javax.servlet_[2.5.0,3.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package javax.servlet.http_[2.5.0,3.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.commons.beanutils_[1.7.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.commons.digester_[1.8.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.commons.logging_[1.1.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity.app_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity.context_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity.exception_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity.io_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity.runtime_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity.runtime.log_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity.runtime.resource_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity.runtime.resource.loader_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Unsatisfied import package org.apache.velocity.util_[1.5.0,2.0.0).
    [java] [eclipse.buildScript] Bundle common.nl_es:
    [java] [eclipse.buildScript] Host plug-in common_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.boot.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.boot_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.expressions.tests.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.expressions.tests_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.filebuffers.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.filebuffers_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.filebuffers.tests.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.filebuffers.tests_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.filesystem.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.filesystem_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.net.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.net_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.resources.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.resources_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.runtime.compatibility.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.runtime.compatibility_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.core.variables.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.core.variables_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.cm.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.cm_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.device.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.device_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.ds.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.ds_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.event.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.event_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.http.jetty.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.http.jetty_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.http.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.http_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.http.registry.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.http.registry_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.http.servlet.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.http.servlet_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.http.servletbridge.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.http.servletbridge_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.log.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.log_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.metatype.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.metatype_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.servletbridge.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.servletbridge_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.useradmin.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.useradmin_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.wireadmin.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.equinox.wireadmin_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.help.appserver.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.help.appserver_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.help.base.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.help.base_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.help.ui.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.help.ui_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.help.webapp.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.help.webapp_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.jface.text.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.jface.text_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.osgi.services.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.osgi.services_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.browser.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.browser_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.intro.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.intro_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.intro.universal.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.intro.universal_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.navigator.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.navigator_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.navigator.resources.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.navigator.resources_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.net.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.net_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.presentations.r21.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.presentations.r21_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.views.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.views_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.views.properties.tabbed.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.views.properties.tabbed_[0.0.0,9.9.9) has not been found.
    [java] [eclipse.buildScript] Bundle org.eclipse.ui.workbench.texteditor.nl_es:
    [java] [eclipse.buildScript] Host plug-in org.eclipse.ui.workbench.texteditor_[0.0.0,9.9.9) has not been found.
    [java] postGenerate:
    [java] clean:
    [java] allElements:
    [java] allElementsDelegator:
    [java] init:
    [java] cleanElement:
    [java] [echo] c:/develop/polaris/deploy2/features/org.eclipse.pde.build.container.feature
    [java] init:
    [java] clean:
    [java] init:
    [java] all.features:
    [java] init:
    [java] clean:
    [java] init:
    [java] all.features:
    [java] init:
    [java] clean:
    [java] init:
    [java] all.features:
    [java] all.plugins:
    [java] update.feature:
    [java] all.children:
    [java] init:
    [java] clean:
    [java] init:
    [java] all.features:
    [java] all.plugins:
    [java] update.feature:
    [java] all.children:
    [java] all.plugins:
    [java] properties:
    [java] init:
    [java] clean:
    [java] [delete] Deleting directory c:\develop\polaris\deploy2\plugins\com.jobisjob.log\@dot
    [java] [delete] Deleting directory c:\develop\polaris\deploy2\plugins\com.jobisjob.log\temp.folder
    [java] properties:
    [java] init:
    [java] clean:
    [java] [delete] Deleting directory c:\develop\polaris\deploy2\plugins\JiJLib\temp.folder
    [java] properties:
    [java] init:
    [java] clean:
    [java] properties:
    [java] init:
    [java] clean:
    [java] update.feature:
    [java] all.children:
    [java] all.plugins:
    [java] update.feature:
    [java] all.children:
    [java] process:
    [java] preProcess:
    [java] allElements:
    [java] allElementsDelegator:
    [java] init:
    [java] processElement:
    [java] init:
    [java] build.jars:
    [java] init:
    [java] all.features:
    [java] init:
    [java] build.jars:
    [java] init:
    [java] all.features:
    [java] init:
    [java] build.jars:
    [java] init:
    [java] all.features:
    [java] all.plugins:
    [java] update.feature:
    [java] all.children:
    [java] init:
    [java] build.jars:
    [java] init:
    [java] all.features:
    [java] all.plugins:
    [java] update.feature:
    [java] all.children:
    [java] all.plugins:
    [java] properties:
    [java] init:
    [java] build.jars:
    [java] properties:
    [java] init:
    [java] @dot:
    [java] [mkdir] Created dir: c:\develop\polaris\deploy2\plugins\com.jobisjob.log\temp.folder\@dot.bin
    [java] [javac] Compiling 8 source files to c:\develop\polaris\deploy2\plugins\com.jobisjob.log\temp.folder\@dot.bin
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\jobisjob\library\log\LevelPatternLayout.java - #1/8]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\jobisjob\library\log\LevelPatternParser.java - #2/8]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\LogPlugin.java - #3/8]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\LoggingPlugin.java - #4/8]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginFileAppender.java - #5/8]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogAppender.java - #6/8]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogListener.java - #7/8]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogManager.java - #8/8]
    [java] [javac] [reading org/apache/log4j/PatternLayout.class]
    [java] [javac] [reading org/apache/log4j/Layout.class]
    [java] [javac] [reading java/lang/Object.class]
    [java] [javac] [reading org/apache/log4j/spi/OptionHandler.class]
    [java] [javac] [reading org/apache/log4j/helpers/PatternParser.class]
    [java] [javac] [reading org/apache/log4j/helpers/PatternConverter.class]
    [java] [javac] [reading org/eclipse/ui/plugin/AbstractUIPlugin.class]
    [java] [javac] [reading org/eclipse/core/runtime/Plugin.class]
    [java] [javac] [reading org/osgi/framework/BundleActivator.class]
    [java] [javac] [reading org/apache/log4j/RollingFileAppender.class]
    [java] [javac] [reading org/apache/log4j/FileAppender.class]
    [java] [javac] [reading org/apache/log4j/WriterAppender.class]
    [java] [javac] [reading org/apache/log4j/AppenderSkeleton.class]
    [java] [javac] [reading org/apache/log4j/Appender.class]
    [java] [javac] [reading org/eclipse/core/runtime/ILogListener.class]
    [java] [javac] [reading java/util/EventListener.class]
    [java] [javac] [reading org/apache/log4j/spi/HierarchyEventListener.class]
    [java] [javac] [reading java/lang/Override.class]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\jobisjob\library\log\LevelPatternLayout.java - #1/8]
    [java] [javac] [reading java/util/StringTokenizer.class]
    [java] [javac] [reading java/lang/String.class]
    [java] [javac] [reading org/apache/log4j/spi/LoggingEvent.class]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternLayout.class - #1]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\jobisjob\library\log\LevelPatternLayout.java - #1/8]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\jobisjob\library\log\LevelPatternParser.java - #2/8]
    [java] [javac] [reading java/sql/SQLException.class]
    [java] [javac] [reading org/apache/log4j/NDC.class]
    [java] [javac] [reading java/lang/StringBuffer.class]
    [java] [javac] [reading java/lang/Throwable.class]
    [java] [javac] [reading org/apache/log4j/spi/ThrowableInformation.class]
    [java] [javac] [reading java/lang/Exception.class]
    [java] [javac] [reading org/apache/log4j/Level.class]
    [java] [javac] [reading org/apache/log4j/Priority.class]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternParser$2.class - #2]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternParser.class - #3]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternParser$1.class - #4]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternParser$StackTraceConverter.class - #5]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\jobisjob\library\log\LevelPatternParser.java - #2/8]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\LogPlugin.java - #3/8]
    [java] [javac] [reading org/osgi/framework/BundleContext.class]
    [java] [javac] [reading org/eclipse/core/runtime/CoreException.class]
    [java] [javac] [writing com\tools\logging\LogPlugin.class - #6]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\LogPlugin.java - #3/8]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\LoggingPlugin.java - #4/8]
    [java] [javac] [reading java/util/ArrayList.class]
    [java] [javac] [reading java/util/Collection.class]
    [java] [javac] [reading java/util/Iterator.class]
    [java] [javac] [reading java/util/AbstractList.class]
    [java] [javac] [reading java/util/AbstractCollection.class]
    [java] [javac] [writing com\tools\logging\LoggingPlugin.class - #7]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\LoggingPlugin.java - #4/8]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginFileAppender.java - #5/8]
    [java] [javac] [reading java/io/IOException.class]
    [java] [javac] [reading org/eclipse/core/runtime/IPath.class]
    [java] [javac] [reading java/io/Writer.class]
    [java] [javac] [reading org/apache/log4j/spi/ErrorHandler.class]
    [java] [javac] [reading java/lang/Character.class]
    [java] [javac] [writing com\tools\logging\PluginFileAppender.class - #8]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginFileAppender.java - #5/8]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogAppender.java - #6/8]
    [java] [javac] [reading org/eclipse/core/runtime/ILog.class]
    [java] [javac] [reading org/eclipse/core/runtime/Status.class]
    [java] [javac] [reading org/apache/log4j/spi/ErrorCode.class]
    [java] [javac] [reading org/apache/log4j/spi/Filter.class]
    [java] [javac] [reading org/eclipse/core/runtime/IStatus.class]
    [java] [javac] [reading java/io/Serializable.class]
    [java] [javac] [reading org/osgi/framework/Bundle.class]
    [java] [javac] [reading java/lang/System.class]
    [java] [javac] [reading java/io/PrintStream.class]
    [java] [javac] [writing com\tools\logging\PluginLogAppender.class - #9]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogAppender.java - #6/8]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogListener.java - #7/8]
    [java] [javac] [reading org/apache/log4j/Logger.class]
    [java] [javac] [reading java/lang/CharSequence.class]
    [java] [javac] [reading org/apache/log4j/Category.class]
    [java] [javac] [writing com\tools\logging\PluginLogListener.class - #10]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogListener.java - #7/8]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogManager.java - #8/8]
    [java] [javac] [reading java/io/InputStream.class]
    [java] [javac] [reading java/net/URL.class]
    [java] [javac] [reading java/util/Enumeration.class]
    [java] [javac] [reading java/util/HashMap.class]
    [java] [javac] [reading java/util/Properties.class]
    [java] [javac] [reading org/apache/log4j/Hierarchy.class]
    [java] [javac] [reading org/apache/log4j/LogManager.class]
    [java] [javac] [reading org/apache/log4j/PropertyConfigurator.class]
    [java] [javac] [reading org/apache/log4j/spi/LoggerFactory.class]
    [java] [javac] [reading org/apache/log4j/spi/RootLogger.class]
    [java] [javac] [reading java/util/Map.class]
    [java] [javac] [reading java/io/Reader.class]
    [java] [javac] [reading java/lang/IllegalStateException.class]
    [java] [javac] [reading org/apache/log4j/spi/AppenderAttachable.class]
    [java] [javac] [reading org/apache/log4j/spi/LoggerRepository.class]
    [java] [javac] [reading java/util/Hashtable.class]
    [java] [javac] [reading java/util/Dictionary.class]
    [java] [javac] [reading org/apache/log4j/spi/RendererSupport.class]
    [java] [javac] [reading java/util/AbstractMap.class]
    [java] [javac] [reading java/util/Set.class]
    [java] [javac] [reading java/lang/RuntimeException.class]
    [java] [javac] [writing com\tools\logging\PluginLogManager.class - #11]
    [java] [javac] [writing com\tools\logging\PluginLogManager$PluginEventListener.class - #12]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogManager.java - #8/8]
    [java] [javac] [8 units compiled]
    [java] [javac] [12 .class files generated]
    [java] [javac] ———-
    [java] [javac] 1. WARNING in c:\develop\polaris\deploy2\plugins\com.jobisjob.log\src\com\tools\logging\PluginLogManager.java (at line 256)
    [java] [javac] public Enumeration getCurrentLoggers() {
    [java] [javac] ^^^^^^^^^^^
    [java] [javac] Enumeration is a raw type. References to generic type Enumeration should be parameterized
    [java] [javac] ———-
    [java] [javac] 1 problem (1 warning)
    [java] [copy] Copying 12 files to c:\develop\polaris\deploy2\plugins\com.jobisjob.log\@dot
    [java] [delete] Deleting directory c:\develop\polaris\deploy2\plugins\com.jobisjob.log\temp.folder\@dot.bin
    [java] properties:
    [java] init:
    [java] build.jars:
    [java] properties:
    [java] init:
    [java] @dot:
    [java] [mkdir] Created dir: c:\develop\polaris\deploy2\plugins\JiJLib\temp.folder\@dot.bin
    [java] [javac] Compiling 26 source files to c:\develop\polaris\deploy2\plugins\JiJLib\temp.folder\@dot.bin
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\array\ArrayUtils.java - #1/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\array\test\TestArrayUtils.java - #2/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\Base32.java - #3/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\SecurityManager.java - #4/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\exceptions\SecurityManagerException.java - #5/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\test\TestSecurityManager.java - #6/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\db\DatabaseFactory.java - #7/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\db\TWebDatasourceFactory.java - #8/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\db\exceptions\DBException.java - #9/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\error\ErrorUtils.java - #10/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\file\FileUtils.java - #11/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\io\BasePath.java - #12/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\log\LevelPatternLayout.java - #13/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\log\LevelPatternParser.java - #14/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\log\TLogFile.java - #15/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java - #16/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\exceptions\MailException.java - #17/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\test\TestMail.java - #18/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\test\pojo\TestPojo.java - #19/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\string\CharArraySet.java - #20/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\string\StringUtils.java - #21/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\string\test\TestStringUtils.java - #22/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\test\All.java - #23/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\uuid\UUIDGenerator.java - #24/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\web\filter\DataBasePoolConnectionFilter.java - #25/26]
    [java] [javac] [parsing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\web\listener\DBCPoolingListener.java - #26/26]
    [java] [javac] [reading org/junit/Assert.class]
    [java] [javac] [reading java/lang/Object.class]
    [java] [javac] [reading java/lang/Exception.class]
    [java] [javac] [reading java/lang/Throwable.class]
    [java] [javac] [reading java/io/Serializable.class]
    [java] [javac] [reading org/apache/log4j/PatternLayout.class]
    [java] [javac] [reading org/apache/log4j/Layout.class]
    [java] [javac] [reading org/apache/log4j/spi/OptionHandler.class]
    [java] [javac] [reading org/apache/log4j/helpers/PatternParser.class]
    [java] [javac] [reading org/apache/log4j/helpers/PatternConverter.class]
    [java] [javac] [reading java/util/AbstractSet.class]
    [java] [javac] [reading java/util/AbstractCollection.class]
    [java] [javac] [reading java/util/Collection.class]
    [java] [javac] [reading java/lang/Iterable.class]
    [java] [javac] [reading java/util/Set.class]
    [java] [javac] [reading java/util/Iterator.class]
    [java] [javac] [reading javax/servlet/Filter.class]
    [java] [javac] [reading javax/servlet/ServletContextListener.class]
    [java] [javac] [reading java/util/EventListener.class]
    [java] [javac] [reading java/lang/SuppressWarnings.class]
    [java] [javac] [reading java/lang/String.class]
    [java] [javac] [reading org/junit/BeforeClass.class]
    [java] [javac] [reading org/junit/AfterClass.class]
    [java] [javac] [reading org/junit/Before.class]
    [java] [javac] [reading org/junit/After.class]
    [java] [javac] [reading org/junit/Test.class]
    [java] [javac] [reading org/junit/Test$None.class]
    [java] [javac] [reading java/lang/Class.class]
    [java] [javac] [reading java/lang/Deprecated.class]
    [java] [javac] [reading org/junit/runner/RunWith.class]
    [java] [javac] [reading org/junit/runner/Runner.class]
    [java] [javac] [reading org/junit/runners/Suite.class]
    [java] [javac] [reading org/junit/internal/runners/TestClassRunner.class]
    [java] [javac] [reading org/junit/runners/Suite$SuiteClasses.class]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\array\ArrayUtils.java - #1/26]
    [java] [javac] [reading java/lang/Comparable.class]
    [java] [javac] [writing com\jobisjob\library\array\ArrayUtils.class - #1]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\array\ArrayUtils.java - #1/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\array\test\TestArrayUtils.java - #2/26]
    [java] [javac] [reading java/lang/CharSequence.class]
    [java] [javac] [writing com\jobisjob\library\array\test\TestArrayUtils.class - #2]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\array\test\TestArrayUtils.java - #2/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\Base32.java - #3/26]
    [java] [javac] [reading java/lang/StringBuffer.class]
    [java] [javac] [writing com\jobisjob\library\crypt\Base32.class - #3]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\Base32.java - #3/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\SecurityManager.java - #4/26]
    [java] [javac] [reading java/io/IOException.class]
    [java] [javac] [reading java/io/UnsupportedEncodingException.class]
    [java] [javac] [reading java/security/InvalidKeyException.class]
    [java] [javac] [reading java/security/NoSuchAlgorithmException.class]
    [java] [javac] [reading javax/crypto/BadPaddingException.class]
    [java] [javac] [reading javax/crypto/Cipher.class]
    [java] [javac] [reading javax/crypto/IllegalBlockSizeException.class]
    [java] [javac] [reading javax/crypto/NoSuchPaddingException.class]
    [java] [javac] [reading javax/crypto/spec/SecretKeySpec.class]
    [java] [javac] [reading sun/misc/BASE64Decoder.class]
    [java] [javac] [reading sun/misc/BASE64Encoder.class]
    [java] [javac] [reading java/security/GeneralSecurityException.class]
    [java] [javac] [reading java/security/Key.class]
    [java] [javac] [reading java/security/cert/Certificate.class]
    [java] [javac] [reading java/security/SecureRandom.class]
    [java] [javac] [reading java/security/spec/AlgorithmParameterSpec.class]
    [java] [javac] [reading java/security/InvalidAlgorithmParameterException.class]
    [java] [javac] [reading java/security/AlgorithmParameters.class]
    [java] [javac] [reading javax/crypto/SecretKey.class]
    [java] [javac] [reading java/security/spec/KeySpec.class]
    [java] [javac] [reading java/security/KeyException.class]
    [java] [javac] [reading sun/misc/CharacterEncoder.class]
    [java] [javac] [reading sun/misc/CharacterDecoder.class]
    [java] [javac] [writing com\jobisjob\library\crypt\SecurityManager.class - #4]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\SecurityManager.java - #4/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\exceptions\SecurityManagerException.java - #5/26]
    [java] [javac] [reading java/io/ObjectOutputStream.class]
    [java] [javac] [reading java/io/ObjectInputStream.class]
    [java] [javac] [writing com\jobisjob\library\crypt\exceptions\SecurityManagerException.class - #5]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\exceptions\SecurityManagerException.java - #5/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\test\TestSecurityManager.java - #6/26]
    [java] [javac] [reading java/lang/System.class]
    [java] [javac] [reading java/io/PrintStream.class]
    [java] [javac] [writing com\jobisjob\library\crypt\test\TestSecurityManager.class - #6]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\crypt\test\TestSecurityManager.java - #6/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\db\DatabaseFactory.java - #7/26]
    [java] [javac] [reading java/sql/Connection.class]
    [java] [javac] [reading java/sql/SQLException.class]
    [java] [javac] [reading java/util/Properties.class]
    [java] [javac] [reading org/apache/commons/dbcp/ConnectionFactory.class]
    [java] [javac] [reading org/apache/commons/dbcp/DriverManagerConnectionFactory.class]
    [java] [javac] [reading org/apache/commons/dbcp/PoolableConnectionFactory.class]
    [java] [javac] [reading org/apache/commons/dbcp/PoolingDataSource.class]
    [java] [javac] [reading org/apache/commons/pool/KeyedObjectPoolFactory.class]
    [java] [javac] [reading org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.class]
    [java] [javac] [reading org/apache/commons/pool/impl/GenericObjectPool.class]
    [java] [javac] [reading java/lang/ClassNotFoundException.class]
    [java] [javac] [reading java/lang/ClassLoader.class]
    [java] [javac] [reading org/apache/commons/pool/PoolableObjectFactory.class]
    [java] [javac] [reading org/apache/commons/pool/impl/GenericObjectPool$Config.class]
    [java] [javac] [reading org/apache/commons/pool/KeyedPoolableObjectFactory.class]
    [java] [javac] [reading org/apache/commons/pool/impl/GenericKeyedObjectPool$Config.class]
    [java] [javac] [reading org/apache/commons/pool/impl/GenericKeyedObjectPool.class]
    [java] [javac] [reading org/apache/commons/pool/ObjectPool.class]
    [java] [javac] [reading org/apache/commons/dbcp/AbandonedConfig.class]
    [java] [javac] [reading java/lang/Boolean.class]
    [java] [javac] [reading org/apache/commons/pool/BaseObjectPool.class]
    [java] [javac] [reading java/lang/UnsupportedOperationException.class]
    [java] [javac] [reading java/lang/RuntimeException.class]
    [java] [javac] [writing com\jobisjob\library\db\DatabaseFactory.class - #7]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\db\DatabaseFactory.java - #7/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\db\TWebDatasourceFactory.java - #8/26]
    [java] [javac] [reading java/util/HashMap.class]
    [java] [javac] [reading javax/naming/Context.class]
    [java] [javac] [reading javax/naming/InitialContext.class]
    [java] [javac] [reading javax/naming/NamingException.class]
    [java] [javac] [reading javax/servlet/ServletContext.class]
    [java] [javac] [reading javax/sql/DataSource.class]
    [java] [javac] [reading java/util/Map.class]
    [java] [javac] [reading java/lang/Character.class]
    [java] [javac] [reading javax/naming/Name.class]
    [java] [javac] [reading java/util/AbstractMap.class]
    [java] [javac] [writing com\jobisjob\library\db\TWebDatasourceFactory.class - #8]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\db\TWebDatasourceFactory.java - #8/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\db\exceptions\DBException.java - #9/26]
    [java] [javac] [writing com\jobisjob\library\db\exceptions\DBException.class - #9]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\db\exceptions\DBException.java - #9/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\error\ErrorUtils.java - #10/26]
    [java] [javac] [reading java/io/PrintWriter.class]
    [java] [javac] [reading java/io/StringWriter.class]
    [java] [javac] [reading java/util/LinkedList.class]
    [java] [javac] [reading java/util/AbstractSequentialList.class]
    [java] [javac] [reading java/util/AbstractList.class]
    [java] [javac] [reading java/io/Writer.class]
    [java] [javac] [reading java/io/OutputStream.class]
    [java] [javac] [reading java/io/FileNotFoundException.class]
    [java] [javac] [reading java/io/File.class]
    [java] [javac] [writing com\jobisjob\library\error\ErrorUtils.class - #10]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\error\ErrorUtils.java - #10/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\file\FileUtils.java - #11/26]
    [java] [javac] [reading java/io/BufferedReader.class]
    [java] [javac] [reading java/io/BufferedWriter.class]
    [java] [javac] [reading java/io/FileInputStream.class]
    [java] [javac] [reading java/io/FileOutputStream.class]
    [java] [javac] [reading java/io/FileReader.class]
    [java] [javac] [reading java/io/FileWriter.class]
    [java] [javac] [reading java/util/zip/GZIPOutputStream.class]
    [java] [javac] [reading java/util/zip/DeflaterOutputStream.class]
    [java] [javac] [reading java/io/Reader.class]
    [java] [javac] [reading java/io/InputStreamReader.class]
    [java] [javac] [reading java/io/OutputStreamWriter.class]
    [java] [javac] [writing com\jobisjob\library\file\FileUtils.class - #11]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\file\FileUtils.java - #11/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\io\BasePath.java - #12/26]
    [java] [javac] [reading java/net/URL.class]
    [java] [javac] [writing com\jobisjob\library\io\BasePath.class - #12]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\io\BasePath.java - #12/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\log\LevelPatternLayout.java - #13/26]
    [java] [javac] [reading java/util/StringTokenizer.class]
    [java] [javac] [reading org/apache/log4j/spi/LoggingEvent.class]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternLayout.class - #13]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\log\LevelPatternLayout.java - #13/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\log\LevelPatternParser.java - #14/26]
    [java] [javac] [reading org/apache/log4j/NDC.class]
    [java] [javac] [reading org/apache/log4j/spi/ThrowableInformation.class]
    [java] [javac] [reading java/lang/Override.class]
    [java] [javac] [reading org/apache/log4j/Level.class]
    [java] [javac] [reading org/apache/log4j/Priority.class]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternParser$1.class - #14]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternParser$StackTraceConverter.class - #15]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternParser$2.class - #16]
    [java] [javac] [writing com\jobisjob\library\log\LevelPatternParser.class - #17]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\log\LevelPatternParser.java - #14/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\log\TLogFile.java - #15/26]
    [java] [javac] [reading org/apache/log4j/Logger.class]
    [java] [javac] [reading org/apache/log4j/Category.class]
    [java] [javac] [reading java/lang/StackTraceElement.class]
    [java] [javac] [writing com\jobisjob\library\log\TLogFile.class - #18]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\log\TLogFile.java - #15/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java - #16/26]
    [java] [javac] [reading java/util/Vector.class]
    [java] [javac] [reading java/util/regex/Matcher.class]
    [java] [javac] [reading java/util/regex/Pattern.class]
    [java] [javac] [reading javax/mail/MessagingException.class]
    [java] [javac] [reading javax/mail/NoSuchProviderException.class]
    [java] [javac] [reading javax/mail/Session.class]
    [java] [javac] [reading javax/mail/Transport.class]
    [java] [javac] [reading javax/mail/internet/InternetAddress.class]
    [java] [javac] [reading javax/mail/internet/MimeMessage.class]
    [java] [javac] [reading org/apache/commons/mail/EmailException.class]
    [java] [javac] [reading org/apache/commons/mail/HtmlEmail.class]
    [java] [javac] [reading javax/mail/Service.class]
    [java] [javac] [reading java/util/Hashtable.class]
    [java] [javac] [reading java/util/Dictionary.class]
    [java] [javac] [reading javax/mail/Authenticator.class]
    [java] [javac] [reading org/apache/commons/mail/MultiPartEmail.class]
    [java] [javac] [reading org/apache/commons/mail/Email.class]
    [java] [javac] [reading java/lang/Cloneable.class]
    [java] [javac] [reading javax/mail/internet/AddressException.class]
    [java] [javac] [reading java/util/RandomAccess.class]
    [java] [javac] [reading java/util/List.class]
    [java] [javac] [reading javax/mail/Address.class]
    [java] [javac] [reading javax/mail/Message.class]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java - #16/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\exceptions\MailException.java - #17/26]
    [java] [javac] [writing com\jobisjob\library\mail\exceptions\MailException.class - #19]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\exceptions\MailException.java - #17/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\test\TestMail.java - #18/26]
    [java] [javac] [writing com\jobisjob\library\mail\test\TestMail.class - #20]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\test\TestMail.java - #18/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\test\pojo\TestPojo.java - #19/26]
    [java] [javac] [writing com\jobisjob\library\mail\test\pojo\TestPojo.class - #21]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\test\pojo\TestPojo.java - #19/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\string\CharArraySet.java - #20/26]
    [java] [javac] [writing com\jobisjob\library\string\CharArraySet$CharArraySetIterator.class - #22]
    [java] [javac] [writing com\jobisjob\library\string\CharArraySet.class - #23]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\string\CharArraySet.java - #20/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\string\StringUtils.java - #21/26]
    [java] [javac] [reading java/math/BigInteger.class]
    [java] [javac] [reading java/security/MessageDigest.class]
    [java] [javac] [reading java/util/ArrayList.class]
    [java] [javac] [reading java/util/Enumeration.class]
    [java] [javac] [reading java/lang/IndexOutOfBoundsException.class]
    [java] [javac] [reading java/lang/NullPointerException.class]
    [java] [javac] [writing com\jobisjob\library\string\StringUtils.class - #24]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\string\StringUtils.java - #21/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\string\test\TestStringUtils.java - #22/26]
    [java] [javac] [writing com\jobisjob\library\string\test\TestStringUtils.class - #25]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\string\test\TestStringUtils.java - #22/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\test\All.java - #23/26]
    [java] [javac] [writing com\jobisjob\library\test\All.class - #26]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\test\All.java - #23/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\uuid\UUIDGenerator.java - #24/26]
    [java] [javac] [reading java/util/Random.class]
    [java] [javac] [writing com\jobisjob\library\uuid\UUIDGenerator.class - #27]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\uuid\UUIDGenerator.java - #24/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\web\filter\DataBasePoolConnectionFilter.java - #25/26]
    [java] [javac] [reading javax/servlet/FilterChain.class]
    [java] [javac] [reading javax/servlet/FilterConfig.class]
    [java] [javac] [reading javax/servlet/ServletException.class]
    [java] [javac] [reading javax/servlet/ServletRequest.class]
    [java] [javac] [reading javax/servlet/ServletResponse.class]
    [java] [javac] [reading java/lang/Integer.class]
    [java] [javac] [reading java/lang/NumberFormatException.class]
    [java] [javac] [reading java/lang/IllegalArgumentException.class]
    [java] [javac] [writing com\jobisjob\library\web\filter\DataBasePoolConnectionFilter.class - #28]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\web\filter\DataBasePoolConnectionFilter.java - #25/26]
    [java] [javac] [analyzing c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\web\listener\DBCPoolingListener.java - #26/26]
    [java] [javac] [reading javax/servlet/ServletContextEvent.class]
    [java] [javac] [writing com\jobisjob\library\web\listener\DBCPoolingListener.class - #29]
    [java] [javac] [completed c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\web\listener\DBCPoolingListener.java - #26/26]
    [java] [javac] [26 units compiled]
    [java] [javac] [29 .class files generated]
    [java] [javac] ———-
    [java] [javac] 1. WARNING in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\io\BasePath.java (at line 13)
    [java] [javac] public static String get(Class clase) {
    [java] [javac] ^^^^^
    [java] [javac] Class is a raw type. References to generic type Class should be parameterized
    [java] [javac] ———-
    [java] [javac] 2. WARNING in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\io\BasePath.java (at line 50)
    [java] [javac] private static String getPath(String prefix, Class clazz, String url, String me) {
    [java] [javac] ^^^^^
    [java] [javac] Class is a raw type. References to generic type Class should be parameterized
    [java] [javac] ———-
    [java] [javac] ———-
    [java] [javac] 3. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 21)
    [java] [javac] import org.apache.velocity.Template;
    [java] [javac] ^^^^^^^^^^^^^^^^^^^
    [java] [javac] The import org.apache.velocity cannot be resolved
    [java] [javac] ———-
    [java] [javac] 4. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 22)
    [java] [javac] import org.apache.velocity.VelocityContext;
    [java] [javac] ^^^^^^^^^^^^^^^^^^^
    [java] [javac] The import org.apache.velocity cannot be resolved
    [java] [javac] ———-
    [java] [javac] 5. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 23)
    [java] [javac] import org.apache.velocity.app.Velocity;
    [java] [javac] ^^^^^^^^^^^^^^^^^^^
    [java] [javac] The import org.apache.velocity cannot be resolved
    [java] [javac] ———-
    [java] [javac] 6. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 24)
    [java] [javac] import org.apache.velocity.exception.ParseErrorException;
    [java] [javac] ^^^^^^^^^^^^^^^^^^^
    [java] [javac] The import org.apache.velocity cannot be resolved
    [java] [javac] ———-
    [java] [javac] 7. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 25)
    [java] [javac] import org.apache.velocity.exception.ResourceNotFoundException;
    [java] [javac] ^^^^^^^^^^^^^^^^^^^
    [java] [javac] The import org.apache.velocity cannot be resolved
    [java] [javac] ———-
    [java] [javac] 8. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 26)
    [java] [javac] import org.apache.velocity.tools.generic.EscapeTool;
    [java] [javac] ^^^^^^^^^^^^^^^^^^^
    [java] [javac] The import org.apache.velocity cannot be resolved
    [java] [javac] ———-
    [java] [javac] 9. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 50)
    [java] [javac] private VelocityContext context = null;
    [java] [javac] ^^^^^^^^^^^^^^^
    [java] [javac] VelocityContext cannot be resolved to a type
    [java] [javac] ———-
    [java] [javac] 10. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 52)
    [java] [javac] private Template template = null;
    [java] [javac] ^^^^^^^^
    [java] [javac] Template cannot be resolved to a type
    [java] [javac] ———-
    [java] [javac] 11. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 367)
    [java] [javac] if (context == null) {
    [java] [javac] ^^^^^^^
    [java] [javac] context cannot be resolved
    [java] [javac] ———-
    [java] [javac] 12. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 368)
    [java] [javac] context = new VelocityContext();
    [java] [javac] ^^^^^^^
    [java] [javac] context cannot be resolved
    [java] [javac] ———-
    [java] [javac] 13. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 368)
    [java] [javac] context = new VelocityContext();
    [java] [javac] ^^^^^^^^^^^^^^^
    [java] [javac] VelocityContext cannot be resolved to a type
    [java] [javac] ———-
    [java] [javac] 14. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 375)
    [java] [javac] template = Velocity.getTemplate(templateFile, “UTF-8″);
    [java] [javac] ^^^^^^^^
    [java] [javac] template cannot be resolved
    [java] [javac] ———-
    [java] [javac] 15. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob\library\mail\Mail.java (at line 375)
    [java] [javac] template = Velocity.getTemplate(templateFile, “UTF-8″);
    [java] [javac] ^^^^^^^^
    [java] [javac] Velocity cannot be resolved
    [java] [javac] ———-
    [java] [javac] 16. ERROR in c:\develop\polaris\deploy2\plugins\JiJLib\src\com\jobisjob

  91. Patrick says:

    May 29th, 2008 at 3:00 pm (#)

    Hi David,

    Let’s start with the first error. The classes in org.apache.velocity cannot be imported because the following dependencies are not being met:

    [java] [eclipse.generateFeature] Bundle com.springsource.org.apache.velocity:
    [java] [eclipse.generateFeature] Unsatisfied import package com.werken.xpath_[0.9.4,1.0.0).
    [java] [eclipse.generateFeature] Unsatisfied import package javax.servlet_[2.5.0,3.0.0).
    [java] [eclipse.generateFeature] Unsatisfied import package javax.servlet.http_[2.5.0,3.0.0).
    [java] [eclipse.generateFeature] Unsatisfied import package org.apache.log_[1.0.1,1.0.1].
    [java] [eclipse.generateFeature] Unsatisfied import package org.jdom.output_[1.0.0,2.0.0).

    Can you identify which bundle is contributing each of these packages and verify that these bundles are in your target platform or source bundles?

    — Patrick

  92. David Pérez says:

    May 30th, 2008 at 1:32 pm (#)

    Thanks a lot Patrick,

    I didn’t see the “Unsatisfied import” messages.
    I have modified the velocity plugins manifest. I have removed the import-package lines.
    And now it compiles!
    Now I have another error, but that is another story….

  93. Dave M. says:

    June 6th, 2008 at 9:26 pm (#)

    Patrick,

    This works great! Thanks for posting the information.

    Besides my RCP project, I have a JEE project created in Eclipse (I used the JEE project wizard) that I would also like to automate a build for. I could just manually create my own ant script to build and package it. However, is there a way to use PDE Build to build and package my JEE project using my project settings (the result being an EAR file)?

    I have scoured the web looking for information on doing this but have not yet been successful. Obviously, my project is not a plug-in, but I was hoping PDE Build or something else could generate my EAR file from the project settings without me having to write and manually maintain an ant script. I have tried using “org.eclipse.jdt.apt.core.aptBuild” as mentioned in the Eclipse help but all that does is build everything in my workspace. It doesn’t generate my JARs and my EAR file based on my project settings. It seems a shame that there might not be the ability to do this using Eclipse and my project settings.

    Any help or insight would greatly be appreciated.

    Thanks,

    Dave M.

  94. Patrick says:

    June 6th, 2008 at 10:18 pm (#)

    Hi Dave,

    I’m glad the post was useful to you. As for building EAR files, this is not something that PDE Build does. It is strictly limited to building plug-ins.

    I think you’ll need to create an ant script to build the EAR, or maybe there are other Eclipse tools that can help you (check out the WTP and Java EE Tools projects). I’m not an expert in this area though, so I’m not sure if there’s anything there that will help.

    — Patrick

  95. Brian says:

    June 11th, 2008 at 7:32 pm (#)

    Patrick,

    Thanks for putting together this example. Unfortunately, I’m part of the frustrated group that can’t get this to build. I’m using Eclipse 3.3.2.

    I imported the the three projects into Eclipse and I thought I’d 1) get it running inside of eclipse, then 2) get it running outside of eclipse , and then 3) get it to build automatically.

    #1 seemed to work pretty easily. #2 took me a bit longer because of all the dependent plugins. I kept running into all sorts of errors because of dependency issues and currently it works with 30 plug-ins.

    #3 is really what your example is all about and I was hoping you could help me out. The error displayed at the bottom of the snippet below shows that it was unable to find a plug-in. However, the plug-in it is trying to find (org.eclipse.equinox.launcher_1.0.0.v20070606) is not the equinox launcher I am using. The build.properties has version 1.0.1.R33x_v20070828. Where is this bogus version coming from and how can I get around this problem? Thanks ahead of time.

    [java] generateScript:
    [java] [eclipse.buildScript] Some inter-plug-in dependencies have not been satisfied.
    [java] [eclipse.buildScript] Bundle org.eclipse.equinox.launcher.win32.win32.x86:
    [java] [eclipse.buildScript] Another singleton version selected: org.eclipse.equinox.launcher.win32.win32.x86_1.0.2.R331_v20071019
    [java] [eclipse.buildScript] Bundle org.eclipse.platform.source.win32.win32.x86:
    [java] [eclipse.buildScript] Another singleton version selected: org.eclipse.platform.source.win32.win32.x86_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz
    [java] [eclipse.buildScript] Bundle org.eclipse.rcp.source.win32.win32.x86:
    [java] [eclipse.buildScript] Another singleton version selected: org.eclipse.rcp.source.win32.win32.x86_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS
    [java] [eclipse.buildScript] Bundle org.eclipse.swt.win32.win32.x86:
    [java] [eclipse.buildScript] Another singleton version selected: org.eclipse.swt.win32.win32.x86_3.3.2.v3347a
    [java] BUILD FAILED
    [java] C:\temp3\eclipse\eclipse-rcp-europa-fall2-win32\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\productBuild\productBuild.xml:27: The following error occurred while executing this line:
    [java] C:\temp3\eclipse\eclipse-rcp-europa-fall2-win32\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\build.xml:64: The following error occurred while executing this line:
    [java] C:\temp3\eclipse\eclipse-rcp-europa-fall2-win32\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\templates\headless-build\customTargets.xml:10: The following error occurred while executing this line:
    [java] C:\temp3\eclipse\eclipse-rcp-europa-fall2-win32\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\productBuild\allElements.xml:9: The following error occurred while executing this line:
    [java] C:\temp3\eclipse\eclipse-rcp-europa-fall2-win32\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\genericTargets.xml:85: Unable to find plug-in: org.eclipse.equinox.launcher_1.0.0.v20070606. Please check the error log for more details.
    [java] Total time: 2 seconds

  96. Patrick says:

    June 11th, 2008 at 8:08 pm (#)

    Hi Brian,

    Sorry you’re having problems. PDE Build can be a real pain to set up, as you’ve discovered.

    First, though, I’m confused about the dependency issues you mention in getting the build to run outside of Eclipse. You should be building the same exact same plug-ins against the same build target (RCP Runtime Binary + RCP Delta Pack), so there shouldn’t have been any difference. The only difference would be that you’d be kicking off the process using Ant instead of Eclipse. Can you elaborate on what issues you had?

    As for the error you’re getting, assuming your building against a correctly constructed build target (see above), then there must be something going on with your build.properties file. I’d be happy to look at this if you’d like to email it to me at patrick at rcpquickstart dot com.

    — Patrick

  97. Tom Bradshaw says:

    June 19th, 2008 at 2:56 pm (#)

    Hi Patrick, thanks to this tutorial I managed to (temporaily) get a PDE build working. I was running it against my IDE install, not a target platform – which is where the trouble comes in.

    I’ve spent the past day or so experimenting with getting my target working with pde headless build. I’d more or less come to the conclusion that the required plugins are the Delta pack, RCP binary, whatever bits are needed for operation and the following (taken from http://aspsp.blogspot.com/2008/04/taking-pain-out-of-eclipse-rcp-builds.html)

    * org.eclipse.help.base
    * org.apache.jasper
    * org.apache.lucene
    * org.apache.lucene.analysis
    * org.eclipse.equinox.http.jetty
    * org.eclipse.equinox.http.registry
    * org.eclipse.equinox.http.servlet
    * org.eclipse.equinox.jsp.jasper
    * org.eclipse.equinox.jsp.jasper.registry
    * org.eclipse.osgi.services
    * javax.servlet
    * javax.servlet.jsp
    * org.mortbay.jetty
    * org.apache.commons.logging
    * org.apache.commons.el

    However, once they’re all in PDE starts asking me for all kinds of strange things, not least:

    [java] [eclipse.generateFeature] Bundle org.eclipse.platform.source.linux.gtk.x86:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.platform.source_3.3.3.r33x_r20080129-_19UEl7Ezk_gXF1kouft has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.rcp.source.linux.gtk.x86:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.rcp.source_3.3.3.r33x_r20080129-8y8eE9UEUWI6qujeED0xT7bc has not been found.

    And:

    [java] /usr/lib/eclipse/plugins/org.eclipse.pde.build_3.3.2.v20071019/scripts/productBuild/productBuild.xml:51: Unable to find plug-in: org.eclipse.debug.core. Please check the error log for more details.

    After following this train for a while, all I seemed to be doing was taking all of my IDE plugins and dropping them into my target. Is this something you have encountered?

    *Really* weirdly, the export actually works when I do it from eclipse, using this very target. Could it possibly be a problem with the antRunner application being unable to find the plugins it needs to run? What kind of changes would I need to make to your build if this was the case?

    Tom

  98. Patrick says:

    June 19th, 2008 at 4:23 pm (#)

    Hi Tom,

    You’re right that what you need is the Runtime Binary + Delta Pack + any other special plug-ins you require. The plug-ins you list in your comment are required to add the help system to an RCP application. Are you incorporating help into your app?

    As far as your build output, it’s common to get a list of “plugin x not found” messages. These messages should not cause the build to fail, though. If the build is failing, it’s really the last section of the log that’s important. If you’d like to email me your log output, I’d be happy to take a look.

    — Patrick

  99. Kelvin says:

    June 19th, 2008 at 9:16 pm (#)

    I got the tutorial to work, after many errors, but now I’m trying to adapt it to my own RCP application. I get the following error when executing the pde-build target:



    [java] [eclipse.generateFeature] Bundle org.eclipse.update.core.win32:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.update.core_[3.0.0,4.0.0) has not been found.
    [java] BUILD FAILED
    [java] c:\eclipse\plugins\org.eclipse.pde.build_3.3.2.v20071019\scripts\productBuild\productBuild.xml:24: The following error occurred while executing this line:
    [java] c:\eclipse\plugins\org.eclipse.pde.build_3.3.2.v20071019\scripts\productBuild\productBuild.xml:51: Unable to find plug-in: core. Please check the error log for more details.

    I do have a plugin project named “core” and I’ve placed it in several places. It’s not helping. Can someone tell me what I’m doing wrong? This is so frustrating.

  100. wyz says:

    June 20th, 2008 at 9:08 am (#)

    Hi, i am using your build script and it works great. But is there a way to disable zipping for multiple configs? I tried folder but it does not seem to work since the tmp folder is deleted automatically.

  101. Patrick says:

    June 20th, 2008 at 4:37 pm (#)

    Hi Kelvin,

    The message about org.eclipse.update.core is probably not relevant. The delta pack adds a set of fragments for various plug-ins that are not part of the base RCP runtime, and this will cause those messages to appear. They shouldn’t stop the build from running.

    Having looked at the build log you emailed to me, it looks like quite a few plug-ins are not being found. You should be placing *your* plug-ins into the ${buildDirectory}/plugins directory and all other plugins (RCP runtime, RCP Delta Pack, GEF, etc) into the ${baseLocation}/plugins directory. You should verify that these properties are being set properly in your build.properties file.

    It’s hard to say for sure what’s going on without more information. If you’d like to email me your build.xml and build.properties files, I’d be happy to take a look.

    I understand your frustration in setting up PDE Build. It’s always painful at first, but it is possible to get a build going!

    — Patrick

  102. Patrick says:

    June 20th, 2008 at 5:11 pm (#)

    Hi wyz,

    I see what you mean. I just tested this out and I see the same behaviour, but maybe I’m missing some property that can be set. You might want to ask around on the RCP newsgroup and perhaps file a Bugzilla entry on this.

    As a workaround, you could package the products up as zip archives and then unzip them after PDE Build completes. Also, is there a particular goal you’re trying to achieve in doing this. Perhaps there is another way to accomplish it.

    — Patrick

  103. Kelvin says:

    June 20th, 2008 at 7:15 pm (#)

    Oh interesting, I did what you told me to Patrick, but now I have a different error. I hope this means the previous error is fixed now. This is the error that I’m getting now.

    C:\eclipse\plugins\org.eclipse.pde.build_3.3.2.v20071019\scripts\genericTargets.xml:85: Unable to find plug-in: org.eclipse.equinox.launcher.win32.win32.x86_1.0.2.R331_v20071019. Please check the error log for more details.

    I actually specify a different equinoxlauncher version (1.0.1.R33x_v20080118) in my build.properties file. Why is it referring to 1.0.2.R331_v20071019 ??

  104. Kelvin says:

    June 20th, 2008 at 7:41 pm (#)

    Hm.. I notice it’s the same error that Brian had. I’m getting a bunch of:
    [eclipse.buildScript] Another singleton version selected: org.eclipse.mylyn.bugzilla.ide_2.3.2.v20080402-2100

  105. Tom Bradshaw says:

    June 23rd, 2008 at 10:51 am (#)

    Hi Patrick, sorry I haven’t got back to you sooner – I’ve been away. I solved the problem and it seems to have been a pretty basic beginner problem – my .product had all of the plugins in it that my IDE had, since it was still in early “get it working” mode. From now on I’m going to be using a target platform from the start…

    One other question I have, though. Where I work there’s a reasonably strict build procedure, and everything has to be buildable from the working copy, dependencies and all. Is there a way to get PDE build working from inside the Target distribution itself, so the build process isn’t held within an IDE installation, so that base = eclipseLocation?

  106. Patrick says:

    June 23rd, 2008 at 7:28 pm (#)

    Hi Kelvin,

    The errors you’re seeing indicate that you’re building against a complete Eclipse distribution, not the RCP runtime binary. You shouldn’t be seeing any errors related to Mylyn, unless you’re incorporating it into your product.

    The version difference for the launcher is becuase the second version is for the launcher *fragment* for the win32 platform. The version you specify in your build file is for the launcher plug-in itself. The launcher fragment is provided by the RCP Delta Pack, and it looks like that fragment is missing.

    Can you make sure that the build target you’re using (baseLocation) contains only the RCP runtime binary, RCP delta pack, and any other Eclipse plug-ins you need (e.g. GEF)?

    — Patrick

  107. Patrick says:

    June 23rd, 2008 at 7:33 pm (#)

    Hi Tom,

    You could set the target to be the eclipseLocation, as long as you’ve extracted the RCP delta pack over your Eclipse install. You will get quite a few warnings in the log output, but the product should build.

    In general, though, this is a bad idea because your build and development environments will be tightly coupled. What exactly are you trying to acheive by doing this? Maybe there’s another way to meet your requirements.

    — Patrick

  108. wyz says:

    June 24th, 2008 at 3:11 am (#)

    Hi, Patrick. Thanks for your reply. I was doing what you suggested. It makes my build process so much easier. Thanks.

  109. Tom Bradshaw says:

    June 24th, 2008 at 2:04 pm (#)

    Sorry Patrick, I actually meant the other way around, I want the build to be completely independent of eclipse. (Or add rather, add PDE build to my delta pack) I have to make sure that all dependencies and everything required to build are checked into version control, and it would be preferable to eliminate eclipse (the IDE) completely. I’ve tried adding PDE to the delta pack and it threw quite a few equinox / OSGI type errors.

  110. Patrick says:

    June 24th, 2008 at 2:54 pm (#)

    Hi Tom,

    Ah, that makes more sense. First, I think checking in the target platform into your repository makes a lot of sense. I’m not sure the same applies to PDE Build and Eclipse itself.

    Remember that you can build your application with any version of PDE Build that is greater than your target platform, so it’s not tied to your application in the same way as the target platform. I kind of think of PDE Build like I think of Ant – it’s just the tool that runs the build. Do you check Ant into your repository?

    The bottom line is that your build machine has to be set up with *something* to get your builds going. Probably Ant, CruiseControl, cvs or svn clients or whatever. If you don’t want to inlcude a version of Eclipse in this set, then you’ll need to either check it in to your repository or download it on the fly during the build. As you’ve found out, simply adding PDE Build to your target platform is not sufficient.

    — Patrick

  111. Tom Bradshaw says:

    June 24th, 2008 at 3:55 pm (#)

    Thanks Patrick – the reasoning behind not really wanting eclipse as a build pre-requisite is that half of the developers work on a .NET side of the main application, so tend to not have eclipse installed / have an old version for code viewing, but need to be able to build everything that’s currently on the head. I suppose the solution that’s facing me is either an eclipse requirement for all developers, binary builds made available from the CI server or a stripped down version of eclipse included as a pre-requisite.

    Thanks for all your help… I think I’ve got the hang of PDE build now!

  112. wyz says:

    June 25th, 2008 at 2:24 am (#)

    Hi, Patrick.

    I am aware that Eclipse 3.4 made some improvement on PDE headless build. But I failed to get more information rather than the “News and Noteworthy” section in the release notes. Do you know if there is any known problem to use your script in 3.4?

    Anyway, I am going to try my old script in 3.3 with Eclipse 3.4.

  113. wyz says:

    June 25th, 2008 at 5:01 am (#)

    Hi Patrick, I tried it with 3.4 and it works well.

    One different behavior from 3.3 I observed is when I distribute for mac, it is archived in zip now instead of tar.gz in 3.3.

    Thanks for your wonderful work again.

  114. Per says:

    June 27th, 2008 at 2:38 pm (#)

    Hi Patrick,

    I’m building two products that shares a set of bundles and it would be nice if I could reuse the artifacts produced when building first product for the second product build. However I’ve not been able to figure out a way of doing this with PDE Build.

    Have you any suggestions for how to setup PDE for building multiple products that shares common bundles?

    Thanks,
    Per

  115. Patrick says:

    June 27th, 2008 at 7:15 pm (#)

    Hi Per,

    If the reusable bundles are packaged as a distinct feature, it’s possible to build that feature and then use that artifact in subsequent builds.

    One way to do this is to store the latest build archive of the reusable feature in a directory on the build machine. Then when you build your products you will need to create a custom build target (baseLocation property) by extracting your reusable feature on top of the RCP runtime binary, delta pack, etc.

    Hope this helps,

    — Patrick

  116. Per says:

    July 1st, 2008 at 1:49 pm (#)

    Thanks!

    I’ve added a feature for the reusable bundles.

    A links file that points to a the reusable feature is added the target platform (base) before building the products. (Unfortunately the links file must specify an absolute path.)

    This works, however the feature for the reusable component is really only needed during build time. Is there a way in PDE build to exclude the feature when assembling the products or shall is it better to add this cleanup after pde build has completed?

  117. Patrick says:

    July 1st, 2008 at 9:50 pm (#)

    Hi Per,

    Are you saying that the reusable feature is being built again when you build the products? If the feature is already built and placed in the target platform, there is no need to check out the feature source and build it again as part of the product builds.

    I have a feeling I’m not understanding your question entirely. Maybe you could describe what you’re doing now in more detail.

    — Patrick

  118. Per says:

    July 2nd, 2008 at 7:33 pm (#)

    The binary artifacts from reusable target got picked up just fine. The thing that I wanted to tweak was to have PDE build exclude the features/reusablefeature_1.0.0 folder from the products zip files. This is not a big deal as the features folder can easily be removed after pde product builds complete.

    I’m not sure that I like changing the target platform installation while building, so I tried adding a prebuilt resuable feature to the ${buildDirectory}

    As a simple test I changed the com.rcpquickstart.helloworld build example to include another feature (com.rcpquickstart.reusable.feature) that was built separately and copied to the ${buildDirectory} before invoking pde-build on the com.rcpquickstart.helloworld product. The resuable feature got picked up by pde build.

    Are there any drawbacks to this solution?

    The next step will be to publish the resusable feature artifacts to a local artifacts repository and setup the build system to rebuild the resuable feature if needed…

  119. Patrick says:

    July 3rd, 2008 at 7:50 pm (#)

    Hi Per,

    Ah, I see what you’re trying to do. Sorry about that.

    One way of doing this is to remove the reusable feature from your product configuration and add it as a dependency of the features that need it. Make sure you list the reusable feature in the “Dependencies” tab of your product features and not in the “Included Features” tab. This tells the build process that you need the reusable feature but that it should not be built as part of the product.

    Let me know if this works for you.

    — Patrick

  120. Per says:

    July 7th, 2008 at 5:43 am (#)

    Thanks Patrick!

  121. Ronnie says:

    July 8th, 2008 at 10:51 pm (#)

    I still don’t see how this is automated. Ok sure you just run a build > ant , but nowhere have I seen this being ran as a .bat for example. Nightly builds would be impressive, but for some reason is Eclipse not capable of that?

  122. Patrick says:

    July 9th, 2008 at 2:28 pm (#)

    Hi Ronnie,

    The build.xml file in the download that launches the PDE Bulid process is just a regular Ant script that could be kicked off using CruiseControl or a bat file. The entire process is headless and does not require the IDE to be active in order to run.

    If you need help setting this up, I’d be happy to help.

    — Patrick

  123. Barbara Rosi-Schwartz says:

    July 11th, 2008 at 10:14 am (#)

    Hi Patrick.

    Thank you very much for your neat example.

    I am currently trying to get it running under Ganymede and Mac OS X. Having changed all the relevant parameters, I find that the init target runs fine, but the pde-build target fails with the following error message:

    /Users/brs/projects/sandbox/com.rcpquickstart.helloworld.build/build.xml:59: Java returned: 13

    I have been trying to figure out what exactly the return code 13 means, but cannot get anywhere! :-(

    Any suggestion?

    Thank you very much in advance,
    B.

  124. Barbara Rosi-Schwartz says:

    July 11th, 2008 at 10:44 am (#)

    Hi again Patrick.

    In case it helps, I get the following stack trace:

    BUILD FAILED
    /Users/brs/projects/sandbox/com.rcpquickstart.helloworld.build/build.xml:59: Java returned: 13
    at org.apache.tools.ant.taskdefs.Java.execute(Java.java:107)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.Main.runBuild(Main.java:698)
    at org.apache.tools.ant.Main.startAnt(Main.java:199)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

  125. Patrick says:

    July 11th, 2008 at 10:58 pm (#)

    Hi Barbara,

    That error usually indicates that there is a problem with the Ant script itself. Maybe there is an invalid task name or invalid attribute for a task. If you email me the build.xml file, I’d be happy to take a look.

    — Patrick

  126. Bertrand says:

    July 16th, 2008 at 1:56 pm (#)

    Hi,

    Thanks for your example, it was very helpfull !
    I succeeded to generate my product with a good number of features and plugins (60 …) with the product-build.xml of Ganymede and java 1.6. But I need to use java 1.5 (for company reason).
    And when I try to regenerate it with this specific java version through ganymede, I got this error :

    [eclipse.buildScript] Some inter-plug-in dependencies have not been satisfied.
    [java] [eclipse.buildScript] Bundle org.eclipse.jdt.apt.pluggable.core:
    [java] [eclipse.buildScript] Missing Constraint: Bundle-RequiredExecutionEnvironment: JavaSE-1.6
    [java] [eclipse.buildScript] Unsatisfied import package org.eclipse.jdt.internal.compiler.tool_0.0.0.
    [java] [eclipse.buildScript] Unsatisfied import package org.eclipse.jdt.internal.compiler.apt.dispatch_0.0.0.
    [java] [eclipse.buildScript] Unsatisfied import package org.eclipse.jdt.internal.compiler.apt.model_0.0.0.
    [java] [eclipse.buildScript] Unsatisfied import package org.eclipse.jdt.internal.compiler.apt.util_0.0.0.
    [java] [eclipse.buildScript] Bundle org.eclipse.jdt.compiler.apt:
    [java] [eclipse.buildScript] Missing Constraint: Bundle-RequiredExecutionEnvironment: JavaSE-1.6
    [java] [eclipse.buildScript] Unsatisfied import package org.eclipse.jdt.internal.compiler.tool_0.0.0.
    [java] [eclipse.buildScript] Bundle org.eclipse.jdt.compiler.tool:
    [java] [eclipse.buildScript] Missing Constraint: Bundle-RequiredExecutionEnvironment: JavaSE-1.6
    [java] BUILD FAILED

    I believed at the beginning that I forgot a lib or to modify a java path but my modifications do not change anything. Does this mean that it is not possible to build it with Ganymede and java 1.5 ?
    I ve got this problem only if I try to execute the ant file through eclipse, it works fine when I plan it through maven.
    I know, it is a bit complex to understand so if you need more information, I will be happy to give it
    So if you ve got any idea, feel free to share it …

    Thanks.
    Bertrand

  127. Patrick says:

    July 16th, 2008 at 5:09 pm (#)

    Hi Bertrand,

    Are you actually using the JDT plug-ins in your application? If not, I’d suggest building against a target platform containing only the RCP Runtime Binary + Delta Pack + any extra jars you need. If that doesn’t work, I’d be happy to take a closer look at your build to see what’s going on.

    — Patrick

  128. Ronnie says:

    July 16th, 2008 at 6:00 pm (#)

    Hi,

    I am using SDK 3.4 on windows server 2003 and the build is throwing the following error. Suggestions?

    Buildfile: C:\Documents and Settings\Administrator\Desktop\pdebuild-tutorial-1\com.rcpquickstart.helloworld.build\build.xml
    clean:
    [delete] Deleting directory c:\helloworld-build
    init:
    [mkdir] Created dir: c:\helloworld-build
    [mkdir] Created dir: c:\helloworld-build\plugins
    [mkdir] Created dir: c:\helloworld-build\features
    [copy] Copying 28 files to c:\helloworld-build\plugins
    [copy] Copying 3 files to c:\helloworld-build\features
    pde-build:
    [java] Buildfile: C:/eclipse-SDK-3.4-win32/eclipse//plugins/org.eclipse.pde.build_3.4.0.v20080604/scripts/productBuild/productBuild.xml
    [java] main:
    [java] preBuild:
    [java] preSetup:
    [java] checkLocalMaps:
    [java] getMapFiles:
    [java] [concat] No existing resources and no nested text, doing nothing
    [java] postSetup:
    [java] checkLocalBase:
    [java] getBaseComponents:
    [java] generateFeature:
    [java] fetch:
    [java] generateFeature:
    [java] BUILD FAILED
    [java] C:\eclipse-SDK-3.4-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\productBuild.xml:25: The following error occurred while executing this line:
    [java] C:\eclipse-SDK-3.4-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\productBuild.xml:53: java.lang.NullPointerException
    [java] Total time: 3 seconds

    BUILD FAILED
    C:\Documents and Settings\Administrator\Desktop\pdebuild-tutorial-1\com.rcpquickstart.helloworld.build\build.xml:58: Java returned: 13

    Total time: 47 seconds

  129. Ronnie says:

    July 16th, 2008 at 6:34 pm (#)

    I was in a bit of a hurry, so I apologize. Basically the tutorial is at C:\ and imported from there. I imagine that this should be working like a charm, except that the paths aren’t behaving properly maybe?

    I would think a utility like ANT sometimes doesn’t like the empty spaces in for example C:\Documents And Settings right?
    Also I put into target-folder the rcp and delta… but your readme was a bit vague on that. It just says unzip the two packages. Both have plugins and feature folders so I unziped on there and pasted the files from the 2nd package from plugs dir into the plugins folder from the original unzip.

    This is fairly straight forward tutorial, but a bit more detail would be nice, but beggars can’t be choosers.

    My build.properties looks like the following:

    ###############################################################################
    # Copyright (c) 2003, 2006 IBM Corporation and others.
    # All rights reserved. This program and the accompanying materials
    # are made available under the terms of the Eclipse Public License v1.0
    # which accompanies this distribution, and is available at
    # http://www.eclipse.org/legal/epl-v10.html
    #
    # Contributors:
    # IBM Corporation – initial API and implementation
    ###############################################################################
    #####################
    # Parameters describing how and where to execute the build.
    # Typical users need only update the following properties:
    # baseLocation – where things you are building against are installed
    # bootclasspath – The base jars to compile against (typicaly rt.jar)
    # configs – the list of {os, ws, arch} configurations to build.
    #
    # Of course any of the settings here can be overridden by spec’ing
    # them on the command line (e.g., -DbaseLocation=d:/eclipse

    ############# PLUG-IN VERSIONS ######################
    #
    # Look in the plugins directory of your Eclipse
    # installation to determine the version numbers
    # the correct version numbers. These version numbers
    # are used to create the correct paths when launching
    # PDE Build.
    #
    #####################################################

    # Version of org.ecilpse.pdebuild
    pdeBuildPluginVersion=3.4.0.v20080604

    # Version of org.eclipse.equinox.launcher
    equinoxLauncherPluginVersion=1.0.100.v20080509-1800

    ############# BASE LOCATION #########################
    #
    # Specify the directory of the base under which your
    # your build target is located. This directory should
    # contain the RCP Runtime Binary that you want to
    # compile against.
    #
    #####################################################

    base=c:/helloworld-build-target

    ############# ECLIPSE LOCATION ######################
    #
    # Specify the directory of the Eclipse installation
    # that will be used to execute PDE Build.
    #
    #####################################################

    eclipseLocation=C:/eclipse-SDK-3.4-win32/eclipse/

    ############# PRODUCT/PACKAGING CONTROL #############
    product=/com.rcpquickstart.helloworld/helloworld.product
    runPackager=true

    #Set the name of the archive that will result from the product build.
    #archiveNamePrefix=

    # The prefix that will be used in the generated archive.
    archivePrefix=helloworld

    # The location underwhich all of the build output will be collected.
    collectingFolder=${archivePrefix}

    # The list of {os, ws, arch} configurations to build. This
    # value is a ‘&’ separated list of ‘,’ separate triples. For example,
    # configs=win32,win32,x86 & linux,motif,x86
    # By default the value is *,*,*
    #configs = *, *, *
    configs=win32, win32, x86
    ##& \
    # linux, gtk, ppc &\
    # linux, gtk, x86 & \
    # linux, gtk, x86_64 & \
    # linux, motif, x86 & \
    # solaris, motif, sparc & \
    # solaris, gtk, sparc & \
    # aix, motif, ppc & \
    # hpux, motif, PA_RISC & \
    # macosx, carbon, ppc

    # By default PDE creates one archive (result) per entry listed in the configs property.
    # Setting this value to try will cause PDE to only create one output containing all
    # artifacts for all the platforms listed in the configs property.
    #groupConfigurations=true

    #The format of the archive. By default a zip is created using antZip.
    #The list can only contain the configuration for which the desired format is different than zip.
    #archivesFormat=win32, win32, x86 – antZip& \
    # linux, gtk, ppc – antZip &\
    # linux, gtk, x86 – antZip& \
    # linux, gtk, x86_64 – antZip& \
    # linux, motif, x86 – antZip& \
    # solaris, motif, sparc – antZip& \
    # solaris, gtk, sparc – antZip& \
    # aix, motif, ppc – antZip& \
    # hpux, motif, PA_RISC – antZip& \
    # macosx, carbon, ppc – antZip

    #Set to true if you want the output to be ready for an update jar (no site.xml generated)
    #outputUpdateJars = false

    #Set to true for Jnlp generation
    #codebase should be a URL that will be used as the root of all relative URLs in the output.
    #generateJnlp=false
    #jnlp.codebase=
    #jnlp.j2se=
    #jnlp.locale=
    #jnlp.generateOfflineAllowed=true or false generate attribute in the generated features
    #jnlp.configs=${configs} #uncomment to filter the content of the generated jnlp files based on the configuration being built

    #Set to true if you want to sign jars
    #signJars=false
    #sign.alias=
    #sign.keystore=
    #sign.storepass=

    #Arguments to send to the zip executable
    zipargs=

    #Arguments to send to the tar executable
    tarargs=

    #Control the creation of a file containing the version included in each configuration – on by default
    #generateVersionsLists=false

    ############## BUILD NAMING CONTROL ################
    # The directory into which the build elements are fetched and where
    # the build takes place.
    buildDirectory=c:/helloworld-build

    # Type of build. Used in naming the build output. Typically this value is
    # one of I, N, M, S, …
    buildType=I

    # ID of the build. Used in naming the build output.
    buildId=HelloWorld

    # Label for the build. Used in naming the build output
    buildLabel=${buildType}.${buildId}

    # Timestamp for the build. Used in naming the build output
    timestamp=007

    #The value to be used for the qualifier of a plugin or feature when you want to override the value computed by pde.
    #The value will only be applied to plugin or features indicating build.properties, qualifier = context
    #forceContextQualifier=

    #Enable / disable the generation of a suffix for the features that use .qualifier.
    #The generated suffix is computed according to the content of the feature
    #generateFeatureVersionSuffix=true

    ############# BASE CONTROL #############
    # Settings for the base Eclipse components and Java class libraries
    # against which you are building.
    # Base location for anything the build needs to compile against. For example,
    # in most RCP app or a plug-in, the baseLocation should be the location of a previously
    # installed Eclipse against which the application or plug-in code will be compiled and the RCP delta pack.

    baseLocation=${base}/eclipse
    #Os/Ws/Arch/nl of the eclipse specified by baseLocation
    baseos=win32
    basews=win32
    basearch=x86

    #this property indicates whether you want the set of plug-ins and features to be considered during the build to be limited to the ones reachable from the features / plugins being built
    filteredDependencyCheck=false

    #pluginPath is a list of locations in which to find plugins and features. This list is separated by the platform file separator (; or :)
    #a location is one of:
    #- the location of the jar or folder that is the plugin or feature : /path/to/foo.jar or /path/to/foo
    #- a directory that contains a /plugins or /features subdirectory
    #- the location of a feature.xml, or for 2.1 style plugins, the plugin.xml or fragment.xml
    #pluginPath=

    skipBase=true
    eclipseURL=
    eclipseBuildId=
    eclipseBaseURL=${eclipseURL}/eclipse-platform-${eclipseBuildId}-win32.zip

    ############# MAP FILE CONTROL ################
    # This section defines CVS tags to use when fetching the map files from the repository.
    # If you want to fetch the map file from repository / location, change the getMapFiles target in the customTargets.xml

    skipMaps=true
    mapsRepo=:pserver:anonymous@example.com/path/to/repo
    mapsRoot=path/to/maps
    mapsCheckoutTag=HEAD

    #tagMaps=true
    mapsTagTag=v${buildId}

    ############ REPOSITORY CONTROL ###############
    # This section defines properties parameterizing the repositories where plugins, fragments
    # bundles and features are being obtained from.

    # The tags to use when fetching elements to build.
    # By default thebuilder will use whatever is in the maps.
    # This value takes the form of a comma separated list of repository identifier (like used in the map files) and the
    # overriding value
    # For example fetchTag=CVS=HEAD, SVN=v20050101
    # fetchTag=HEAD
    skipFetch=true

    ############# JAVA COMPILER OPTIONS ##############
    # The location of the Java jars to compile against. Typically the rt.jar for your JDK/JRE
    #bootclasspath=${java.home}/lib/rt.jar

    # specific JRE locations to compile against. These values are used to compile bundles specifying a
    # Bundle-RequiredExecutionEnvironment. Uncomment and set values for environments that you support
    #CDC-1.0/Foundation-1.0= /path/to/rt.jar
    #CDC-1.1/Foundation-1.1=
    #OSGi/Minimum-1.0=
    #OSGi/Minimum-1.1=
    #JRE-1.1=
    #J2SE-1.2=
    #J2SE-1.3=
    #J2SE-1.4=
    #J2SE-1.5=
    #JavaSE-1.6=
    #PersonalJava-1.1=
    #PersonalJava-1.2=
    #CDC-1.0/PersonalBasis-1.0=
    #CDC-1.0/PersonalJava-1.0=
    #CDC-1.1/PersonalBasis-1.1=
    #CDC-1.1/PersonalJava-1.1=

    # Specify the output format of the compiler log when eclipse jdt is used
    logExtension=.log

    # Whether or not to include debug info in the output jars
    javacDebugInfo=false

    # Whether or not to fail the build if there are compiler errors
    javacFailOnError=true

    # Enable or disable verbose mode of the compiler
    javacVerbose=true

    # Extra arguments for the compiler. These are specific to the java compiler being used.
    #compilerArg=

    # Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
    #javacSource=1.3

    # Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
    #javacTarget=1.1

  130. Patrick says:

    July 16th, 2008 at 7:06 pm (#)

    Hi Ronnie,

    I would start by removing the spaces in the path. There have been some issues with spaces in paths starting with Ant 1.7.0, which is the version currently used by Eclipse. You can get more information here:

    https://bugs.eclipse.org/bugs/show_bug.cgi?id=193119

    Otherwise, your properties file looks good. If removing the spaces doesn’t work, let me know.

    — Patrick

  131. Ronnie says:

    July 16th, 2008 at 7:13 pm (#)

    Patrick,

    Ok I put everything in C:\ no spaces in any of the absolute paths. But.. still java returning: 13 error

    [java] fetch:
    [java] generateFeature:
    [java] BUILD FAILED
    [java] C:\eclipse-SDK-3.4-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\productBuild.xml:25: The following error occurred while executing this line:
    [java] C:\eclipse-SDK-3.4-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\productBuild.xml:53: java.lang.NullPointerException
    [java] Total time: 1 second

    BUILD FAILED
    C:\pdebuild-tutorial-1\com.rcpquickstart.helloworld.build\build.xml:58: Java returned: 13

    Total time: 17 seconds

  132. Ronnie says:

    July 16th, 2008 at 9:10 pm (#)

    Thanks Patrick,

    I figured it out, it was how I unzipped the directories for the rcp and delta packages. Everything needed to be C:/helloworld-target-build/eclipse/…………..

    Now just a matter of transferring this over to the project I already have goign with the 30 + projects in my workspace.

  133. Jakub Vondrak says:

    July 17th, 2008 at 8:12 pm (#)

    Hi everybody,

    Ronnie: I had the same problem and just changed
    baseLocation=${base}/eclipse
    to
    baseLocation=${base}
    and it started to work.

    Patrick: thanks for great example

  134. Ronnie says:

    July 21st, 2008 at 4:52 pm (#)

    Patrick,

    Here is the output from running the antfile: What disturbs me is the empty directories which probably accounts for the missing plugins. I edited it a bit, but left some of the important parts. Also in build.xml the init section, I’m not exactly sure how I to put this:

    Thanks,

    Ronnie

    Buildfile: C:\workspace\com.project.build\build.xml
    clean:
    [delete] Deleting directory C:\project-build
    init:
    [mkdir] Created dir: C:\project-build
    [mkdir] Created dir: C:\project-build\plugins
    [mkdir] Created dir: C:\project-build\features
    [copy] Copying 3422 files to C:\project-build\plugins
    [copy] Copied 2225 empty directories to 11 empty directories under C:\project-build\plugins
    pde-build:
    [java] Buildfile: c:/eclipse-SDK-3.4-win32/eclipse/plugins/org.eclipse.pde.build_3.4.0.v20080604/scripts/productBuild/productBuild.xml
    [java] main:
    [java] preBuild:
    [java] preSetup:
    [java] checkLocalMaps:
    [java] getMapFiles:
    [java] [concat] No existing resources and no nested text, doing nothing
    [java] postSetup:
    [java] checkLocalBase:
    [java] getBaseComponents:
    [java] generateFeature:
    [java] fetch:
    [java] generateFeature:
    [java] [eclipse.generateFeature] Some inter-plug-in dependencies have not been satisfied.
    [java] [eclipse.generateFeature] Bundle com.project.cmp.assetdiscovery:
    [java] [eclipse.generateFeature] Missing required plug-in com.project.module1_0.0.0.
    [java] [eclipse.generateFeature] Missing required plug-in com.project.module2_0.0.0.
    [java] [eclipse.generateFeature] Missing required plug-in com.project.module3_0.0.0.
    [java] [eclipse.generateFeature] Missing required plug-in com.project.cmp.heartbeat_0.0.0.
    [java] [eclipse.generateFeature] Bundle com.project.module2:
    [java] [eclipse.generateFeature] Missing required plug-in com.project.module1_0.0.0.
    [java] [eclipse.generateFeature] Missing required plug-in com.project.module3_0.0.0.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.filesystem.win32.x86:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.filesystem_[1.1.0,2.0.0) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.net.win32.x86:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.net_1.1.0 has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.core.resources.win32.x86:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.core.resources_[3.4.0,3.5.0) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.equinox.security.win32.x86:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.equinox.security_[1.0.0,2.0.0) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.ui.win32:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.ui.ide_[3.2.0,4.0.0) has not been found.
    [java] [eclipse.generateFeature] Bundle org.eclipse.update.core.win32:
    [java] [eclipse.generateFeature] Host plug-in org.eclipse.update.core_[3.0.0,4.0.0) has not been found.
    [java] BUILD FAILED
    [java] c:\eclipse-SDK-3.4-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\productBuild.xml:25: The following error occurred while executing this line:
    [java] c:\eclipse-SDK-3.4-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\productBuild.xml:53: Unable to find plug-in: com.project.module1. Please check the error log for more details.
    [java] Total time: 11 seconds

    BUILD FAILED
    C:\workspace\com.project.build\build.xml:53: Java returned: 13

    Total time: 3 minutes 42 seconds

  135. Champak says:

    July 23rd, 2008 at 9:50 am (#)

    Hi Patrick,
    Thanks for a nice tutorial for a complex topic.
    I have an RCP application and java project that creates and hosts a web service. But when I want reference the web service using the RCP projet the RCP is not able to recognize the java project,hence NoClassDefFoundError is thrown.
    Can you tell me how to add a java project to anRCP’s dependency?
    I changed the manifest.mf to include the project but still it is not able to find it.
    Thanks,
    Champak

  136. Igor says:

    July 25th, 2008 at 12:26 pm (#)

    Hi Patrick,

    Firtst of all thanks a lot for this helpful tutorial. But I’m still having some problems building the helloworld RCP. When I run the buil.xml, everything goes well, there are no error messages and after 19 seconds my build was successful. The problem is, when I unzip the folder with the distribution, I cant find the executable file (helloworld exe). Its just not there. Everything else is there, plugins, features, configuration folders. Do You have any idea, why this is happening. Thanks in advance.

    Igor.

  137. Patrick says:

    July 28th, 2008 at 8:48 pm (#)

    Hi Igor,

    Sorry for the delay in responding. I just got back from a much needed vacation.

    My guess is that PDE Build cannot find the launcher fragments that contain the executables. Have you extracted the RCP Delta Pack into the build target directory?

    — Patrick

  138. Patrick says:

    July 28th, 2008 at 8:54 pm (#)

    Hi Champak,

    Any code you wish to reference in your RCP application needs to be in a plug-in project, not a basic Java project. There is no way for plug-in code to reference Java project code at runtime, even though it will appear to compile.

    To reference your web service classes you will need to turn your Java project into a Plug-in Project (which basically means you’ll be adding a manifest.mf file). It is common to have a JAR that is used both inside and outside of an RCP app. I usually advise people to just make the JAR into a plug-in so it can be used either way. A plug-in is really just a JAR with some extra manifest entries, so it doesn’t seem like a big deal.

    — Patrick

  139. Igor says:

    July 28th, 2008 at 9:42 pm (#)

    Hi Patrick,

    Thanks for your reply. I figured out my problem. I was first trying to build the product against the regular eclipse installation, after I added delta pack there. But since I’m using the last version of eclipse and working on mac os x, there were probably some conflicts with eclipse 3.4 and delta pack 3.1.1. after following exactly your instructions, it all worked out just fine. i guess i will just have to use rcp binary and delta pack. But anyways, thank you for your help.

    Igor.

  140. Patrick says:

    July 29th, 2008 at 8:09 pm (#)

    Hi Ronnie,

    It looks like your application has dependencies on the Eclipse filesystem and resource plug-ins. Are you including them in your build target? The base RCP Runtime Binary + Delta Pack will not give you all the plug-ins you need in this case.

    — Patrick

  141. Igor says:

    July 31st, 2008 at 10:32 am (#)

    Hi Patrick,

    Now that I successfully built you example, I’m trying to apply it to my product. I packed all my plugins into a feature and adapted the build.xml file. Everything seems to work fine, but build fails because of a compilation error. We are using Compiler compliance level:1.4; generated .class file compatibility 1.4; source compatibility: 1.4. There is a lot of use of the key word “assert” in the code, which is not a problem in eclipse, there are no compilatione errors and the application works just fine. I also exported the application using the export wizard and there were no problems either. But now when I’m using the antRunner cant compile it. Below is a snippet of an error log. Do you have any idea, what is going wrong?

    Thanks, Igor.

    Log:

    [java] [javac] assert state == STATE_SCHEDULED;
    [java] [javac] ^^^^^^
    [java] [javac] ‘assert’ should not be used as an identifier, since it is a reserved keyword from source level 1.4 on
    [java] [javac] ———-
    [java] [javac] 90. ERROR in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferAction.java (at line 393)
    [java] [javac] assert state == STATE_SCHEDULED;
    [java] [javac] ^^
    [java] [javac] Syntax error on token “==”, = expected
    [java] [javac] ———-
    [java] [javac] 91. WARNING in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferAction.java (at line 406)
    [java] [javac] assert state == STATE_ACTIVE || state == STATE_SCHEDULED;
    [java] [javac] ^^^^^^
    [java] [javac] ‘assert’ should not be used as an identifier, since it is a reserved keyword from source level 1.4 on
    [java] [javac] ———-
    [java] [javac] 92. ERROR in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferAction.java (at line 406)
    [java] [javac] assert state == STATE_ACTIVE || state == STATE_SCHEDULED;
    [java] [javac] ^^
    [java] [javac] Syntax error on token “==”, = expected
    [java] [javac] ———-
    [java] [javac] 93. WARNING in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferAction.java (at line 437)
    [java] [javac] assert i >= 0;
    [java] [javac] ^^^^^^
    [java] [javac] ‘assert’ should not be used as an identifier, since it is a reserved keyword from source level 1.4 on
    [java] [javac] ———-
    [java] [javac] 94. ERROR in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferAction.java (at line 437)
    [java] [javac] assert i >= 0;
    [java] [javac] ^^
    [java] [javac] Syntax error on token “>=”, = expected
    [java] [javac] ———-
    [java] [javac] ———-
    [java] [javac] 95. WARNING in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferQueue.java (at line 97)
    [java] [javac] assert
    [java] [javac] ^^^^^^
    [java] [javac] ‘assert’ should not be used as an identifier, since it is a reserved keyword from source level 1.4 on
    [java] [javac] ———-
    [java] [javac] 96. ERROR in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferQueue.java (at line 98)
    [java] [javac] xfer.getState() == Transfer.STATE_ACTIVE ||
    [java] [javac] ^
    [java] [javac] Syntax error on token “.”, = expected
    [java] [javac] ———-
    [java] [javac] 97. WARNING in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferQueue.java (at line 161)
    [java] [javac] assert action.getTransfer().getQueue() == this;
    [java] [javac] ^^^^^^
    [java] [javac] ‘assert’ should not be used as an identifier, since it is a reserved keyword from source level 1.4 on
    [java] [javac] ———-
    [java] [javac] 98. ERROR in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferQueue.java (at line 161)
    [java] [javac] assert action.getTransfer().getQueue() == this;
    [java] [javac] ^
    [java] [javac] Syntax error on token “.”, = expected
    [java] [javac] ———-
    [java] [javac] 99. WARNING in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferQueue.java (at line 195)
    [java] [javac] assert action.getTransfer().getQueue() == this;
    [java] [javac] ^^^^^^
    [java] [javac] ‘assert’ should not be used as an identifier, since it is a reserved keyword from source level 1.4 on
    [java] [javac] ———-
    [java] [javac] 100. ERROR in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/src/de/dgrid/wisent/gridftp/xfer/TransferQueue.java (at line 195)
    [java] [javac] assert action.getTransfer().getQueue() == this;
    [java] [javac] ^
    [java] [javac] Syntax error on token “.”, = expected
    [java] [javac] ———-
    [java] [javac] 100 problems (47 errors, 53 warnings)
    [java] [javac] Compilation failed. Compiler errors are available in /Users/klichko/gridftp-build/plugins/de.dgrid.wisent.gridftp/temp.folder/@dot.bin.log

  142. Patrick says:

    July 31st, 2008 at 9:55 pm (#)

    Hi Igor,

    How are you setting the compiler and source to 1.4? For PDE Build, you will need to set the javacTarget and javacSource properties in the build.properties file. Is that what you have done?

    — Patrick

  143. Igor says:

    August 1st, 2008 at 10:29 am (#)

    Hi Patrick,

    No I was actually doing it in the preference page of eclipse. Your tip solved the problem. I thought ant would use the same compliance level as eclipse did. Thanks a lot.

    Igor.

  144. Arne says:

    August 1st, 2008 at 12:06 pm (#)

    Hi Patrick,

    thanks, this is the best resource I’ve found about the topic … althought I’m not cross the finish-line ;). After some hours I’m almost there, but facing a problem I coudln’t solve. Maybe you’ve an idea?

    My project is based on an cpomplete eclipse installation (the JavaEE 3.4-variant). I’ve had three features, a product and many plugins. It all compiles successfull (*jippipe*) but after nearly ten minutes of building it fails.

    This is the end of the log:
    [java] jarUp:
    [java] jarIng_NoManifest:
    [java] jarUp:
    [java] jarIng_NoManifest:
    [java] customAssembly:
    [java] generate.p2.metadata:
    [java] customAssembly:
    [java] BUILD FAILED
    [java] d:\Tools\Eclipse\eclipse-SDK-3.4\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\productBuild.xml:31: The following error occurred while executing this line:
    [java] D:\Tools\Eclipse\eclipse-SDK-3.4\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\build.xml:102: The following error occurred while executing this line:
    [java] D:\Tools\Eclipse\eclipse-SDK-3.4\plugins\org.eclipse.pde.build_3.4.0.v20080604\templates\headless-build\customTargets.xml:12: The following error occurred while executing this line:
    [java] D:\Tools\Eclipse\eclipse-SDK-3.4\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\allElements.xml:9: The following error occurred while executing this line:
    [java] D:\Tools\Eclipse\eclipse-SDK-3.4\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\genericTargets.xml:165: The following error occurred while executing this line:
    [java] D:\temp\FDTBuild\package.org.eclipse.pde.build.container.feature.all.xml:21: The following error occurred while executing this line:
    [java] D:\temp\FDTBuild\package.org.eclipse.pde.build.container.feature.all.xml:15: The following error occurred while executing this line:
    [java] D:\Tools\Eclipse\eclipse-SDK-3.4\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\allElements.xml:28: The following error occurred while executing this line:
    [java] D:\temp\FDTBuild\package.org.eclipse.pde.build.container.feature.win32.win32.x86.xml:3582: D:\temp\FDTBuild\tmp\FDT\plugins\org.eclipse.team.svn.nl1.sources_0.7.1.I20080612-1500 not found.
    [java] Total time: 8 minutes 30 seconds

    The plugin “org.eclipse.team.svn.nl1.sources” is there (filename correct). I’ve tried to just delete the plugin and the associated feature (because it’s not realy neccassary) but if I do the build fails before compilation. Any idea?

  145. Arne says:

    August 1st, 2008 at 2:57 pm (#)

    Hi again,

    some more hours and finally I became a “BUILD SUCCESSFULL” *juhuuuuu*. Thanks again for this example, it helps a lot. For you guys with similar error messages:

    It turned out, that the script tried to copy a folder, but has a jar file instead. The solution was, to modify the target platform a bit (just have to change the “unpack” value of “org.eclipse.team.svn.nl1.sources” and some other source plugins from “true” to “false” inside the “feature.xml”).

  146. Patrick says:

    August 1st, 2008 at 3:17 pm (#)

    Hi Arne,

    You’re very welcome, and I’m glad you got it working!

    — Patrick

  147. Arne says:

    August 5th, 2008 at 10:19 am (#)

    Hi Patrick,

    “get it working” is too strong … sadly … it compiles, and that is fine, but I’ve still problems with the result. The resulting RCP Application is not p2 conform. I’ve tried to use the director, but up to now with some problems.

    To make the product p2 conform (and such be able to use the update manager) I unzip the resulting zip file, copy the “artifacts.xml” and “content.xml” into the build directory and call the director (don’t use the ANT task, but call the executable):

    It doesn’t terminate, throws an exception but create a “p2 folder”. I can start the result, but there are no update sites defined.

    Heres the end of the log … any idea what went wrong:

    [exec] DEBUG OUTPUT: false
    [exec] Installing com.powerflasher.fdt.product.product 3.1.0.1002.
    [exec] Installing com.powerflasher.fdt.product.product 3.1.0.1002.
    [exec] !SESSION 2008-08-05 11:52:06.343 ———————————————–
    [exec] eclipse.buildId=I20080617-2000
    [exec] java.version=1.6.0_05
    [exec] java.vendor=Sun Microsystems Inc.
    [exec] BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_GB
    [exec] Framework arguments: -application org.eclipse.equinox.p2.director.app.application -metadataRepository file:D:/temp/FDTInstall -artifactRepository file:D:/temp/FDTInstall -installIU com.powerflasher.fdt.product.product -destination D:/temp/FDTInstall/I.FDT/FDT-win32.win32.x86/FDT/ -profile FDTProfile -profileProperties org.eclipse.update.install.features=true -bundlePool D:/temp/FDTInstall/I.FDT/FDT-win32.win32.x86/FDT/ -p2.os win32 -p2.ws win32 -p2.arch x86 -roaming
    [exec] Command-line arguments: -os win32 -ws win32 -arch x86 -consoleLog -application org.eclipse.equinox.p2.director.app.application -metadataRepository file:D:/temp/FDTInstall -artifactRepository file:D:/temp/FDTInstall -installIU com.powerflasher.fdt.product.product -destination D:/temp/FDTInstall/I.FDT/FDT-win32.win32.x86/FDT/ -profile FDTProfile -profileProperties org.eclipse.update.install.features=true -bundlePool D:/temp/FDTInstall/I.FDT/FDT-win32.win32.x86/FDT/ -p2.os win32 -p2.ws win32 -p2.arch x86 -roaming
    [exec] !ENTRY org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Problems resolving provisioning plan.
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.sse.ui 1.0.305.v200802142230 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.common.ui 1.0.1.v20070912 to requiredCapability: osgi.bundle/org.eclipse.emf/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.common.ui 1.0.1.v20070912 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.common 1.0.2.v200802201120 to requiredCapability: osgi.bundle/org.eclipse.emf.edit.ui/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.common 1.0.2.v200802201120 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.core 1.0.2.v200802201120 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.core 1.0.2.v200802201120 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.core 1.0.2.v200802201120 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.core 1.0.2.v200802201120 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.ui 1.1.200.v200705302225 to requiredCapability: osgi.bundle/org.eclipse.ui.ide/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.437
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.ui 1.1.200.v200705302225 to requiredCapability: osgi.bundle/org.eclipse.ui/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.ui 1.1.200.v200705302225 to requiredCapability: osgi.bundle/org.eclipse.core.runtime/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.ui 1.1.200.v200705302225 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.ui 1.1.200.v200705302225 to requiredCapability: osgi.bundle/org.eclipse.search/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.ui 1.1.200.v200705302225 to requiredCapability: osgi.bundle/org.eclipse.jface.text/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.ui 1.1.200.v200705302225 to requiredCapability: osgi.bundle/org.eclipse.ui.workbench.texteditor/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.106.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.106.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.106.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.106.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.codegen/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.107.v200806252211 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.107.v200806252211 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.107.v200806252211 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.107.v200806252211 to requiredCapability: osgi.bundle/org.eclipse.emf.codegen/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.107.v200803071930 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.107.v200803071930 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.453
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.107.v200803071930 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee 1.1.107.v200803071930 to requiredCapability: osgi.bundle/org.eclipse.emf.codegen/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.web 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.web 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.web 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.codegen/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.sse.core 1.1.203.v200802140626 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.modulecore 1.1.104.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.modulecore 1.1.104.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.modulecore 1.1.104.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.common.annotations.controller 1.1.2.v200708301745 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.emf 1.1.104.v200709131115 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.common.annotations.core 1.1.2.v200706120315 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.facesconfig 1.0.1.v20070912 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jsf.facesconfig 1.0.1.v20070912 to requiredCapability: osgi.bundle/org.eclipse.emf.edit.ui/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.core 1.1.104.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.core 1.1.104.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.common.frameworks 1.1.102.v200709122200 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.common.frameworks 1.1.102.v200709122200 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.core 1.1.101.v200706120315 to requiredCapability: osgi.bundle/org.eclipse.core.runtime/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.core 1.1.101.v200706120315 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.core 1.1.101.v200706120315 to requiredCapability: osgi.bundle/org.eclipse.core.expressions/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.emfworkbench.integration 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.emfworkbench.integration 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jem 2.0.100.v200709051030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.3.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.frameworks 1.1.103.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.web 1.1.103.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.common.environment 1.0.200.v200705302225 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jee 1.0.3.v200803242054 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jee 1.0.3.v200803242054 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jee 1.0.3.v200803242054 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jee 1.0.3.v200806261300 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jee 1.0.3.v200806261300 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jee 1.0.3.v200806261300 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.468
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jee 1.0.2.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jee 1.0.2.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.jee 1.0.2.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.server.generic.core 1.0.205.v200709061325 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.server.generic.core 1.0.205.v200709061325 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.server.generic.core 1.0.205.v200709061325 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.command.env 1.0.205.v200710161954 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.command.env 1.0.205.v200710161954 to requiredCapability: osgi.bundle/org.eclipse.ant.core/[3.1.100,3.2.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws 1.0.205.v200801222138 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws 1.0.205.v200801222138 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws 1.0.205.v200801222138 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws 1.0.205.v200801222138 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.command.env.ui 1.0.203.v200709052219 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.ui 1.0.202.v200708202218 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.ui 1.0.202.v200708202218 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.consumption 1.0.205.v200711222108 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.consumption 1.0.205.v200711222108 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.consumption 1.0.205.v200711222108 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.484
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.consumption 1.0.205.v200711222108 to requiredCapability: osgi.bundle/org.eclipse.xsd/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.consumption 1.0.205.v200711222108 to requiredCapability: osgi.bundle/org.eclipse.emf.codegen/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.consumption.ui 1.0.206.v200712220541 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.consumption.ui 1.0.206.v200712220541 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.consumption.ui 1.0.206.v200712220541 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.consumption.ui 1.0.206.v200712220541 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws 1.0.204.v200711140435 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws 1.0.204.v200711140435 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws 1.0.204.v200711140435 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws 1.0.204.v200711140435 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.wsdl 1.1.101.v200801152132 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.wsdl 1.1.101.v200801152132 to requiredCapability: osgi.bundle/org.eclipse.xsd/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws.ui 1.0.203.v200708222126 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws.ui 1.0.203.v200708222126 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.wsi 1.0.105.v200706120315 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.server.tomcat.core 1.1.2.v20071023 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.ejb 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.ejb 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.ejb 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.jca 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.500
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.jca 1.1.105.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.ejb.annotation.model 1.1.2.v200706120315 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.web.ui 1.1.101.v200706071630 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.axis.consumption.core 1.0.204.v200708151945 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.axis.consumption.ui 1.0.204.v200801222138 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.axis.consumption.ui 1.0.204.v200801222138 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ws.axis.consumption.ui 1.0.204.v200801222138 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.ui 1.1.103.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit.ui/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.ui 1.1.103.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ejb.ui 1.1.102.v200709122200 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.ejb.ui 1.1.102.v200709122200 to requiredCapability: osgi.bundle/org.eclipse.emf.edit.ui/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.515
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.webservice 1.1.102.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.webservice 1.1.102.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.navigator.ui 1.1.102.v200709122200 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.navigator.ui 1.1.102.v200709122200 to requiredCapability: osgi.bundle/org.eclipse.emf.edit.ui/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws.explorer 1.0.206.v200802072125 to requiredCapability: osgi.bundle/org.eclipse.core.resources/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws.explorer 1.0.206.v200802072125 to requiredCapability: osgi.bundle/org.eclipse.ui/[3.2.0,3.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws.explorer 1.0.206.v200802072125 to requiredCapability: osgi.bundle/org.eclipse.emf.common/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws.explorer 1.0.206.v200802072125 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.ws.explorer 1.0.206.v200802072125 to requiredCapability: osgi.bundle/org.eclipse.xsd/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.webservice.ui 1.1.103.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.webservice.ui 1.1.103.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit.ui/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.webservice.ui 1.1.103.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore.xmi/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.ejb.annotations.emitter 1.1.2.v200708301745 to requiredCapability: osgi.bundle/org.eclipse.emf.codegen/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.j2ee.ejb.annotations.xdoclet 1.1.3.v200802201934 to requiredCapability: osgi.bundle/org.eclipse.ant.core/[3.1.100,3.2.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.wst.xsd.core 1.1.202.v200710011705 to requiredCapability: osgi.bundle/org.eclipse.xsd/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.servlet.ui 1.1.103.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.ecore/[2.2.0,2.4.0).
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-08-05 11:54:23.531
    [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.jst.servlet.ui 1.1.103.v200802192030 to requiredCapability: osgi.bundle/org.eclipse.emf.edit/[2.2.0,2.4.0).
    [exec] Installation failed.
    [exec] !ENTRY org.eclipse.equinox.p2.engine 4 4 2008-08-05 11:54:27.062
    [exec] !MESSAGE An error occurred while installing the items
    [exec] !SUBENTRY 1 org.eclipse.equinox.p2.touchpoint.eclipse 4 0 2008-08-05 11:54:27.062
    [exec] !MESSAGE The artifact file for com.powerflasher.fdt.classpatheditor.ui/osgi.bundle/3.1.0.1002 was not found.
    [exec] Exception in thread “JmDNS.SocketListener” java.lang.ExceptionInInitializerError
    [exec] at org.eclipse.ecf.provider.jmdns.container.JMDNSDiscoveryContainer.createServiceID(JMDNSDiscoveryContainer.java:457)
    [exec] at org.eclipse.ecf.provider.jmdns.container.JMDNSDiscoveryContainer.createServiceTypeID(JMDNSDiscoveryContainer.java:404)
    [exec] at org.eclipse.ecf.provider.jmdns.container.JMDNSDiscoveryContainer.serviceTypeAdded(JMDNSDiscoveryContainer.java:283)
    [exec] at javax.jmdns.impl.JmDNSImpl.registerServiceType(JmDNSImpl.java:729)
    [exec] at javax.jmdns.impl.JmDNSImpl.handleResponse(JmDNSImpl.java:1009)
    [exec] at javax.jmdns.impl.SocketListener.run(SocketListener.java:68)
    [exec] at java.lang.Thread.run(Unknown Source)
    [exec] Caused by: java.lang.NullPointerException
    [exec] at org.eclipse.ecf.internal.provider.jmdns.JMDNSDebugOptions.(JMDNSDebugOptions.java:13)
    [exec] … 7 more

  148. Patrick says:

    August 5th, 2008 at 3:58 pm (#)

    Hi Arne,

    I’m sorry to say I haven’t had a lot of experience with p2 yet. I’ll have to refer you to the Eclipse RCP newsgroup for this one.

    — Patrick

  149. Arne says:

    August 6th, 2008 at 10:49 am (#)

    Thanks anyway :) .

  150. Bertrand says:

    August 29th, 2008 at 2:21 pm (#)

    Hi,

    Thanks for your time and your example.
    I have few questions for you :
    In my project, I ve got many features but not all them are required for each client. But because I want to have only one build.xml, I copy all features in the apropriate directory and I was counted on my myapplication.product to compile everything in the correct way. Was I wrong and does every feature copied are built ? And I have to write a different build.xml for each client ?

    I believed that the following option can resolved my previous problem but it does not seem to be that, so wot is it about ?
    filteredDependencyCheck=true

    Thanks again
    Bertrand

    PS: I use Ganymede to generate

  151. Srinivas says:

    September 2nd, 2008 at 5:25 am (#)

    Hi Patric,

    I am trying to build my RCP application and got rid of some of the errors and
    getting the below build failure message.

    ************************
    [java] BUILD FAILED
    [java] c:\eclipse_rcp\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\productBuild\productBuild.xml:29: The following error occurred while executing this line:
    [java] C:\eclipse_rcp\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\build.xml:91: The following error occurred while executing this line:
    [java] C:\eclipse_rcp\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\templates\headless-build\customTargets.xml:10: The following error occurred while executing this line:
    [java] C:\eclipse_rcp\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\productBuild\allElements.xml:9: The following error occurred while executing this line:
    [java] C:\eclipse_rcp\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\genericTargets.xml:155: The following error occurred while executing this line:
    [java] C:\SPP JAVA VERSION\CODE\RCP\com.singularity.spp.client.build\RCPClient_Build\assemble.org.eclipse.pde.build.container.feature.all.xml:4: The following error occurred while executing this line:
    [java] C:\eclipse_rcp\eclipse\plugins\org.eclipse.pde.build_3.3.2.R331_v20071019\scripts\productBuild\allElements.xml:28: The following error occurred while executing this line:
    [java] C:\SPP JAVA VERSION\CODE\RCP\com.singularity.spp.client.build\RCPClient_Build\assemble.org.eclipse.pde.build.container.feature.win32.win32.x86.xml:124: java.io.EOFException
    [java] Total time: 1 minute 24 seconds

    ************************

    Below is my environment.

    1. eclipse-rcp-europa-fall2-win32 as PDE.
    2. Using the Runtime Binary of eclipse-RCP-3.3.2-win32
    3. Using the Delta pack of eclipse-RCP-3.3.2-delta-pack.zip

    I have extracted the RCP runtime binary and delta pack into the base directory eclipse folder as mentioned in the readme.txt of the sample.

    Could you please let me know what could be the problem for the failure and how to get rid of this ?

    Thanks & Regards,
    Srinivas Velidanda.

  152. Srinivas says:

    September 2nd, 2008 at 5:29 am (#)

    Tried using Deltapack 3.3.1.1 (eclipse-RCP-3.3.1.1-delta-pack) and Runtime Binary 3.3.1.1 (eclipse-RCP-3.3.1.1-win32), but getting the same EOFException

  153. Srinivas says:

    September 2nd, 2008 at 7:43 am (#)

    Hi Patric,

    Got this resolved.

    Somehow the equinox launcher was not visible if I extract delta back to the same folder where I extracted the Runtime Binary. Tried copying the equinox launcher feature folder to features folder of eclipse installation(baseLocation\feature) that I am using for the development environment.

    The sample is of great help as I could not find any other resources to get the RCP Product export using Ant build script done successfully.

    Thanks
    Srinivas

  154. Patrick says:

    September 2nd, 2008 at 4:37 pm (#)

    Hi Bertrand,

    For a feature to be built as part of a product build it must be referenced on the configuration tab of the our product file, although features can obviously declare dependencies on other features as well. I believe that setting filteredDependencyCheck=true will cause only the plug-ins and features referenced in the product and/or features to be built into the deliverable, based on the actual plug-in dependencies defined in the manifest files.

    If you would like to build features independently, you can use the regular PDE Build build.xml script (as opposed to the productBuild.xml script) along with the allElements.xml file which defines the specific features to build.

    If you tell me a little more about what you’re trying to achieve, I could try to come up with a more specific solution.

    — Patrick

  155. Bertrand says:

    September 3rd, 2008 at 8:39 am (#)

    Hi Patrick,

    Thanks for your answer. I had some weird problem with feature not referenced in the product but I think I had a refresh problem on the project.
    Concerning my project, I had many plugins (about more than one hundred) and I have to achieved different product for a dozen of client, but of course, each client have different features, different plugins and even different files to replace, so the property FilteredDependencyCheck can facilitate things for me.
    So I begin to have a nice mess, I will have a look at buckmister but if you have advise, I will take it (thanks for the tip concerning specific features to build).

    Otherwise, I had a weird build problem during my generation. A NullPointerException occurs on GenericTarget.xml for eclipse.buildScript. See below for the trace, I display the arguments used just before

    [java] generateScript:
    [java] [echo] elements : feature@org.eclipse.pde.build.container.feature
    [java] [echo] configInfo=win32, win32, x86
    [java] [echo] buildingOSGi=true
    [java] [echo] generateJnlp=false
    [java] [echo] platformProperties=${platformProperties}
    [java] [echo] filterP2Base=false
    [java] [echo] buildDirectory=c:/MonBuild/actidiag-build
    [java] [echo] configInfo=win32, win32, x86
    [java] [echo] baseLocation=c:/MonBuild/actia-build-target/eclipse
    [java] [echo] outputUpdateJars=${outputUpdateJars}
    [java] [echo] archivesFormat=${archivesFormat}
    [java] [echo] product=/fr.actia.actidiag/fr.actia.actidiag.product
    [java] [echo] forceContextQualifier=${forceContextQualifier}
    [java] [echo] signJars=false
    [java] [echo] generateFeatureVersionSuffix=false
    [java] [echo] significantVersionDigits=${significantVersionDigits}
    [java] [echo] generatedVersionLength=${generatedVersionLength}
    [java] [echo] generateVersionsLists=true
    [java] [echo] groupConfiguration=false
    [java] [echo] pluginPath=
    [java] [echo] filteredDependencyCheck=true
    [java] BUILD FAILED
    [java] C:\eclipse-rcp-ganymede-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\productBuild.xml:28: The following error occurred while executing this line:
    [java] C:\eclipse-rcp-ganymede-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\build.xml:64: The following error occurred while executing this line:
    [java] C:\eclipse-rcp-ganymede-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\templates\headless-build\customTargets.xml:12: The following error occurred while executing this line:
    [java] C:\eclipse-rcp-ganymede-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\productBuild\allElements.xml:9: The following error occurred while executing this line:
    [java] C:\eclipse-rcp-ganymede-win32\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080604\scripts\genericTargets.xml:110: java.lang.NullPointerException

    Do you have any idea about the problem or where I can find more details about that (like which java file is used for eclipse.buildScript ?)

    Thanks again for all your answers of this past year !

    Bertrand

  156. Patrick says:

    September 3rd, 2008 at 2:36 pm (#)

    This error may be caused by a problem with your target platform. Can you check that the RCP Runtime Binary and RCP Delta Pack have both been extracted into the same directory? And also check that the baseLocation property in your build.properties file points to the correct location.

    If you’d like to send me your build.xml and build.properties files, I’d be happy to take a look.

    — Patrick

  157. Bertrand says:

    September 3rd, 2008 at 3:16 pm (#)

    For the target platform, I think I extracted correctly everything and it works well with your example (I just re-executed it in case).
    For the build.xml and the build.properties, I send it to patrick@rcpquickstart.com with RCP QuickStart Problem for title.

    Bertrand

  158. Massimo says:

    September 8th, 2008 at 3:35 pm (#)

    Hi Patrick,
    your example was very helpfull for me.
    Now i can create a my complete RCP distribution.
    BUT i would like also to have the “Update Site” created. There is a way to automate also this “build”?
    THANKS A LOT.

  159. Patrick says:

    September 8th, 2008 at 8:29 pm (#)

    The problem I’ve had with generating an update site is that it’s difficult to create the site.xml file. It’s relatively easy to copy over the features and plug-ins.

    There is some fairly involved code that the Eclipse Releng team uses to generate site.xml files (search the Eclipse site for “UpdateBuilder” to get more info). Also, if you’re using Eclipse 3.4 you could look at generating p2 metadata instead.

    — Patrick

  160. Srinivas says:

    September 9th, 2008 at 11:00 am (#)

    Hi Patric,

    In my earlier post I mentioned that I got the problem resolved by using
    “Eclipse SDK by adding the equinox launcher feature extracted from Delta pack”

    I have extracted the runtime binary and delta pack to a different folder other than the SDK installation folder, the build is failing if I use this folder as base location.

    Do I need to add any plugins to runtime binary delta pack extracted folder to get rid of the failure?

    Finding the below errors in baseLocation\eclipse\configuration\***.log file

    ************************************************
    !SESSION 2008-09-09 16:15:41.394 ———————————————–
    eclipse.buildId=@build@
    java.version=1.5.0_06
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
    Framework arguments: -DbaseLocation=C:\\rcp_bin\\eclipse\\ -application org.eclipse.ant.core.antRunner -buildfile c:/rcp_bin/eclipse/plugins/org.eclipse.pde.build_3.3.2.R331_v20071019/scripts/productBuild/productBuild.xml -Dtimestamp=007
    Command-line arguments: -DbaseLocation=C:\\rcp_bin\\eclipse\\ -application org.eclipse.ant.core.antRunner -buildfile c:/rcp_bin/eclipse/plugins/org.eclipse.pde.build_3.3.2.R331_v20071019/scripts/productBuild/productBuild.xml -Dtimestamp=007

    !ENTRY org.eclipse.osgi 4 0 2008-09-09 16:15:42.708
    !MESSAGE Application error
    !STACK 1
    java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:72)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1148)

    !ENTRY org.eclipse.osgi 2 0 2008-09-09 16:15:42.724
    !MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:

    etc..etc
    ************************************************
    Then tried editing the config.ini file and uncommented/unhashed the below line
    ***********
    #osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start
    ****************
    Then ran the build again and now getting the below errors in another log file in configuration folder.

    *********************************
    !SESSION 2008-09-09 16:24:48.252 ———————————————–
    eclipse.buildId=@build@
    java.version=1.5.0_06
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
    Framework arguments: -DbaseLocation=C:\\rcp_bin\\eclipse\\ -application org.eclipse.ant.core.antRunner -buildfile c:/rcp_bin/eclipse/plugins/org.eclipse.pde.build_3.3.2.R331_v20071019/scripts/productBuild/productBuild.xml -Dtimestamp=007
    Command-line arguments: -DbaseLocation=C:\\rcp_bin\\eclipse\\ -application org.eclipse.ant.core.antRunner -buildfile c:/rcp_bin/eclipse/plugins/org.eclipse.pde.build_3.3.2.R331_v20071019/scripts/productBuild/productBuild.xml -Dtimestamp=007

    !ENTRY org.eclipse.osgi 4 0 2008-09-09 16:24:52.911
    !MESSAGE Application error
    !STACK 1
    java.lang.RuntimeException: Application “org.eclipse.ant.core.antRunner” could not be found in the registry. The applications available are: org.eclipse.equinox.app.error.
    at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:242)
    at org.eclipse.equinox.internal.app.EclipseAppContainer.start(EclipseAppContainer.java:98)
    at org.eclipse.equinox.internal.app.Activator.addingService(Activator.java:112)
    at org.osgi.util.tracker.ServiceTracker$Tracked.trackAdding(ServiceTracker.java:1064)
    at org.osgi.util.tracker.ServiceTracker$Tracked.trackInitialServices(ServiceTracker.java:926)
    at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:330)
    at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:274)
    at org.eclipse.equinox.internal.app.Activator.start(Activator.java:54)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:999)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974)
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260)
    at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400)
    at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:417)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:340)
    at org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:37)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:405)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at org.eclipse.core.internal.runtime.PlatformActivator.startAppContainer(PlatformActivator.java:47)
    at org.eclipse.core.internal.runtime.PlatformActivator.start(PlatformActivator.java:32)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:999)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974)
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:350)
    at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1118)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:634)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:508)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:282)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:468)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:297)

    !ENTRY org.eclipse.osgi 2 0 2008-09-09 16:24:52.942
    !MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
    !SUBENTRY 1 org.eclipse.osgi 2 0 2008-09-09 16:24:52.942
    !MESSAGE Bundle update@plugins/org.eclipse.platform.source.solaris.gtk.sparc_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz/ was not resolved.
    *********************************

    Any clues as to get rid of these errors?

    Could you please suggest me a way out without using the SDK or adding any required plugins to the base location with runtime binary and delta pack?

    regards,
    Srinivas.

  161. Patrick says:

    September 9th, 2008 at 3:34 pm (#)

    Hi Srinivas,

    It looks like you may be trying to *run* the PDE Build process using the RCP Runtime Binary. You need to run PDE Build using the complete Eclipse SDK but point the baseLocation property to the target platform made up of the Runtime Binary + Delta pack.

    — Patrick

  162. Bertrand says:

    September 12th, 2008 at 9:57 am (#)

    Hi All,

    I just noticed an interesting behavior :
    If you forget to put buildDirectory properties for any reason, it will create a directory named “${buildDirectory}” in the productBuild directory. And on the following generation despite you put all the properties in a correct way, you will have a MalformedURLException (the skipBase properties is not set). So just delete the ${buildDirectory}

    In case this help someone
    Regards
    Bertrand

  163. Bertrand says:

    September 12th, 2008 at 12:46 pm (#)

    Sorry I made a mistake, my problem does not come from the buildDirectory not erased but from the fact that I wanted to name the build.properties by build-product.properties. Hovewer, the build.xml from (pde.build/scripts) refers to build.properties and all properties was not set and produce error.
    Hope I m not too much confusing things

    Bertrand

  164. Patrick says:

    September 12th, 2008 at 8:41 pm (#)

    Hi Bertrand,

    No, it makes sense that you got the error in that case. I’m glad you got it figured out.

    — Patrick

  165. Bertrand says:

    September 15th, 2008 at 4:12 pm (#)

    Hi,

    I ve got an other compilation error :
    – I export my features
    – I generate thanks to pde-build the product

    It produces errors because of dependencies not satisfied, indeed one of my plugin needs a plugin from an other feature not yet compiled so I ve get this error below
    “GpcConsAction” cannot be resolved to a type

    In fact, I have crossed references between plugins from different features.
    To have this working, I just need a global compilation of all the plugins, which is done easily through eclipse by an automatic build, but it does not come so easily through the product generation by ant …

    Do I forget something like a recursive generation or a flag that notive to the compiler to build everything and not one by one ?

    Thanks
    Bertrand

  166. Patrick says:

    September 15th, 2008 at 5:06 pm (#)

    Hi Bertrand,

    If you’re building features as part of a product build, you may want to reorder the features as they are specified in the .product file. The features appear to be built in the order specified there. Or do you have bi-directional dependencies between the features?

    — Patrick

  167. Bertrand says:

    September 16th, 2008 at 9:47 am (#)

    Hi Patrick,

    Indeed, there is bi-directional dependencies between the features, and unfortunately, there are many …
    Any idea ?

    Bertrand

  168. Peter Michaels says:

    September 18th, 2008 at 6:52 pm (#)

    Hi Patrick,

    Thank you for providing this package, it seems to be the most popular resource for head-less builds :)
    I hope that you can help me with a problem I am having, I am using Eclipse 3.2.2, I unpackaged the RPC Binary and delta pack, however it seems that the helloworld-build/features/org.eclipse.pde.build.container.feature/feature.xml is not being created properly – it’s an empty file.

    here is the error:

    [java] [eclipse.generateFeature] Could not read: file:/home/pmichaels/work/autoBuild/helloworld-build/features/org.eclipse.pde.build.container.feature/feature.xml.
    [java] BUILD FAILED
    [java] /opt/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/scripts/productBuild/productBuild.xml:21: The following error occurred while executing this line:
    [java] /opt/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/scripts/productBuild/productBuild.xml:45: Problems parsing the feature file:/home/pmichaels/work/autoBuild/helloworld-build/features/org.eclipse.pde.build.container.feature/feature.xml.
    [java] Total time: 1 second

    BUILD FAILED
    /home/pmichaels/work/autoBuild/pdebuild-tutorial-1/com.rcpquickstart.helloworld.build/build.xml:60: Java returned: 13
    at org.apache.tools.ant.taskdefs.Java.execute(Java.java:87)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

  169. Patrick says:

    September 18th, 2008 at 7:07 pm (#)

    Hi Peter,

    Yes, there is a defect in 3.2 which causes this problem. Check out the “Problems parsing feature file in a product build” on this wiki page:

    http://wiki.eclipse.org/index.php/PDEBuild

    You have to make a small change to the productBuild.xml file to get this to work.

    — Patrick

  170. Peter Michaels says:

    September 18th, 2008 at 11:13 pm (#)

    Thanks for your quick response Patrick. I made the suggested changes to productBuild.xml but I continue to experience problems and now without a clear lead. It seems that there is a problem with the ant path? I also noticed that the pde.feature directory is not created in hello-world/features

    Execute:Java13CommandLauncher: Executing ‘/usr/lib/jvm/java-1.5.0-sun-1.5.0.15/jre/bin/java’ with arguments:
    ‘-classpath’
    ‘/opt/eclipse/startup.jar’
    ‘org.eclipse.core.launcher.Main’
    ‘-application’
    ‘org.eclipse.ant.core.antRunner’
    ‘-buildfile’
    ‘/opt/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/scripts/productBuild/productBuild.xml’
    ‘-Dtimestamp=007′

    The ‘ characters around the executable and arguments are
    not part of the command.

    BUILD FAILED
    /home/pmichaels/work/autoBuild/pdebuild-tutorial-1/com.rcpquickstart.helloworld.build/build.xml:60: Java returned: 13
    at org.apache.tools.ant.taskdefs.Java.execute(Java.java:87)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

    Any help would be much appreciated. Thank you.

    Peter

  171. Bertrand says:

    September 19th, 2008 at 9:30 am (#)

    Hi Patrick,

    I solved my problem, for bi directional dependencies, you have to modify the javaFailonError to false on the build.properties and on the build.xml (on my project build)
    If this can help someone.

    Thanks for your help and time
    Regards
    Bertrand

  172. Patrick says:

    September 19th, 2008 at 4:13 pm (#)

    Hi Peter,

    Did you make any changes to the build.xml, or simply change the productBuild.xml to fix the 3.2 defect? It seems strange that the java task is failing when it was running before. If you’d like to email me your build.xml file, I’d be happy to take a look at it.

    — Patrick

  173. Peter Michaels says:

    September 19th, 2008 at 9:00 pm (#)

    Hi Patrick,

    Thank you for taking the time to help out. I noticed that to compile the project I have to place the org.eclipse.equinox.app_1.0.0.v20070606.jar in my eclipse/plugins dir, however once I do that eclipse can’t start a new workspace.

    My target is linux,gtk,x86

    build.xml:

  174. Patrick says:

    September 20th, 2008 at 5:42 pm (#)

    Hi Peter,

    I’m assuming you mean that you need to add that plug-in to the build target, though I’m confused about how that would stop eclipse from opening a new workspace. First, if you’re not using a separate build target, do that first.

    If you’re talking about adding the equinox.app plug-in to your build target, you may want to trace the dependency down and see where it’s coming from. You can use the Plugin Dependency view to do this.

    — Patrick

  175. Suzan says:

    September 22nd, 2008 at 3:14 pm (#)

    Hello Patrick,

    I am trying to use eclipse.buildScript task to generate build.xml file. My bundle only has a plugin, which needs an import package com.ibm.tivoli.cas.agent.core.util. I have added the bundle which contributes this package to the targetPlatform. But I always get below error:
    Unsatisfied import package com.ibm.tivoli.cas.agent.core.util_0.0.0.

    After I add following line in my plugin MANIFEST.MF:
    Export-Package: com.ibm.tivoli.cas.agent.core.util

    That unsatisfied error is gone. The build.xml is generated. I don’t understand why Ant can’t figure out current runtime platform.

    If I use PDE Tools–>Create Ant build file, it could generate build.xml file without adding “Export-Package:…” to MANIFEST.MF. Why? I am wondering how this tool work.

    Thank you for your help !

    Suzan

  176. Patrick says:

    September 22nd, 2008 at 5:25 pm (#)

    Hi Suzan,

    Does the bundle that contains the IBM package actually export the package in it’s manifest?

    — Patrick

  177. Suzan says:

    September 22nd, 2008 at 5:52 pm (#)

    Hi Patrick,

    Thank you for quick reply!

    Yes, the bundle does export the package in it’s manifest.

    Suzan

  178. Peter Michaels says:

    September 22nd, 2008 at 6:04 pm (#)

    Hi Patrick,

    I was able to get helloworld to work, now that I am using PDE Build on my own project I get some strange errors.

    [java] generateFeature:
    [java] [eclipse.generateFeature] An error occured while generating manifest for /local/pmichaels/build/plugins/com.my.product.uat.
    [java] [eclipse.generateFeature] An error occured while generating manifest for /local/pmichaels/build/plugins/com.my.build.
    [java] [eclipse.generateFeature] An error occured while generating manifest for /local/pmichaels/build/plugins/.metadata.
    [java] [eclipse.generateFeature] An error occured while generating manifest for /local/pmichaels/build/plugins/org.eclipse.platform.launchers.

    [java] BUILD FAILED
    [java] /opt/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/scripts/productBuild/productBuild.xml:25: The following error occurred while executing this line:
    [java] /opt/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/scripts/build.xml:64: The following error occurred while executing this line:
    [java] /opt/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/templates/headless-build/customTargets.xml:10: The following error occurred while executing this line:
    [java] /opt/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/scripts/productBuild/allElements.xml:9: The following error occurred while executing this line:
    [java] /opt/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/scripts/genericTargets.xml:80: Unable to find plug-in: org.eclipse.core.runtime.compatibility.registry_0.0.0. Please check the error log for more details.
    [java] Total time: 1 second

    Is there something specific about 3.2 that could be causing this problem?

  179. Patrick says:

    September 22nd, 2008 at 8:27 pm (#)

    Hi Peter,

    When you say you got the helloworld build going, was that with 3.2? If so, you might want to determine where in your application the failed dependency is requested. The plug-in that is failing is not part of the 3.2 RCP Runtime Binary.

    — Patrick

  180. Patrick says:

    September 22nd, 2008 at 8:43 pm (#)

    Hi Suzan,

    I’m sorry to say I’m not sure why the PDE Build -> Create Ant Task and the eclipse.buildScript Ant task would behave differently. A guess would be that the menu option is using the target platform set in the IDE preferences, and that eclipse.buildScript task does not have access to this setting. This is just a guess, though…

    I would suggest asking this question on the RCP newsgroup. The PDE Build team may have an answer for you.

    — Patrick

  181. Scott says:

    September 23rd, 2008 at 4:59 pm (#)

    Patrick,

    Thanks for the article its been very helpful. I currently have an automated build which is working great except for one thing – it does not include my feature in the runPackager step. Once the packaged jar is created the features directory only has org.eclipse.rcp… I would like the feature I defined to also be here so that the Feature Details etc work properly. My feature points to a branding plugin, and also has bin.includes defined. What would cause my feature to not be copied over? I initially had my feature as the topLevelElementId but later tried to make a 2nd feature which had my feature as an Included feature but also did not work.

    Thanks ,
    Scott

  182. Scott says:

    September 23rd, 2008 at 6:29 pm (#)

    I have fixed my problem by switching my build to be product based rather then featured based. I am rather surprised I could not get it working as a feature but I am happy to have the issue fixed.

    - Scott

  183. Peter Michaels says:

    September 24th, 2008 at 1:59 pm (#)

    Hi Patrick,

    I was able to get the PDE Build to work under 3.2.2 (not changes to productBuild.xml were required, applies only to 3.2.0). The above mentioned problem was resolved by adding the required jar to the build-target directory. Also I had to add our customized product.launcher jar since 3.2.* doesn’t seem to want to create solaris_sparc_motif builds.
    Thank you for all your help,

    Peter

  184. Bookmarks about Java says:

    September 26th, 2008 at 7:30 am (#)

    [...] – bookmarked by 6 members originally found by randomdestiny on 2008-09-07 Comment on Getting started with PDE Build by Ronnie http://rcpquickstart.com/2007/06/06/getting-started-with-pde-build/#comment-2623 – bookmarked by 3 [...]

  185. mark says:

    October 14th, 2008 at 9:29 am (#)

    Once you have the helloworld working, but you still have plugin dependency problems on your ‘big’ project.
    These are 3 things that I find useful:

    1) your product MUST export and run cleanly from eclipse
    2)make really sure you have the exact same version of the rcp binary and delta pack as the eclipse you exported from.
    3) if you have missing dependencies, you can just copy all the plugins from the plugins directory of your previous eclipse export into the rcp binary plugin directory

    grtz
    mark

  186. Patrick says:

    October 14th, 2008 at 8:30 pm (#)

    Hi Mark,

    I definitely agree with point #1. You should always verify that you can export from within the IDE before trying an automated build.

    As for #2, it’s important that the RCP Binary and Delta Pack be the same version, but they don’t need to be the same as version as the Eclipse IDE you’re using. You’re free to develop in one version of Eclipse and target a different version of RCP.

    Again for #3, it’s important to keep tight control of your target platform. It’s possible to copy all of your Eclipse plugins into your target platform and have that resolve dependency issues, but I would suggest trying to limit your target platform to just the plug-ins you need. It’s a little more painful up front but much more maintainable in the long term.

    — Patrick

  187. mark says:

    October 15th, 2008 at 6:52 am (#)

    Hi Patrick,

    #2 : ow I see, is it of of importance at all ? do we need the original eclipse only for the pde build ?

    #3; I know I don’t need to take all the plugins,but is it not so that an export of eclipse will already only take the plugins necessary ?

    Why do we need this runtime binary anyway ? if eclipse is capable of exporting and just picking the necessary plugins from its plugin directory why do we need to do all this setup ? Why not use the same directory for base and eclipseLocation (being the eclipselocation), I just tried it and the build works just as good.

    thanks for the help (and the great example!),
    Mark

  188. Patrick says:

    October 15th, 2008 at 5:35 pm (#)

    Hi Mark,

    For #2, you can develop or build your RCP app with any version of Eclipse more recent than your target platform. If I’m misunderstanding your question, let me know.

    For #3, there are a lot of reasons it makes sense to have a separate target platform. Here are two posts I’ve written on the subject:

    http://rcpquickstart.com/2008/04/21/why-create-a-custom-target-platform/
    http://rcpquickstart.com/2008/04/29/rcp-target-platform-tips/

    — Patrick

  189. mark says:

    October 16th, 2008 at 7:27 am (#)

    Ok, thanks!

    One more question :) do we have to keep track of every plug-in in the application and know what it stands for, why it is there and what the depenencies are (like you would do for a typical jar in an application). I’m thinking of the rcp-binary +deltapack. I can imagine that there are some plugins in there too that we don’t really need. Or should we just start from rcp binary+deltapack and keep track of everything we add in there.

    regards,
    Mark

  190. Patrick says:

    October 18th, 2008 at 11:31 pm (#)

    Hi Mark,

    I typically start a target with the RCP Binary + Delta Pack. If size is an issue, it’s possible to replace the ICU4J plug-in with a stub version if you’re not using that. But to answer your question, I see almost the entire RCP as required for any RCP application and I don’t go through it plug-in by plug-in to see if they’re needed.

    Having said that, I’m also very careful to add extra plug-ins to the target only when necessary. I definitely try to avoid polluting the target with unneeded plug-ins and introducing unintended dependencies.

    — Patrick

  191. mark says:

    October 20th, 2008 at 6:59 am (#)

    I see. This is very helpful info for me.
    thanks a lot !

  192. Tobias says:

    October 22nd, 2008 at 12:55 pm (#)

    Hi there,

    i am trying to set up the hello world example with vista and ganymede and whenever i start the build I get the following:

    pde-build:
    [java] java.lang.NoClassDefFoundError: org/eclipse/core/launcher/Main
    [java] Caused by: java.lang.ClassNotFoundException: org.eclipse.core.launcher.Main
    [java] at java.net.URLClassLoader$1.run(Unknown Source)
    [java] at java.security.AccessController.doPrivileged(Native Method)
    [java] at java.net.URLClassLoader.findClass(Unknown Source)
    [java] at java.lang.ClassLoader.loadClass(Unknown Source)
    [java] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    [java] at java.lang.ClassLoader.loadClass(Unknown Source)
    [java] at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    [java] Exception in thread “main”

    BUILD FAILED
    Did anyone experience the same and/or find a solution? I used the same directories, as recommended and installed the Runtime Binary and Delta Pack.

  193. Tobias says:

    October 22nd, 2008 at 3:05 pm (#)

    Nevermind, the version number for the equinox launcher jar was wrong and it is working now. Sorry to bother you.

  194. Peter Michaels says:

    October 23rd, 2008 at 9:38 pm (#)

    Hi Mark,

    I am experiencing an unexpected problem when deploying a product built using the script.

    In our log files, we output the class name and line number using information from the stack trace. This works fine when I export the product, but the information is not available when I run the product built using the script. The class name and line number is available for all standard jvm classes, so is this a problem with enabling an option or incorrectly specifying the classpath?

    Thanks,
    Peter

  195. Peter Michaels says:

    October 23rd, 2008 at 10:45 pm (#)

    I was able to include “-g” in the compilerArguments in the build.properties and that did the trick.

  196. Scott Pelton says:

    November 4th, 2008 at 2:46 pm (#)

    Hi Patrick -

    If you don’t have time now perhaps we can discuss at your class this week.

    I am using Eclipse 3.4.1 build. We recently added some required plugins to an existing plugin. Now the build fails. I have worked this for the past few days with no luck. I have no idea where the problem is as the ant build log does not reveal any errors. In fact the weird thing is the compile stops midway (at WARNING 806) without an error….here is the tail of that log:

    [javac] ———-
    [javac] ———-
    [javac] 805. WARNING in C:\BuildCentral\Projects\ProdDevEnv\eclipse.build\pl
    ugins\com.worldpac.pde\src\com\worldpac\pde\views\widgets\CTreeCombo.java (at li
    ne 20)
    [javac] import org.eclipse.swt.SWTException;
    [javac] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The import org.eclipse.swt.SWTException is never used
    [javac] ———-
    [javac] 806. WARNING in C:\BuildCentral\Projects\ProdDevEnv\eclipse.build\pl
    ugins\com.worldpac.pde\src\com\worldpac\pde\views\widgets\CTreeCombo.java (at li
    ne 29)
    [javac] import org.eclipse.swt.events.SelectionEvent;
    [javac] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The import org.eclipse.swt.events.SelectionEvent is never used
    [javac] ———-

    …and here is the tail of the eclipse build output:

    BUILD FAILED
    C:\Apps\eclipse34\eclipse\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scr
    ipts\productBuild\productBuild.xml:29: The following error occurred while execut
    ing this line:
    C:\Apps\eclipse34\eclipse\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scr
    ipts\build.xml:78: The following error occurred while executing this line:
    C:\BuildCentral\Projects\ProdDevEnv\pde.builder\customTargets.xml:8: The followi
    ng error occurred while executing this line:
    C:\Apps\eclipse34\eclipse\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scr
    ipts\genericTargets.xml:95: The following error occurred while executing this li
    ne:
    C:\BuildCentral\Projects\ProdDevEnv\eclipse.build\features\com.worldpac.pde.prod
    uct.feature\build.xml:25: The following error occurred while executing this line
    :
    C:\BuildCentral\Projects\ProdDevEnv\eclipse.build\features\com.worldpac.pde.prod
    uct.feature\build.xml:12: The following error occurred while executing this line
    :
    C:\BuildCentral\Projects\ProdDevEnv\eclipse.build\features\com.worldpac.pde.feat
    ure\build.xml:64: The following error occurred while executing this line:
    C:\BuildCentral\Projects\ProdDevEnv\eclipse.build\features\com.worldpac.pde.feat
    ure\build.xml:35: The following error occurred while executing this line:
    C:\BuildCentral\Projects\ProdDevEnv\eclipse.build\plugins\com.worldpac.pde\build
    .xml:155: The following error occurred while executing this line:
    C:\BuildCentral\Projects\ProdDevEnv\eclipse.build\plugins\com.worldpac.pde\build
    .xml:112: java.lang.reflect.InvocationTargetException

    Total time: 32 minutes 48 seconds

    thanks
    Scott

  197. philipp says:

    November 13th, 2008 at 4:14 pm (#)

    This thing is so frustrating. Tonight I will kill somebody!

  198. philipp says:

    November 13th, 2008 at 4:42 pm (#)

    I have the same error like the one above but cant find a solution:

    Buildfile: C:\Userdata\phuebner\Desktop\pdebuild-tutorial-1\com.rcpquickstart.helloworld.build\build.xml
    clean:
    [delete] Deleting directory c:\helloworld-build
    init:
    [mkdir] Created dir: c:\helloworld-build
    [mkdir] Created dir: c:\helloworld-build\plugins
    [mkdir] Created dir: c:\helloworld-build\features
    [copy] Copying 28 files to c:\helloworld-build\plugins
    [copy] Copying 3 files to c:\helloworld-build\features
    pde-build:
    [java] java.lang.NoClassDefFoundError: org/eclipse/equinox/launcher/Main
    [java] Caused by: java.lang.ClassNotFoundException: org.eclipse.equinox.launcher.Main
    [java] at java.net.URLClassLoader$1.run(Unknown Source)
    [java] at java.security.AccessController.doPrivileged(Native Method)
    [java] at java.net.URLClassLoader.findClass(Unknown Source)
    [java] at java.lang.ClassLoader.loadClass(Unknown Source)
    [java] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    [java] at java.lang.ClassLoader.loadClass(Unknown Source)
    [java] at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    [java] Exception in thread “main”

    BUILD FAILED
    C:\Userdata\phuebner\Desktop\pdebuild-tutorial-1\com.rcpquickstart.helloworld.build\build.xml:60: Java returned: 1

    Total time: 1 second

    Im using 3.4.0

    This is the property file i used:

    # Version of org.ecilpse.pdebuild
    pdeBuildPluginVersion=3.4.0.v20080604

    # Version of org.eclipse.equinox.launcher
    equinoxLauncherPluginVersion=1.0.100.v20080509-1800

  199. Patrick says:

    November 13th, 2008 at 5:52 pm (#)

    Hi phillipp,

    Violence is never the answer! Seriously, though, I understand your pain. PDE Build is definitely difficult to set up.

    The error you’re getting means that the java task in the build.xml file cannot find the Equinox launcher jar. If you’re using 3.4.0 (not 3.4.1), then the plug-in version numbers should be ok in the build.properties file.

    The problem may be with the eclipseLocation property, which should point to a full install of Eclipse that will actually run the build.

    — Patrick

  200. philipp says:

    November 13th, 2008 at 8:33 pm (#)

    should that be another eclipse install than the one im running the ant script with?I point the property to the directory of the eclipse im launching the ant script with….does it need to be another eclipse?

  201. Patrick says:

    November 13th, 2008 at 8:42 pm (#)

    Hi philipp,

    It’s usually the same install that is running the ant script.

    — Patrick

  202. philipp says:

    November 13th, 2008 at 10:43 pm (#)

    ok tomorow i will have a look at the paths…
    but your toutorial should only show the basic priniple…Finally I have to build my hole rcp application automatically.It consists of 8 plugins and 2 features with unit tests. Until now i used the eclipse export wizard. Is it generally possible to run an automatic build from cvs which should build the app, run the tests and finally obfuscate the class files. There are many obscurities. Have I to commit the included parts into the cvs (target platform)? Can I use this Plugin builder plugin?Oh my god….

  203. philipp says:

    November 14th, 2008 at 12:19 pm (#)

    ok…finally i got your example to run. thx for the help. Now I will try to commit it and build it from cvs.

  204. mehal says:

    December 15th, 2008 at 1:37 pm (#)

    Hi Patrick,

    Great to know your replies!

    Can you help me to run a JTest TestCase(Recorded using Window Tester) in a headless mode.

    I tried your example. I have a TestCase class as below added to the project.

    public class MailTest extends UITestCaseSWT {

    IUIContext ui = getUI();
    ui.click(new MenuItemLocator(“File/Open Another Message View”));
    ui.click(new MenuItemLocator(“File/Open Message”));
    //some gui operations..
    }
    Let me know the changes I need to do to run my script headlessly on linux assuming I have the Window Tester installed on linux.

    I want to run the test case as plugin. This is my requirement.

    Thanks much!
    Mehala

  205. Patrick says:

    December 15th, 2008 at 5:27 pm (#)

    Hi Mehal,

    To run tests in a headless mode during a build process, you’ll need to use the Eclipse Testing Framework. I have a different post containing a sample build that shows how to do this:

    http://rcpquickstart.com/2008/08/04/updated-pde-build-and-test-example/

    You will just need to make sure that any plug-ins needed by Window Tester are available during the build and also during the execution of the tests. If you’ve already gotten this far and are having other issues, let me know what’s happening. I’d be happy to help.

    — Patrick

  206. Patrick says:

    January 19th, 2009 at 9:59 am (#)

    Hi Patrick,

    at first thanks for your examples. Now I can build my RCP application with ant ;-)
    But after I updated my Eclipse to version: 3.4.1 Build id: M20080911-1700 the folowing error occurs:
    [java] customAssembly:
    [java] BUILD FAILED
    [java] D:\eclipse\eclipse_3_4_1\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scripts\productBuild\productBuild.xml:30: The following error occurred while executing this line:
    [java] D:\eclipse\eclipse_3_4_1\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scripts\build.xml:91: The following error occurred while executing this line:
    [java] D:\eclipse\eclipse_3_4_1\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\templates\headless-build\customTargets.xml:12: The following error occurred while executing this line:
    [java] D:\eclipse\eclipse_3_4_1\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scripts\productBuild\allElements.xml:10: The following error occurred while executing this line:
    [java] D:\eclipse\eclipse_3_4_1\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scripts\genericTargets.xml:158: The following error occurred while executing this line:
    [java] D:\temp\viewer\build\assemble.org.eclipse.pde.build.container.feature.all.xml:23: The following error occurred while executing this line:
    [java] D:\temp\viewer\build\assemble.org.eclipse.pde.build.container.feature.all.xml:15: The following error occurred while executing this line:
    [java] D:\eclipse\eclipse_3_4_1\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scripts\productBuild\allElements.xml:44: The following error occurred while executing this line:
    [java] D:\temp\viewer\build\assemble.org.eclipse.pde.build.container.feature.win32.win32.x86.xml:109: java.io.EOFException

    I changed the values for my Eclipse plugin version in the build.properties as follows
    # Version of org.ecilpse.pdebuild
    pdeBuildPluginVersion=3.4.1.R34x_v20080805

    # Version of org.eclipse.equinox.launcher
    equinoxLauncherPluginVersion=1.0.101.R34x_v20080819

    Is that a bug in this specific version of Eclipse or did I something wrong?

    Best regards,
    patrick

  207. Patrick says:

    January 19th, 2009 at 2:05 pm (#)

    Hi Patrick,

    When you created your new target platform for Eclipse 3.4.1, did you also extract the RCP Delta Pack onto it? An EOFException is sometimes thrown when the build cannot find the launcher files, which are contained in the Delta Pack.

    If that’s not it, let me know and I’ll look into it more.

    — Patrick

  208. Jyothi Gudavalli says:

    March 2nd, 2009 at 6:20 pm (#)

    Hi Patrick,
    Hope you remember me. I was trying this PDE build of yours and got the following error.
    Buildfile: C:\eclipse-PDEBuild\com.rcpquickstart.helloworld.build\build.xml
    clean:
    [delete] Deleting directory c:\helloworld-build
    init:
    [mkdir] Created dir: c:\helloworld-build
    [mkdir] Created dir: c:\helloworld-build\plugins
    [mkdir] Created dir: c:\helloworld-build\features
    [copy] Copying 28 files to c:\helloworld-build\plugins
    [copy] Copying 3 files to c:\helloworld-build\features
    pde-build:
    [java] Buildfile: c:/tools/eclipse-Feb5th/eclipse/plugins/org.eclipse.pde.build_3.3.2.v20071019/scripts/productBuild/productBuild.xml
    [java] main:
    [java] preBuild:
    [java] preSetup:
    [java] checkLocalMaps:
    [java] getMapFiles:
    [java] [concat] No existing resources and no nested text, doing nothing
    [java] postSetup:
    [java] checkLocalBase:
    [java] getBaseComponents:
    [java] generateFeature:
    [java] fetch:
    [java] generateFeature:
    [java] BUILD FAILED
    [java] c:\tools\eclipse-Feb5th\eclipse\plugins\org.eclipse.pde.build_3.3.2.v20071019\scripts\productBuild\productBuild.xml:24: The following error occurred while executing this line:
    [java] c:\tools\eclipse-Feb5th\eclipse\plugins\org.eclipse.pde.build_3.3.2.v20071019\scripts\productBuild\productBuild.xml:51: Internal Error. Content Provider not set for Site: “{0}”.
    [java] Total time: 0 seconds

    BUILD FAILED
    C:\eclipse-PDEBuild\com.rcpquickstart.helloworld.build\build.xml:58: Java returned: 13

    Total time: 3 seconds

    I downloaded the delta pack and eclipse binary from the location below:

    http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.4-200806172000/eclipse-platform-3.4-win32.zip.

    Please let me know if you know about this error.

    Regards,
    Jyothi

  209. Patrick says:

    March 3rd, 2009 at 1:16 am (#)

    Hi Jyothi,

    Sure, I remember you! I hope everything is going well at Cisco.

    The error you are seeing is usually caused by the build not being able to find your target platform. Check the “base” and “baseLocation” properties in your build.properties file. Make sure they point to the directory that contains your target platform.

    If this isn’t the problem, feel free to email me your build files and I’ll take a look.

    — Patrick

  210. Govind says:

    March 4th, 2009 at 7:05 pm (#)

    Hi Patrick

    I use eclipse 3.3 M4
    I have plugin project which i recently converted to rcp and now a product. i have no of third party jars.

    when i launch the application as product it works fine,but when i export it as product , i guess its not loading 3rd party jars.

    Some suggest to make a plugin of 3rd party jars, can i work without it..

    one of my 3rd party jars is built with xerces 2.6.2, but eclipse also has plugin dependencies of xerces 2.8 used by wst.xml plugin.

    how do i go about to make it work.I have spent lot of time already.

    Thanks and Regards
    Govind

  211. Patrick says:

    March 4th, 2009 at 8:18 pm (#)

    Hi Govind,

    Can you check the build.properties file to make sure that your 3rd party jars are being included in your build? For instance, if they’re all in a “lib” directory, make sure that directory is checked. Or if they’re at the plug-in root, make sure each 3rd party jar is checked.

    — Patrick

  212. Govind says:

    March 5th, 2009 at 6:06 am (#)

    Hi Patrick

    Ya third party jars in build.properties.

    I think some 3rd party jars not accessed
    I have my logger implementation when i call that it gives me this exception

    at one line it gives java.security.AccessController.doPrivileged(Native Method) is it a matter of concern.

    org.osgi.framework.BundleException: Exception in com.xxx.MyPlugin.stop() of bundle
    com.xxx.
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:1056)
    at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:436)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:526)
    at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1145)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:640)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:288)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:258)
    at org.eclipse.osgi.framework.internal.core.SystemBundle.suspend(SystemBundle.java:190)
    at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:619)
    at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:522)
    at org.eclipse.osgi.framework.internal.core.OSGi.close(OSGi.java:41)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:389)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:187)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.eclipse.core.launcher.Main.invokeFramework(Main.java:339)
    at org.eclipse.core.launcher.Main.basicRun(Main.java:283)
    at org.eclipse.core.launcher.Main.run(Main.java:984)
    at org.eclipse.core.launcher.Main.main(Main.java:959)
    Caused by: java.lang.NullPointerException
    at com.xxx.MyLogInstance(MyLoggerAccessor.java:47)
    at com.xxx.MyLogInstance.MyBeanLoader.loadAppCtx(MyBeanLoader.java:75)
    at com.xxx.MyBeanLoader.getInstance(MyBeanLoader.java:42)
    at com.xxx.MyAccessor.getId(MyAccessor.java:32)
    atcom.xxx.MyPlugin.stop(MyPlugin.java:113)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$3.run(BundleContextImpl.java:1040)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:1036)
    … 20 moreorg.osgi.framework.BundleException: Exception in com.xxx.MyPlugin.stop() of bundle com.xxx.
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:1056)
    at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:436)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:526)
    at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1145)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:640)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:288)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:258)
    at org.eclipse.osgi.framework.internal.core.SystemBundle.suspend(SystemBundle.java:190)
    at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:619)
    at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:522)
    at org.eclipse.osgi.framework.internal.core.OSGi.close(OSGi.java:41)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:389)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:187)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.eclipse.core.launcher.Main.invokeFramework(Main.java:339)
    at org.eclipse.core.launcher.Main.basicRun(Main.java:283)
    at org.eclipse.core.launcher.Main.run(Main.java:984)
    at org.eclipse.core.launcher.Main.main(Main.java:959)
    Caused by: java.lang.NullPointerException
    at com.xxx.MyLoggerAccessor.getLogInstance(MyAccessor.java:47)
    at com.xxx.MyBeanLoader.loadAppCtx(MyBeanLoader.java:75)
    at com.xxx.MyBeanLoader.getInstance(MyBeanLoader.java:42)
    at com.xxx.MyAccessor.getId(MyAccessor.java:32)
    at com.xxx.MyPlugin.stop(MyPlugin.java:113)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$3.run(BundleContextImpl.java:1040)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:1036)
    … 20 more

  213. Govind says:

    March 5th, 2009 at 3:47 pm (#)

    Hi Patrick

    I found the root cause of problem is exception is java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

    I read a document
    at
    http://book.javanb.com/eclipse-rich-client-platform-designing-coding-and-packaging-java-applications-oct-2005/ch20lev1sec5.html

    where it was mentioned the xalan.jar has same packages the as found in jre . so it gives ClassCastException

    as i use the xalan -2.7.0.jar

    And as suggest i used import packages for
    javax.swing,
    javax.xml.parsers,
    javax.xml.transform,
    javax.xml.transform.dom,
    javax.xml.transform.stream,
    org.apache.commons.logging,
    org.apache.commons.logging.impl,
    org.apache.tools.ant.filters,
    org.apache.xerces.dom,
    org.apache.xerces.parsers,
    org.apache.xml.serialize

    But still i am having ClassCastException ,as i think its becoz its using jre library

    And my application is complied with xalan2.7.0 jar

    How to solve the problem i dont want to change the version

    Thanks and Regards
    Govind R

  214. Patrick says:

    March 8th, 2009 at 5:45 pm (#)

    Hi Gavind,

    You may want to try to package Xalan as it’s own plug-in and give it a version number (2.7.0). Then in your regular plug-in, switch from Imported Packages to Required Plugins. Specify your Xalan plug-in as a dependency and add a version qualifier (right-click on dependency) to force the plug-in to use Xalan 2.7.0.

    Let me know how it goes.

    — Patrick

  215. Govind says:

    March 9th, 2009 at 2:11 pm (#)

    Hi Patrick

    I did ads u said i created a plugin if the jar and adding in the dependencies gave
    xerces_impl;bundle-version=”[2.6.2,2.6.2]“;visibility:=reexport

    But now when in run as product it gives
    java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

    Previously it happened only if i had packaged it as product.

    It is referring from rt.jar of jre com.sun.* package
    I am going crazy with this problem.

    Thanks and Regards
    Govind

  216. Patrick says:

    March 9th, 2009 at 4:30 pm (#)

    Hi Govind,

    Have you thought about trying to bring over the Xerces support from an Eclipse install of the correct version? You would need:

    org.apache.xerces
    org.apache.xml.resolver
    org.apache.xml.serializer

    I only ask this because Eclipse seems to function well with these plug-ins, and it may work for you as well.

    — Patrick

  217. Govind says:

    March 9th, 2009 at 6:07 pm (#)

    Hi Patrick,

    I have xerces 2.8.0 jar dependencies in eclipse which is the dependency of wst.core.

    When i run the application it gives the above exception.and its using the class present in jre as said.

    How can we force the applictaion to use the jars of version i specified in path.

    The same project works fine in eclipse 3.4.
    But right now i can’t upgrade.. :(

    Any solution

    Thanks and Regards
    Govind R.

  218. Patrick says:

    March 9th, 2009 at 10:19 pm (#)

    Hi Govind,

    My understanding was that your application was running fine inside of Eclipse but not when you exported it. Is that correct?

    If so, you may want to *copy* the Xerces-related plug-ins from your Eclipse install into your build target (baseLocation in your build.properties) files.

    If you’re not able to run the application inside of Eclipse, we should probably start there and not worry about the build.

    — Patrick

  219. Stefanko says:

    March 10th, 2009 at 10:40 am (#)

    Hi Patrick!

    Thanks a lot for your example. It works fine and it was very helpful for my project headless build process.
    But I have one more question: how could I build only a part of the project in headless build? (Not the whole.)

    Thanks and Regards
    Stefanko L.

  220. Patrick says:

    March 10th, 2009 at 4:25 pm (#)

    Hi Stefanko,

    To build part of a project, you’ll need to build a feature instead of a product. To build a feature, you’ll need to comment out the “product” entry in the build.properties file and add an allElements.xml file to your build files (same directory as build.properties).

    You can copy the allElements.xml file from the org.eclipse.pde.build plug-in and you then replace the ids in the file with the id of your feature.

    If you’d like some help getting this working, feel free to email me.

    — Patrick

  221. Govind says:

    March 15th, 2009 at 5:52 pm (#)

    Hi Patrick,

    i had done that but its not working.

    I think i problem was with the eclipse which i was using..
    I have upgraded the eclipse to 3.4.
    Every thing is working fine..

    Thanks and Regards
    Govind R

  222. Govind R says:

    March 21st, 2009 at 7:26 pm (#)

    Hi Patrick..

    I getting a red square mark with project image in my cp product.. i am using eclipse 3.4

    How can solve it..

    Please help..

    Regards
    Govind R

  223. Patrick says:

    March 22nd, 2009 at 2:54 pm (#)

    Hi Govind,

    Usually a red square means that an icon is missing. Make sure that your icons are included in your build.properties files for each plug-in.

    — Patrick

  224. Michael says:

    April 13th, 2009 at 6:48 pm (#)

    Patrick,

    I’m using 3.3.1.1 and when I go to the archive page to download the RCP Delta Pack, all I see is RCP SDK along with the RCP runtime binaries.

    I read the detailed description of the RCP SDK and it says that it includes the RCP Delta pack, but I’m getting the java.io.EOFException which you previously mentioned was due to missing the RCP Delta pack.

    Can you point me to where I could find it?

    Thanks

  225. Patrick says:

    April 13th, 2009 at 6:57 pm (#)

    Hi Michael,

    The RCP Delta Pack is the last link in the RCP SDK section. Confusing, I know. In the 3.4 builds they give the Delta Pack it’s own section.

    And you definitely need the Delta Pack because it contains the launchers. There is a lot of overlap between the Delta Pack and the SDK, but the launchers are only available in the Delta Pack. When PDE Build can’t find the launcher it throws an incredibly unhelpful EOFException.

    — Patrick

  226. Max says:

    April 20th, 2009 at 1:58 pm (#)

    Hi Patrick,

    first of all thank you for article… it allready helped a lot.

    I am trying to run a simple headless-build using pde build. I put the project folders of the features & plugins i want to build in the directory of the “allElements.xml” and “custom[Assembly|Targets].xml”.

    Running the script i get this error all the time:
    BUILD FAILED
    E:\eclipse-modeling\eclipse\plugins\org.eclipse.pde.build_3.4.1.R34x_v20081217\s
    cripts\build.xml:24: The following error occurred while executing this line:
    E:\eclipse-modeling\eclipse\plugins\org.eclipse.pde.build_3.4.1.R34x_v20081217\s
    cripts\build.xml:64: The following error occurred while executing this line:
    E:\Studium\6. Semester\AG Engels\workspace_test_build\build\customTargets.xml:12
    : The following error occurred while executing this line:
    E:\Studium\6. Semester\AG Engels\workspace_test_build\build\allElements.xml:16:
    The following error occurred while executing this line:
    E:\eclipse-modeling\eclipse\plugins\org.eclipse.pde.build_3.4.1.R34x_v20081217\s
    cripts\genericTargets.xml:88: Unable to find feature: feature1.

    Why can’t he find my feature? I am veryfing the paths before so i can’t understand it.

    Thank you for any help.

  227. Patrick says:

    April 20th, 2009 at 4:33 pm (#)

    Hi Max,

    The projects to be built should be in a directory pointed to by the buildDirectory property. Also plug-ins should be in a “plugin” subdirectory and features should be in a “features” subdirectory.

    — Patrick

  228. Chris says:

    April 24th, 2009 at 9:45 pm (#)

    Hi Patrick,

    This is a wonderful tutorial. Thanks for the insight into what can be a complicated process!

    I have an almost identical problem to one posted earlier in the thread: http://rcpquickstart.com/2007/06/06/getting-started-with-pde-build/#comment-2613.

    My output is as follows:

    pde-build:
    [echo] “eclipseLocation= C:\eclipse_images\eclipse-rcp-ganymede-SR1-win32\e
    clipse”
    [echo] “baseLocation= C:\eclipse_images\eclipse-rcp-ganymede-SR1-win32\ecli
    pse”
    [java] Buildfile: C:\eclipse_images\eclipse-rcp-ganymede-SR1-win32\eclipse\
    \plugins\\org.eclipse.pde.build_3.4.1.R34x_v20080805\\scripts\\productBuild\\pro
    ductBuild.xml
    [java]
    [java] main:
    [java]
    [java] preBuild:
    [java]
    [java] preSetup:
    [java]
    [java] checkLocalMaps:
    [java]
    [java] getMapFiles:
    [java] [concat] No existing resources and no nested text, doing nothing
    [java]
    [java] postSetup:
    [java]
    [java] checkLocalBase:
    [java]
    [java] getBaseComponents:
    [java]
    [java] generateFeature:
    [java]
    [java] fetch:
    [java]
    [java] generateFeature:
    [java]
    [java] BUILD FAILED
    [java] C:\eclipse_images\eclipse-rcp-ganymede-SR1-win32\eclipse\plugins\org
    .eclipse.pde.build_3.4.1.R34x_v20080805\scripts\productBuild\productBuild.xml:25
    : The following error occurred while executing this line:
    [java] C:\eclipse_images\eclipse-rcp-ganymede-SR1-win32\eclipse\plugins\org
    .eclipse.pde.build_3.4.1.R34x_v20080805\scripts\productBuild\productBuild.xml:53
    : java.lang.NullPointerException
    [java]
    [java] Total time: 0 seconds

    BUILD FAILED
    C:\temp\build\build.amd.xml:151: Java returned: 13

    Total time: 10 seconds

    I am also using Windows Server 2003. I have my baseLocation set to my eclipseLocation. From what I understand this should not be a problem. I have double checked that I have RCP SDK and delta pack installed, which seemed to be the culprit in the case I have linked to from above.

    You had also mentioned in your response that spaces in the path could cause issues with Ant, but I have made sure I have removed those as well.

    Would you happen to have any suggestions on what I might try next?

    Regards,
    Chris

  229. Patrick says:

    April 24th, 2009 at 10:15 pm (#)

    Hi Chris,

    It definitely seems related to your target platform location (baseLocation property). When you say you have the RCP SDK and Delta Pack installed, do you mean you extracted them into your regular Eclipse installation?

    If I were you, I’d set up another directory for the target platform. Set the “base” property to this directory, and “baseLocation” should be “${base}/eclipse”.

    Or if you really want to build against the Eclipse install itself, feel free to send me your properties file by email, and I’d be happy to take a look.

    — Patrick

  230. Lais Neves says:

    April 27th, 2009 at 12:30 pm (#)

    Hi Patrick,

    I tested your example and after some annoying configuration problems, it worked fine. Now I would like to know how I should proceed if I want to build a feature project with others plugins added to it? do you have an example?

    Thanks,

    Lais

  231. Patrick says:

    April 27th, 2009 at 5:12 pm (#)

    Hi Lais,

    Do you mean you want to build a feature instead of a complete product? If so, see my answer to Stefanko on March 10. One thing I forgot to point out was that you need to change the PDE build script from productBuild.xml to build.xml. You can find the build.xml file one directory up from the productBuild.xml file.

    And here’s a newsgroup post showing how to fill in the allElements.xml file:

    http://dev.eclipse.org/mhonarc/lists/pde-build-dev/msg00673.html

    Hope this helps,

    — Patrick

  232. Kai says:

    May 15th, 2009 at 1:17 pm (#)

    Hi Patrick,

    I download you example and tryed it. it works very well. but now I want to take some changes on it.

    I want set baseLocation and eclipseLocation with environment variable like following:
    “baseLocation = ${env.myEclipseLocation}
    eclipseLocation = ${env.myEclipseLocation}”

    and the value of myEclipseLocation is “F:/PROJEKte/eclipse3.4.1/eclipse/” where the eclipse installed.
    I also add in build.xml file, but when I start to build , I get the following errors :

    clean:
    init:
    pde-build:
    [java] Buildfile: F:/PROJEKte/UnITeD/eclipse3.4.1/eclipse/plugins/org.eclipse.pde.build_3.4.1.R34x_v20080805/scripts/productBuild/productBuild.xml
    [java] main:
    [java] preBuild:
    [java] preSetup:
    [java] checkLocalMaps:
    [java] getMapFiles:
    [java] [concat] No existing resources and no nested text, doing nothing
    [java] postSetup:
    [java] checkLocalBase:
    [java] getBaseComponents:
    [java] generateFeature:
    [java] fetch:
    [java] generateFeature:
    [java] BUILD FAILED
    [java] F:\PROJEKte\UnITeD\eclipse3.4.1\eclipse\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scripts\productBuild\productBuild.xml:25: The following error occurred while executing this line:
    [java] F:\PROJEKte\UnITeD\eclipse3.4.1\eclipse\plugins\org.eclipse.pde.build_3.4.1.R34x_v20080805\scripts\productBuild\productBuild.xml:53: java.lang.NullPointerException
    [java] Total time: 0 seconds

    BUILD FAILED
    F:\PROJEKte\UnITeD\workspace_for_test\com.rcpquickstart.helloworld.build\build.xml:58: Java returned: 13

    if I set baseLocation with ${env.myEclipseLocation}, and eclipseLocation with “F:/PROJEKte/eclipse3.4.1/eclipse/” like following:

    “baseLocation = ${env.myEclipseLocation}
    eclipseLocation = F:/PROJEKte/eclipse3.4.1/eclipse/”
    it works.

    could you please help me, how can I set the both variable with the same environment variable
    Thanks,

    Kai

  233. Patrick says:

    May 15th, 2009 at 9:21 pm (#)

    HI Kai,

    This may be caused by the order in which the variables are evaluated. I’m assuming that your Eclipse installation contains the correct version of both the RCP Runtime and Delta Pack.

    One thing you could try is to pull the “eclipseLocation” property out of the build.properties file and define it at the beginning of the build.xml file. Something like:

    Hope this helps,

    — Patrick

  234. Kai says:

    May 20th, 2009 at 2:53 pm (#)

    Hello Patrick,

    thanks a lot, it works now.
    I have another question, how can I disable some output while building, it display too much unneccessery information like :

    **********************************************
    @dot:
    [javac] Compiling 23 source files to F:\….\temp.folder\@dot.bin
    [javac] Compiling 23 source files to F:\….\temp.folder\@dot.bin
    [javac] Compiling 23 source files to F:\….\temp.folder\@dot.bin
    [javac] Compiling 23 source files to F:\….\temp.folder\@dot.bin
    [javac] Compiling 23 source files to F:\….\temp.folder\@dot.bin
    [javac] Compiling 23 source files to F:\….\temp.folder\@dot.bin
    [javac] Compiling 23 source files to F:\….\temp.folder\@dot.bin
    ************************************************

    is it possible to disable the above output?

    kind regard
    Kai

  235. Patrick says:

    May 20th, 2009 at 8:51 pm (#)

    Hi Kai,

    Try commenting out the “javacVerbose” property in your build.properties file.

    — Patrick

  236. Govind says:

    May 21st, 2009 at 3:39 pm (#)

    Hi Patrick

    Recently i upgraded java version from 1.5 to 1.6.
    I Use eclispe 3.4.

    I use Xml transformer to read the contents of the file.

    Now when i run my rcp – product it give error when

    Source source = new DOMSource(MyDocument);
    StreamResult result = new StreamResult(newStringWriter());
    Transformer xformer = TransformerFactory.newInstance().newTransformer();
    xformer.transform(source, result);
    String xmlString = result.getWriter().toString();

    Its gives me

    ERROR: ‘Not implmented in this version’
    javax.xml.transform.TransformerException: org.w3c.dom.DOMException: Not implmented in this version at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:717)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)

    Please help..

    I use javax.xml_1.3.4.v200806030440.jar of eclipse.
    Is there way where i can i ask to run with this rather than jre.

    Regards
    Govind R

  237. Patrick says:

    May 21st, 2009 at 5:51 pm (#)

    Hi Govind,

    I haven’t dealt with this myself, but these types of issues can sometimes be solved with the org.osgi.framework.bootdelegation configuration property. You might want to ask about this on the Eclipse Platform newsgroup.

    — Patrick

  238. Kai says:

    May 25th, 2009 at 8:06 am (#)

    Hello Patrick,

    thanks for you answer, I tried to commenting out the javacVerbose” property, and also set javacDebugInfo to false, it does’t work. the output contains still too much unneccessery information like
    ************************************
    109. WARNING in F:\Project\src\com\util\StringList.java (at line 28)
    private ArrayList clArrayList = new ArrayList();
    *************************************

  239. Kai says:

    May 25th, 2009 at 8:28 am (#)

    Hi, Patrick

    I added “-nowarn” to compilerArg, und it works now.

    kind regard
    kai

  240. Govind says:

    May 26th, 2009 at 7:25 am (#)

    Hi Patrick…
    Thanks ,. Actually i changed the parsers used its working fine.

    Regards
    Govind R

  241. Govind says:

    May 26th, 2009 at 7:36 am (#)

    Hi Patrick

    I am trying to automate the build for my RCP product.

    I have followed the procedure
    http://aspsp.blogspot.com/2008/02/maven-eclipse-rcp-product-build-at-last.html

    I am getting one error: I use Eclipse 3.4
    Any Clue??

    Regards
    Govind

  242. Govind says:

    May 26th, 2009 at 8:39 am (#)

    Hi Parick

    Error is

    But I am using eclipse 3.4 and getting error when mvn clean install -e

    java.lang.NoClassDefFoundError: org/eclipse/equinox/launcher/Main
    Caused by: java.lang.ClassNotFoundException: org.eclipse.equinox.launcher.Main
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    Could not find the main class: org.eclipse.equinox.launcher.Main. Program will exit.
    Exception in thread “main”
    [INFO] ————————————————————————
    [ERROR] BUILD ERROR
    [INFO] ————————————————————————
    [INFO] Error returned by PDE build. Exit code: 1
    [INFO] ————————————————————————
    [INFO] Trace
    org.apache.maven.lifecycle.LifecycleExecutionException: Error returned by PDE build. Exit code: 1
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Error returned by PDE build. Exit code: 1
    at org.codehaus.mojo.pde.AbstractEclipsePDEMojo.executeCommandLine(AbstractEclipsePDEMojo.java:277)
    at org.codehaus.mojo.pde.EclipsePDEMojo.execute(EclipsePDEMojo.java:102)
    at org.codehaus.mojo.pde.EclipsePDEExtMojo.execute(EclipsePDEExtMojo.java:48)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
    … 16 more
    [INFO] ————————————————————————
    [INFO] Total time: 40 seconds
    [INFO] Finished at: Tue May 26 12:59:46 IST 2009
    [INFO] Final Memory: 20M/36M
    [INFO] ————————————————————————

  243. Patrick says:

    May 26th, 2009 at 2:18 pm (#)

    Hi Govind,

    This error means that the launcher bundle cannot be found. There is a property for the Equinox launcher plugin version at the top of the build.properties file. Make sure it matches the version number in you Eclipse install.

    — Patrick

  244. Govind says:

    June 5th, 2009 at 2:28 pm (#)

    Hi Patrick..

    Sorry for replying late..

    In my buildConfiguration folder i have build.properties which took from eclipse.. that doesn’t have
    property for the Equinox launcher plugin version.

    And in my pom.xml

    E:/eclipse
    My.product
    3.4.0.v20080604

    The pde is build version is of org.eclipse.pde.build_3.4.0.v20080604 plugin.

    Thanks and Regards
    Govind R.

  245. Govind says:

    June 5th, 2009 at 2:39 pm (#)

    Hi Patrick..

    In my RCP product i have create with template with standalone RCP application with an intro with dynamic content.

    So by default i got to controls on screen..

    I added one more control with name Workbench under defaults.

    In root.xhtml i added


    MyWorkbench

    When i click on the image it doesn’t switch to launch bar ..and shows the project like eclipse does. This i copied from eclipse intro.

    Please help me this urgent..
    Regards
    Govind.

  246. Patrick says:

    June 5th, 2009 at 4:39 pm (#)

    Hi Govind,

    However you launching the build, you need to make sure that the classpath includes the org.eclipse.equinox.launcher bundle. That’s what is causing the problem.

    — Patrick

  247. Patrick says:

    June 5th, 2009 at 4:40 pm (#)

    Hi Govind,

    However you launch PDE Build, you need to make sure that the org.eclipse.equinox.launcher bundle is in your classpath. That is what’s causing the problem.

    — Patrick

  248. Patrick says:

    June 5th, 2009 at 4:41 pm (#)

    Hi Govind,

    I don’t have a lot of experience with the Intro framework, so I’m sorry to say I don’t have a quick answer for you. Maybe you could ask this question on the Eclipse newsgroups.

    — Patrick

  249. Govind says:

    June 5th, 2009 at 6:27 pm (#)

    Hi Patrick

    Thanks for the quick reply for both the queries.

    I will check the first query and let u know..

    Thanks and Regards
    Govind.

  250. kai says:

    June 18th, 2009 at 12:39 pm (#)

    Hello Patrick,

    I’m trying to set the window image in our application, I add the fowllowing line in the plugin.xml file

    “../ProjectB/icons/smallicon.png” is the relative path to the icon file. when I start application via eclipse, the image appears in the upper left hand corner of product windows, but after headless build, wenn I start application via exe file, a red image apears instead of smallicon.png. what is the problem?

    kind regard
    Kai

  251. kai says:

    June 18th, 2009 at 1:41 pm (#)

    Hello Patrick,

    there is some error in my last post, again.

    I’m trying to set the window image in our application, I add the fowllowing line in the plugin.xml file:

    *****************************************************

    *****************************************************

    “../ProjectB/icons/smallicon.png” is the relative path to the icon file. when I start application via eclipse, the image appears in the upper left hand corner of product windows, but after headless build, wenn I start application via exe file, a red image apears instead of smallicon.png. what is the problem?

    kind regard
    Kai

  252. kai says:

    June 18th, 2009 at 1:44 pm (#)

    I don’t know why this line disapperas, I write it again without angle brackets
    ******************************************************
    property name=”windowImages” value=”icons/myImage.gif”
    ******************************************************

  253. Patrick says:

    June 18th, 2009 at 7:55 pm (#)

    Hi Kai,

    Can you verify that the “icons” folder is checked in your build.properties file? If this folder is not being included in your build then you will get a red square when you export your product.

    — Patrick

  254. kai says:

    June 23rd, 2009 at 9:55 am (#)

    Hi Patrick,

    I don’t how to check “icon” folder in build.properties, but I include the image file in menifest, it works now. thanks a lot for your reply.

    kind regard
    kai

  255. Kai says:

    September 24th, 2009 at 7:35 am (#)

    Hi Patrick,

    I want now build a rcp plug-in, but not the product. how can I modify these sripts, so that I only build the plug-ins or features.

    kind regard
    kai

  256. Patrick says:

    September 24th, 2009 at 8:59 am (#)

    Hi Kai,

    Here is what you need to do:

    1. Comment out the product entry in the build.properties file.
    2. Change the PDE build script from productBuild.xml to build.xml. You can find the build.xml file one directory up from the productBuild.xml file.
    3. Copy allElements.xml from the org.eclipse.pde.build plug-in and replace the ids in the file with the id of your feature.

    Here is an example of a filled out allElements.xml file.

    http://dev.eclipse.org/mhonarc/lists/pde-build-dev/msg00673.html

    Please let me know if you need any more help getting this working.

    — Patrick

  257. Marius says:

    October 2nd, 2009 at 1:44 am (#)

    Hi Patrick,

    I used your example and found it very useful. Using eclipse 3.5, managed to build the feature in the example.

    Build is successful, but no executable file exists in the archive. Could you please tell me what the problem might be?

    I am using eclipse 3.5 for both ‘baseLocation’ and “eclipseLocation”.

    Regards,
    Marius

  258. Marius says:

    October 2nd, 2009 at 2:04 am (#)

    Hi Patrick,

    I have also tried using as ‘base’ a different path, which contain the RCP Runtime Binary and the DeltaPack.
    Used the following versions:

    1.) RCP deltapack – 3.3.1.1

  259. Marius says:

    October 2nd, 2009 at 2:07 am (#)

    RCP Runtime Binary – 3.4.1

    2.) RCP deltapack – 3.4
    RCP Runtim Binary – 3.4

    In both case, the same output when building:

    [java] BUILD FAILED
    [java] D:\development\eclipse\plugins\org.eclipse.pde.build_3.5.0.v20090527-1800\scripts\productBuild\productBuild.xml:36: The following error occurred while executing this line:
    [java] D:\development\eclipse\plugins\org.eclipse.pde.build_3.5.0.v20090527-1800\scripts\productBuild\productBuild.xml:64: Unable to find feature “org.eclipse.rcp” with version in range [3.5.0.v20090519-9SA0FwxFv6x089WEf-TWh11,3.5.0.v20090519-9SA0FwxFv6x089WEf-TWh11].
    [java] Total time: 1 second

    Thanks,
    Marius

  260. Marius says:

    October 2nd, 2009 at 7:09 am (#)

    Succes! :)

    The problem was that I was using a different version of Deltapack and RCP Runtime Library. If Eclipse 3.5 is used for the PDE Build, also the target platform (Deltapack + RCP Runtime Library) must be 3.5.

    1.(wrong): When using 3.4 or smaller, plugin versions do not correspond –> error in build.

    2.(wrong): When using Eclipse 3.5 to execute the PDE build AND target platform, the zip archive(containing the plugins and the features) is generated, but NO executable.

    —————————————————–

    3.(success!): Using Eclipse 3.5 as base platform and Deltapack 3.5 + RCP Runtime Binary 3.5 –> archive created, containing also the executable.

    Regards,
    Marius

  261. Patrick says:

    October 2nd, 2009 at 1:20 pm (#)

    Hi Marius,

    I’m glad you were successful getting the build working. One clarification, though. The IDE and target platform do not have to match.

    The issue is that the feature versions are embedded in the product configuration file. So, for example, if you add the org.eclipse.rcp feature to your product configuration, the current version in the target platform is recorded. It doesn’t appear in the editor, but you can see it if you open the file in an XML editor. Then if you switch to a target platform containing a different version of the feature, the build will fail.

    I hope this makes things clearer.

    — Patrick

  262. Joep says:

    December 10th, 2009 at 11:25 pm (#)

    Hi Patrick,

    We have our PDE build running fine and we deploy the RCP app as a JNLP app.
    Now I’m trying to add a SingleInstanceRunner.

    That’s where the trouble starts.
    In order to make the Eclipse launch work, I have created a JNLP OSGi bundle. When launching from Eclipse, this works fine (the lookup of the service fails and I ignore the Single Instance Service registration).

    Now I’m wondering how to make this work in the deployment environment.
    If I remove the import package from the Manifest during the build, the compilation will fail.

    So I’m thinking I’ll ship my jnlp.jar, but I need to make sure that I do not have my rcp bundle load classes from my JNLP bundle, as that will result in classloader problems when WebStart invokes the single instance runner.
    So I’m trying to shoe-horn the following system property in the JNLP file:
    org.osgi.framework.bootdelegation=javax.jnlp.*
    My thinking is that with that the framework will delegate to the boot classloader which should be the one provided by WebStart.

    The launch.ini seems to be the appropriate place, but the entry does not appear in the JNLP file.
    Do I need to remove the “org.osgi.*=@null” entry?
    Am I on the right track with this?

    We can’t be the first ones who want to use a SIS with RCP over JNLP, but I cannot find much documentation for this. :(

    Thanks in advance for your help,

    Joep

  263. Patrick says:

    December 11th, 2009 at 12:41 pm (#)

    Hi Joep,

    I’m sorry to say I haven’t worked with JNLP before. You might have better luck asking on the RCP mailing list, if you haven’t already.

    Sorry I can’t be more help with this.

    — Patrick

  264. Joep says:

    December 15th, 2009 at 9:30 pm (#)

    Turns out that the launch.ini file has nothing to do with the generated jnlp file.
    The launch.ini file is simply there to help run Equinox from a Jar. We’re using that to host the help pages from a web-server.

    I’m adding an additional property in the resources section of the JNLP file and adding the jnlp.jar as on the rcp bundle’s local classpath.

    Cheers,

    Joep

  265. Ashish says:

    December 22nd, 2009 at 2:24 am (#)

    Hi Patrick,
    I was using the pde-maven plugin for building my eclipse rcp app.Following is the pom entry for it:-

    org.codehaus.mojo
    pde-maven-plugin
    1.0-alpha-2-SNAPSHOT
    true

    ${pde.build.label}
    ${pde.java.source}
    ${pde.java.target}
    ${pde.pluginpath}
    ${pde.base}
    ${pde.baselocation}
    ${pde.baseos}
    ${pde.basews}
    ${pde.basearch}
    <!–win32,win32,x86–>

    ${pde.eclipseInstall}
    ${pde.product.finalname}
    ${pde.build.version}
    1.0.201.R35x_v20090715

    But I was getting the error
    java.lang.NoClassDefFoundError: org/eclipse/equinox/launcher/Main
    Caused by: java.lang.ClassNotFoundException: org.eclipse.equinox.launcher.Main
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Could not find the main class: org.eclipse.equinox.launcher.Main. Program will exit.
    I have tried googling a lot but with no success.As given in the comment above,Govind had got the same error.
    After a long hit and trial,I found that the problem was that due to that we have two jars in eclipse/plugins folder org.eclipse.equinox.launcher.source_1.0.201.R35x_v20090715.jar and org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar.When I removed the org.eclipse.equinox.launcher.source_1.0.201.R35x_v20090715.jar,it tried to find a org.eclipse.equinox.launcher.Main class in org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar and it finds that class in org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar and finally the problem got resolved.

    Posting it so that if anyone facing a same problem,it might be the reason for it.

  266. Georges says:

    January 7th, 2010 at 8:59 am (#)

    Hi Patrick,

    You helped us two years ago to set up our PDE build process for Europa.
    We want to upgrade our Eclipse platform from Europa to Galileo. Our headless PDE build process works fine with Europa but fails with Galileo. Your example, updated for Eclipse 3.5.1 builds with no problem on our Galileo.

    On our project, the build process stops on a generateFeature step with Java error code 13 and we get the following error message: Unable to find feature “feature_com.xxx.metatest.jniusbasic” with version in range [1.0.0,1.0.0]

    I am totally stuck on this! I send you the build log file through email. Could you please give us some direction or some point to look at?

    Thanks a lot in advance for your time!

    Georges

  267. Patrick says:

    January 8th, 2010 at 1:06 pm (#)

    For anyone following along, Georges problem was fixed by updating the version number of the org.eclipse.rcp feature in the product definition.

    This is a common problem when upgrading from one version of RCP to another. The version number is embedded in the product definition and needs to be changed when upgrading. The simplest way to do this is to remove the org.eclipse.rcp feature from your product and then re-add it.

    Hope this helps anyone facing a similar problem.

    — Patrick

  268. Markus says:

    January 25th, 2010 at 3:06 am (#)

    Hello Patrick,

    thank you for this great guide it helped me a lot! It’s hard to find usefull help if it comes to pde and headless building so I’m glad you took the time to explain the most important part here.

    But I still have a problem. The build works and everything, but I want to keep the generated tmp dir or in particular one of the plugins in it. I copyied the customTargets.xml into my configuration dir and deleted the clean target and it’s call (postGenerate target)but it still deletes the tmp dir at the end of the build.

    Do you have an advice how to do this?

  269. Patrick says:

    January 25th, 2010 at 10:19 am (#)

    Hi Markus,

    I’ve never tried to do this, but you might want to look at adding some logic to the customTargets.xml file to copy the tmp directory someplace before it’s deleted.

    Also, it might be worthwhile talking about what you need to save in the tmp directory, and if there’s another way to meet your needs. If you want to talk about it offline, feel free to send me an email.

    Regards,

    — Patrick

  270. Markus says:

    January 29th, 2010 at 4:12 am (#)

    Hi Patrick,

    thank you for your answer.

    My situation:
    The headless build is beeing started from within the plugin project with the .product. Therefore the headless build can’t find the defining plugin (the one with the .product as it is not build yet and the headless build is taking place in it). Currently I added the root path of the project as a plugin path to the build.properties so the pde builds a bundle of the project automatically before the headless build itself begins and then grabs this bundle during the build.
    The automatically build bundle is located temporary in a tmp directory. After the headless build the tmp directory is beeing cleaned so the bundle is deleted. I want to avoid this as I want to keep this bundle.

  271. Patrick says:

    January 29th, 2010 at 1:08 pm (#)

    Hi Markus,

    Perhaps one option would be to move the build configuration area out of the product bundle. I usually create a com.mycompany.myapp.build project for each application. This project is not a bundle, just a regular project that contains build-related files such as build.properties. This project also serves as the config area for PDE Build.

    I’ve never had any problems with this approach, and you definitely shouldn’t have to go through the process you describe. If creating a separate build project isn’t an option, I guess you’ll need to try the solution I suggest above (custom task to copy the tmp folder).

    Regards,

    — Patrick

  272. Markus says:

    February 1st, 2010 at 2:59 am (#)

    Hey Patrick,

    no, sadly, an additional project is not an option. Your suggestion about the custom task could be it.
    However I solved this in a different way. As we use maven 2 to automatically build the projects I used the maven bundle plugin to build the bundle of the project on mvn install and after that the build.xml (headless build) is executed using the exec-maven-plugin. The headless build then uses the build bundle.

    All in all it was quite a fight but thanks to your article and the comments here it was less a hell than it could be.

    Thanks again :)

  273. Diana says:

    March 1st, 2010 at 4:35 am (#)

    Hi Patrick,

    I use a feature-build that manages more then 60 eclipse plugins. When somebody makes changes on one plugin, the build process is triggered for all the plugins in the feature.
    Do you know if there is a way to customize the headless builds in such a way that only the plugins changed through the last commit are re-build?

    Thanks,
    Diana.

  274. Patrick says:

    March 1st, 2010 at 1:24 pm (#)

    Hi Diana,

    PDE Build can build a specific plug-in. You can use the topLevelElementType and topLevelElementId properties to set this up, and I imagine you could use variable substitution in an Ant script to build one or more plug-ins that have changed.

    Whether this will work or not depends on your goals for the build. If you’re building to verify the process and run unit tests, this shouldn’t be a problem. If you’re building to deploy (e.g. to a p2 repository), then the feature version will need to be incremented every time a plug-in is built, even if this is only the qualifier section.

    Another alternative might be to create more fine-grained features.

    — Patrick

  275. Diana says:

    March 2nd, 2010 at 7:51 am (#)

    Hi Patrick,

    Thank you very kindly for your answer, I have tried out your first suggestion on the build directory. More precisely I have changed the following 2 lines in the build.properties file.

    topLevelElementType = plugin
    topLevelElementId = de.inframe.synapse.client.framework

    The compilation seemed to work OK but at the assamble-step I received the following error:

    [java] init:
    [java] assembleElement:
    [java] Java Result: 13
    [echo] BUILD FAILED
    [echo] C:\builds\workspace\de.inframe.synapse.client.builder.simple\featurebuilder\build.xml:27: The following error occurred while executing this line:
    [echo] C:\builds\workspace\de.inframe.synapse.client.builder.simple\featurebuilder\build.xml:92: The following error occurred while executing this line:
    [echo] C:\builds\workspace\de.inframe.synapse.client.builder.simple\featurebuilder\customTargets.xml:12: The following error occurred while executing this line:
    [echo] C:\builds\workspace\de.inframe.synapse.client.builder.simple\featurebuilder\allElements.xml:16: The following error occurred while executing this line:
    [echo] C:\builds\workspace\de.inframe.synapse.client.builder.simple\featurebuilder\genericTargets.xml:134: The following error occurred while executing this line:
    [echo] java.io.FileNotFoundException: C:\builds\featurebuilder\assemble.de.inframe.synapse.client.framework.all.xml (Das System kann die angegebene Datei nicht finden)

    Do you have any clue why?

    Thanks again,
    Diana.

  276. Diana says:

    March 2nd, 2010 at 8:55 am (#)

    Hi again,

    Regarding my building issue problem, I have tried out this solution. (I will explain it in very short steps, and I need somebody to review it :) )

    1. in the build_directory/plugins update plugins that have been modified
    2. copy all unmodified plugins to the headless-eclipse/plugins directory
    3. run build (at this step all the plugins that eclipse finds in its “plugins” directory will be used in the build process i.e “Another singleton version selected” will appear for each unmodified plugin?- correct me if I’m wrong)

    What do you think about the above steps? Will I manage to avoid the compiling step for the unmodified plugins?
    ———————————————————–

    I have put in practice the steps described above and copied all of the jars generated by the feature build, unpacked them to eclipse plugins directory. For 2 plugins out of 62, eclipse doesn’t use the plugins from its directory but takes the 2 plugins from the buildDirectory :((
    Could it be that the 2 jars for haven’t been correctly build. After what details should I look in order to find the cause?

    Thank you!
    Regards,
    Diana.

  277. Patrick says:

    March 2nd, 2010 at 10:58 am (#)

    Hi Diana,

    It’s a common case to want to build on top of other resources that have already been built. And yes, moving these pre-built resources into your build target is the way to go. BTW, it’s generally not a good idea to use your Eclipse install as the build target (baseLocation property).

    It’s much better to create a separate directory and unpack the RCP SDK, RCP Delta Pack, and whatever you need into it. It’s also a good idea to create the build target from scratch during a build because (as you’ve seen) it can vary from build to build.

    As for the 2 plugins that it’s taking from the buildDirectory, I’m guessing these are neither of these is the plugin you’re trying to build. Is that right? Is there anything these two plug-ins have in common?

    — Patrick

  278. Diana says:

    March 8th, 2010 at 3:33 am (#)

    Hi Patrick,
    regarding the 2 plugins. They have the following in common: no plugin.xml exists for them. After I have generated a “dummy” plugin.xml, (added an EP then removed it).After redeploying the jars into eclipse/plugins, the 2 were recognised.

    Another question: when doing headless builds, are the plugins in the buildDirectory taken into consideration by eclipse with higher priority then the ones found in the eclipse/plugins directory.
    Example:
    1. I have deployed the de.inframe.synapse.client.jobmanager_3.0.0.beta-002.jar into eclipse/plugins.
    2. In the buildDirectory the same plugin project exists.
    When I run the build I the lines above in the log.

    [java] [eclipse.buildScript] Bundle de.inframe.synapse.client.jobmanager:
    [java] [eclipse.buildScript] Another singleton version selected: de.inframe.synapse.client.jobmanager_3.0.0.beta-002

    Does this mean that eclipse will use the plugin found in its eclipse/plugins directory. If yes, why gets this plugin recompiled?

    Thanks!
    Diana.

  279. Patrick says:

    March 8th, 2010 at 12:18 pm (#)

    Hi Diana,

    Based on my tests, it appears that the new version of the bundle (from source) is included in the distribution. As a best practice, I would avoid having the bundle in both places, though.

    — Patrick

Leave a Response