Getting started with PDE Build

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.

Advertisements

262 Responses to Getting started with PDE Build

  1. […] 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:

    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:

    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:

    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:

    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:

    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:

    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:

    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. 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. That should have been: “The test plugins are present and we are completely stumped.”

  11. pjpaulin says:

    Hi Channon,

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

    https://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:

    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:

    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:

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

  15. 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:

    Hi Johan and Georges,

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

    — Patrick

  17. Johan Asterholm says:

    The example works great! Thanks for a nice example.

    Regards Johan

  18. Johan Asterholm says:

    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:

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

  20. 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:

    Hi Georges,

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

    — Patrick

  22. 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:

    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:

    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:

    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:

    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:

    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:

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

  29. Georges Bachelier says:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    <?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:

    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:

    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:

    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:

    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:

    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:

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

    Regards,
    Avinash

  58. Tibor says:

    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:

    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:

    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:

    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:

    Hi Patrick,

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

    Thank you very much,
    Tibor

  63. Ramesh says:

    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:

    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. 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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    https://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:

    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:

    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:

    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:
    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:developpolarisdeploy2pluginscom.jobisjob.log@dot [java] [delete] Deleting directory c:developpolarisdeploy2pluginscom.jobisjob.logtemp.folder [java] properties: [java] init: [java] clean: [java] [delete] Deleting directory c:developpolarisdeploy2pluginsJiJLibtemp.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:developpolarisdeploy2pluginscom.jobisjob.logtemp.folder@dot.bin [java] [javac] Compiling 8 source files to c:developpolarisdeploy2pluginscom.jobisjob.logtemp.folder@dot.bin [java] [javac] [parsing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomjobisjoblibrarylogLevelPatternLayout.java – #1/8] [java] [javac] [parsing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomjobisjoblibrarylogLevelPatternParser.java – #2/8] [java] [javac] [parsing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingLogPlugin.java – #3/8] [java] [javac] [parsing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingLoggingPlugin.java – #4/8] [java] [javac] [parsing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginFileAppender.java – #5/8] [java] [javac] [parsing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogAppender.java – #6/8] [java] [javac] [parsing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogListener.java – #7/8] [java] [javac] [parsing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogManager.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:developpolarisdeploy2pluginscom.jobisjob.logsrccomjobisjoblibrarylogLevelPatternLayout.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 comjobisjoblibrarylogLevelPatternLayout.class – #1] [java] [javac] [completed c:developpolarisdeploy2pluginscom.jobisjob.logsrccomjobisjoblibrarylogLevelPatternLayout.java – #1/8] [java] [javac] [analyzing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomjobisjoblibrarylogLevelPatternParser.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 comjobisjoblibrarylogLevelPatternParser$2.class – #2] [java] [javac] [writing comjobisjoblibrarylogLevelPatternParser.class – #3] [java] [javac] [writing comjobisjoblibrarylogLevelPatternParser$1.class – #4] [java] [javac] [writing comjobisjoblibrarylogLevelPatternParser$StackTraceConverter.class – #5] [java] [javac] [completed c:developpolarisdeploy2pluginscom.jobisjob.logsrccomjobisjoblibrarylogLevelPatternParser.java – #2/8] [java] [javac] [analyzing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingLogPlugin.java – #3/8] [java] [javac] [reading org/osgi/framework/BundleContext.class] [java] [javac] [reading org/eclipse/core/runtime/CoreException.class] [java] [javac] [writing comtoolsloggingLogPlugin.class – #6] [java] [javac] [completed c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingLogPlugin.java – #3/8] [java] [javac] [analyzing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingLoggingPlugin.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 comtoolsloggingLoggingPlugin.class – #7] [java] [javac] [completed c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingLoggingPlugin.java – #4/8] [java] [javac] [analyzing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginFileAppender.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 comtoolsloggingPluginFileAppender.class – #8] [java] [javac] [completed c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginFileAppender.java – #5/8] [java] [javac] [analyzing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogAppender.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 comtoolsloggingPluginLogAppender.class – #9] [java] [javac] [completed c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogAppender.java – #6/8] [java] [javac] [analyzing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogListener.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 comtoolsloggingPluginLogListener.class – #10] [java] [javac] [completed c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogListener.java – #7/8] [java] [javac] [analyzing c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogManager.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 comtoolsloggingPluginLogManager.class – #11] [java] [javac] [writing comtoolsloggingPluginLogManager$PluginEventListener.class – #12] [java] [javac] [completed c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogManager.java – #8/8] [java] [javac] [8 units compiled] [java] [javac] [12 .class files generated] [java] [javac] ———- [java] [javac] 1. WARNING in c:developpolarisdeploy2pluginscom.jobisjob.logsrccomtoolsloggingPluginLogManager.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:developpolarisdeploy2pluginscom.jobisjob.log@dot [java] [delete] Deleting directory c:developpolarisdeploy2pluginscom.jobisjob.logtemp.folder@dot.bin [java] properties: [java] init: [java] build.jars: [java] properties: [java] init: [java] @dot: [java] [mkdir] Created dir: c:developpolarisdeploy2pluginsJiJLibtemp.folder@dot.bin [java] [javac] Compiling 26 source files to c:developpolarisdeploy2pluginsJiJLibtemp.folder@dot.bin [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryarrayArrayUtils.java – #1/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryarraytestTestArrayUtils.java – #2/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycryptBase32.java – #3/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycryptSecurityManager.java – #4/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycryptexceptionsSecurityManagerException.java – #5/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycrypttestTestSecurityManager.java – #6/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarydbDatabaseFactory.java – #7/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarydbTWebDatasourceFactory.java – #8/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarydbexceptionsDBException.java – #9/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryerrorErrorUtils.java – #10/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryfileFileUtils.java – #11/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryioBasePath.java – #12/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarylogLevelPatternLayout.java – #13/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarylogLevelPatternParser.java – #14/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarylogTLogFile.java – #15/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.java – #16/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailexceptionsMailException.java – #17/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailtestTestMail.java – #18/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailtestpojoTestPojo.java – #19/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarystringCharArraySet.java – #20/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarystringStringUtils.java – #21/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarystringtestTestStringUtils.java – #22/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarytestAll.java – #23/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryuuidUUIDGenerator.java – #24/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarywebfilterDataBasePoolConnectionFilter.java – #25/26] [java] [javac] [parsing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryweblistenerDBCPoolingListener.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryarrayArrayUtils.java – #1/26] [java] [javac] [reading java/lang/Comparable.class] [java] [javac] [writing comjobisjoblibraryarrayArrayUtils.class – #1] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryarrayArrayUtils.java – #1/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryarraytestTestArrayUtils.java – #2/26] [java] [javac] [reading java/lang/CharSequence.class] [java] [javac] [writing comjobisjoblibraryarraytestTestArrayUtils.class – #2] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryarraytestTestArrayUtils.java – #2/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycryptBase32.java – #3/26] [java] [javac] [reading java/lang/StringBuffer.class] [java] [javac] [writing comjobisjoblibrarycryptBase32.class – #3] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycryptBase32.java – #3/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycryptSecurityManager.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 comjobisjoblibrarycryptSecurityManager.class – #4] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycryptSecurityManager.java – #4/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycryptexceptionsSecurityManagerException.java – #5/26] [java] [javac] [reading java/io/ObjectOutputStream.class] [java] [javac] [reading java/io/ObjectInputStream.class] [java] [javac] [writing comjobisjoblibrarycryptexceptionsSecurityManagerException.class – #5] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycryptexceptionsSecurityManagerException.java – #5/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycrypttestTestSecurityManager.java – #6/26] [java] [javac] [reading java/lang/System.class] [java] [javac] [reading java/io/PrintStream.class] [java] [javac] [writing comjobisjoblibrarycrypttestTestSecurityManager.class – #6] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarycrypttestTestSecurityManager.java – #6/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarydbDatabaseFactory.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 comjobisjoblibrarydbDatabaseFactory.class – #7] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarydbDatabaseFactory.java – #7/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarydbTWebDatasourceFactory.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 comjobisjoblibrarydbTWebDatasourceFactory.class – #8] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarydbTWebDatasourceFactory.java – #8/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarydbexceptionsDBException.java – #9/26] [java] [javac] [writing comjobisjoblibrarydbexceptionsDBException.class – #9] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarydbexceptionsDBException.java – #9/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryerrorErrorUtils.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 comjobisjoblibraryerrorErrorUtils.class – #10] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryerrorErrorUtils.java – #10/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryfileFileUtils.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 comjobisjoblibraryfileFileUtils.class – #11] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryfileFileUtils.java – #11/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryioBasePath.java – #12/26] [java] [javac] [reading java/net/URL.class] [java] [javac] [writing comjobisjoblibraryioBasePath.class – #12] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryioBasePath.java – #12/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarylogLevelPatternLayout.java – #13/26] [java] [javac] [reading java/util/StringTokenizer.class] [java] [javac] [reading org/apache/log4j/spi/LoggingEvent.class] [java] [javac] [writing comjobisjoblibrarylogLevelPatternLayout.class – #13] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarylogLevelPatternLayout.java – #13/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarylogLevelPatternParser.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 comjobisjoblibrarylogLevelPatternParser$1.class – #14] [java] [javac] [writing comjobisjoblibrarylogLevelPatternParser$StackTraceConverter.class – #15] [java] [javac] [writing comjobisjoblibrarylogLevelPatternParser$2.class – #16] [java] [javac] [writing comjobisjoblibrarylogLevelPatternParser.class – #17] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarylogLevelPatternParser.java – #14/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarylogTLogFile.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 comjobisjoblibrarylogTLogFile.class – #18] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarylogTLogFile.java – #15/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.java – #16/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailexceptionsMailException.java – #17/26] [java] [javac] [writing comjobisjoblibrarymailexceptionsMailException.class – #19] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailexceptionsMailException.java – #17/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailtestTestMail.java – #18/26] [java] [javac] [writing comjobisjoblibrarymailtestTestMail.class – #20] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailtestTestMail.java – #18/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailtestpojoTestPojo.java – #19/26] [java] [javac] [writing comjobisjoblibrarymailtestpojoTestPojo.class – #21] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailtestpojoTestPojo.java – #19/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarystringCharArraySet.java – #20/26] [java] [javac] [writing comjobisjoblibrarystringCharArraySet$CharArraySetIterator.class – #22] [java] [javac] [writing comjobisjoblibrarystringCharArraySet.class – #23] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarystringCharArraySet.java – #20/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarystringStringUtils.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 comjobisjoblibrarystringStringUtils.class – #24] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarystringStringUtils.java – #21/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarystringtestTestStringUtils.java – #22/26] [java] [javac] [writing comjobisjoblibrarystringtestTestStringUtils.class – #25] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarystringtestTestStringUtils.java – #22/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarytestAll.java – #23/26] [java] [javac] [writing comjobisjoblibrarytestAll.class – #26] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarytestAll.java – #23/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryuuidUUIDGenerator.java – #24/26] [java] [javac] [reading java/util/Random.class] [java] [javac] [writing comjobisjoblibraryuuidUUIDGenerator.class – #27] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryuuidUUIDGenerator.java – #24/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarywebfilterDataBasePoolConnectionFilter.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 comjobisjoblibrarywebfilterDataBasePoolConnectionFilter.class – #28] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarywebfilterDataBasePoolConnectionFilter.java – #25/26] [java] [javac] [analyzing c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryweblistenerDBCPoolingListener.java – #26/26] [java] [javac] [reading javax/servlet/ServletContextEvent.class] [java] [javac] [writing comjobisjoblibraryweblistenerDBCPoolingListener.class – #29] [java] [javac] [completed c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryweblistenerDBCPoolingListener.java – #26/26] [java] [javac] [26 units compiled] [java] [javac] [29 .class files generated] [java] [javac] ———- [java] [javac] 1. WARNING in c:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryioBasePath.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibraryioBasePath.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjoblibrarymailMail.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:developpolarisdeploy2pluginsJiJLibsrccomjobisjob
  91. Patrick says:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    Thanks Patrick!

  121. Ronnie says:

    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:

    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. 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. 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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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. 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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    Hi Arne,

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

    — Patrick

  147. Arne says:

    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:

    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:

    Thanks anyway 🙂 .

  150. Bertrand says:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    Hi Patrick,

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

    Bertrand

  168. Peter Michaels says:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    Hi Suzan,

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

    — Patrick

  177. Suzan says:

    Hi Patrick,

    Thank you for quick reply!

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

    Suzan

  178. Peter Michaels says:

    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:

    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:

    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:

    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:

    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:

    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. […] – 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:

    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:

    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:

    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:

    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:

    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:

    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:

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

  192. Tobias says:

    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:

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

  194. Peter Michaels says:

    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:

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

  196. Scott Pelton says:

    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:

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

  198. philipp says:

    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:

    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:

    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:

    Hi philipp,

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

    — Patrick

  202. philipp says:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    Hi Kai,

    Try commenting out the “javacVerbose” property in your build.properties file.

    — Patrick

  236. Govind says:

    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:

    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:

    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:

    Hi, Patrick

    I added “-nowarn” to compilerArg, und it works now.

    kind regard
    kai

  240. Govind says:

    Hi Patrick…
    Thanks ,. Actually i changed the parsers used its working fine.

    Regards
    Govind R

  241. Govind says:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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:

    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. implantacion erp…

    […]Getting started with PDE Build « RCP Quickstart: Learn the Eclipse Rich Client Platform from the experts[…]…

  256. Med says:

    Hi all,
    who know the cause of this problem ?
    Let me explain you my use case :
    – I’m using a PDE headless build with ant commands to generate archives in p2 format.
    – The build process system is based on these files :
    • export.sh : this file export from SVN all features and plugins to be built (22 features and 42 plugins)
    • Build.sh : this file is used to launch the build with this command :
    $JAVA_EXE -jar $STW_SDK/plugins/org.eclipse.equinox.launcher_1.1.3.0.jar -application org.eclipse.ant.core.antRunner -buildfile $BASE_DIR/build.xml build -vmargs -Declipse.exitdata=””
    • Build.xml : This file build all features
    • allElements.xml : for p2 I added to the target name group.group.group
    • build. Properties : contain all build properties and specially 2 parameters for p2 (p2.gathering = true and p2.compress=true)
    • features.xml :this file contain the features to be build.
    – The build finish with no failures and I found 17 p2 archives generated correctly (each zip file contain 2 folders :plugins, features and 2 files content.xml,artifact.xml) but for 4 others archives, the zip generated is missing the “features” folder !!
    – I tried hard to identify the cause of this misbehavior but with no results .

    Can someone help me please ?

    best regards,
    Med.

  257. Patrick says:

    Hi Med,

    These types of build problems are really hard to diagnose. I would suggest looking at the most recent version of the sample projects which you can find here:

    http://www.modumind.com/2007/06/06/getting-started-with-pde-build/

    See if you can get that running and then apply the same techniques to your own projects. If you can’t get it running that way, let me know and we can work on it some more.

    You may also want to consider switching to Maven Tycho, which works much better in my opinion.

    — Patrick

  258. […] a previous post, I provided a set of projects that you could use to get a sample build running quickly. The idea […]

  259. chetan says:

    Hi Patrick,
    When i am trying to run the the build.xml for my project i am getting following error

    clean:
    [delete] Deleting directory C:\Users\chetank1\eclipse.build
    init:
    [mkdir] Created dir: C:\Users\chetank1\eclipse.build
    [mkdir] Created dir: C:\Users\chetank1\eclipse.build\plugins
    [mkdir] Created dir: C:\Users\chetank1\eclipse.build\features
    [copy] Copying 3 files to C:\Users\chetank1\eclipse.build\features
    pde-build:
    [java] Buildfile: E:\backup\eclipse\eclipse\eclipse\eclipse\plugins\org.eclipse.pde.build_3.7.0.v20110512-1320/scripts/productBuild/productBuild.xml
    [java] main:
    [java] preBuild:
    [java] preSetup:
    [java] checkLocalMaps:
    [java] getMapFiles:
    [java] postSetup:
    [java] checkLocalBase:
    [java] getBaseComponents:
    [java] processRepos:
    [java] preProcessRepos:
    [java] allElements:
    [java] allElementsDelegator:
    [java] transformRepos:
    [java] postProcessRepos:
    [java] generateFeature:
    [java] BUILD FAILED
    [java] E:\backup\eclipse\eclipse\eclipse\eclipse\plugins\org.eclipse.pde.build_3.7.0.v20110512-1320\scripts\productBuild\productBuild.xml:35: The following error occurred while executing this line:
    [java] E:\backup\eclipse\eclipse\eclipse\eclipse\plugins\org.eclipse.pde.build_3.7.0.v20110512-1320\scripts\productBuild\productBuild.xml:69: Unable to find element: C:\Users\chetank1\eclipse.build\features\Test\Test.product.
    [java] Total time: 12 seconds
    [java] An error has occurred. See the log file
    [java] C:\Users\chetank1\workspace\.metadata\.log.

    BUILD FAILED

    Can u please help me in that…
    Waiting for your positive response

  260. Patrick says:

    The build process cannot locate your .product file which is specified in the build.properties file. Make sure that the location there corresponds to the actual location of the file.

  261. simple says:

    The Download link <> is broken. Where can I get the tutorial?
    Thanks

  262. Patrick says:

    Use the link here instead.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: