Lately I have been working on (and committing) a repository analyzer tool for p2. It is meant to help you validate your repository against known problems and common mistakes (missing version numbers, two IUs with the same ID/Version, etc…). After cleaning up the code I finally committed it. Within a few minutes of committing it, Andrew starting pinging me to let me know I introduced a compile error. (Thanks Andrew).
The offending lines where here:
and more precisely:
You see, while this may seem fine to all you Java 1.6 developers out there, p2 is set to run on CDC-1.1/Foundation-1.1 and JSE-1.4. I know in the Java SE space, 1.4 is long past end of life, but in the embedded space, it is still very common. (Remember, these embedded devices require much smaller VMs, otherwise we complain that our small devices are two slow /sluggish / expensive, etc…) — and p2 is a provisioning platform that operates just fine on embedded devices.
With Eclipse, you can set your Execution Environment (EE) and point to a variety of JDKs. This allows you to “single source” your code so the same code can run on a server with Java 1.6 installed and a small device with a Foundation VM. However, I don’t have a Foundation VM :-(.
Lucky for us, an EE description for several JDKs is available in the Eclipse CVS repository:
Once you checkout the project, you can add this to your list of known JREs
Now I get all the Java tooling (content assist, compile errors, etc…) for the Foundation 1.1 VMs.