Yeah, that works, but you may have available some JRE classes that
aren't available in a particular version. Plus the build needs to
force the compiler to produce the correct byte code. I'm already using
the below technique for Vex, but ideally, there needs to be a realy 1.4,
5.0, and 6.0 JDKs that are referenced so the appropriate libraries and
runtimes are referenced.
As Paul said these should be three different locations, and on the slave
since we have a different architecture they'll need to be defined per
slave. The master will need to point to it's versions, and the slaves
will need to point.
Maven seems to handle things by forcing the compiler to produce
appropriate byte code.
Dave
On 05/16/2010 08:35 PM, Nick Boldt wrote:
If you, in your build.properties file, set:
JAVA60_HOME=${JAVA_HOME}
JAVA50_HOME=${JAVA_HOME}
JAVA14_HOME=${JAVA_HOME}
and Hudson or Eclipse set JAVA_HOME for you, then you're golden.
Or have I missed something? Can't the individual builds define their
dependency on JAVA_HOME (be it from within Eclipse, via commandline
locally, or as defined by Hudson), and have the build jobs define what
JAVA_HOME to use by selecting the version of Java to use on that slave?
Nick
On 05/16/2010 10:20 AM, David Carver wrote:
I've got everything working now. However the PDE build systems are
going to have problems with the slave combination, because of the
reliance on the various JAVA14_HOME, JAVA_50, JAVA_60 environment
variables. Unless we set these as Environment variables by default on
the Slave machine so they point to the correct locations.
JAVA_HOME should be set by the selection of the JDK (i.e. Base Java 5.0
Installation, Base Java 6.0 Installation). The JAVA_14, JAVA_50, JAVA_60
can be set per slave machine, so builds can pick it up. There is an
option to do this under the Slave configuration screen on Hudson.
Dave
On 05/13/2010 10:08 PM, Nick Boldt wrote:
bootclasspath issues.
Solution is to add entries such as these into your build.properties
file until you solve the problem.
JavaSE-1.6=${JAVA60_HOME}/jre/lib/rt.jar:${JAVA60_HOME}/jre/lib/core.jar:${JAVA60_HOME}/jre/lib/annotation.jar:${JAVA60_HOME}/jre/lib/beans.jar:${JAVA60_HOME}/jre/lib/ibmorbapi.jar:${JAVA60_HOME}/jre/lib/java.util.jar:${JAVA60_HOME}/jre/lib/jlm.jar:${JAVA60_HOME}/jre/lib/logging.jar:${JAVA60_HOME}/jre/lib/resources.jar:${JAVA60_HOME}/jre/lib/security.jar:${JAVA60_HOME}/jre/lib/sql.jar:${JAVA60_HOME}/jre/lib/vm.jar:${JAVA60_HOME}/jre/lib/xmldsigfw.jar:${JAVA60_HOME}/jre/lib/xml.jar:${JAVA60_HOME}/jre/lib/graphics.jar:${JAVA60_HOME}/jre/lib/server.jar:${JAVA60_HOME}/jre/lib/jce.jar:${JAVA60_HOME}/jre/lib/jsse.jar:${JAVA60_HOME}/jre/lib/ibmjcefw.jar:${JAVA60_HOME}/lib/dt.jar:${JAVA60_HOME}/../Classes/dt.jar:${JAVA60_HOME}/../Classes/classes.jar:${JAVA60_HOME}/../Classes/jsse.jar:${JAVA60_HOME}/../Classes/jce.jar
J2SE-1.5=${JAVA50_HOME}/jre/lib/rt.jar:${JAVA50_HOME}/jre/lib/vm.jar:${JAVA50_HOME}/jre/lib/core.jar:${JAVA50_HOME}/jre/lib/xml.jar:${JAVA50_HOME}/jre/lib/graphics.jar:${JAVA50_HOME}/jre/lib/server.jar:${JAVA50_HOME}/jre/lib/ibmorbapi.jar:${JAVA50_HOME}/jre/lib/security.jar:${JAVA50_HOME}/jre/lib/classes.jar:${JAVA50_HOME}/jre/lib/jsse.jar:${JAVA50_HOME}/jre/lib/jce.jar:${JAVA50_HOME}/jre/lib/ibmjcefw.jar:${JAVA50_HOME}/../Classes/dt.jar:${JAVA50_HOME}/../Classes/classes.jar:${JAVA50_HOME}/../Classes/jsse.jar:${JAVA50_HOME}/../Classes/jce.jar
J2SE-1.4=${JAVA14_HOME}/lib/vm.jar:${JAVA14_HOME}/jre/lib/vm.jar:${JAVA14_HOME}/lib/dt.jar:${JAVA14_HOME}/jre/lib/dt.jar:${JAVA14_HOME}/lib/rt.jar:${JAVA14_HOME}/jre/lib/rt.jar:${JAVA14_HOME}/lib/core.jar:${JAVA14_HOME}/jre/lib/core.jar:${JAVA14_HOME}/lib/xml.jar:${JAVA14_HOME}/jre/lib/xml.jar:${JAVA14_HOME}/lib/graphics.jar:${JAVA14_HOME}/jre/lib/graphics.jar:${JAVA14_HOME}/lib/server.jar:${JAVA14_HOME}/jre/lib/server.jar:${JAVA14_HOME}/lib/ibmorbapi.jar:${JAVA14_HOME}/jre/lib/ibmorbapi.jar:${JAVA14_HOME}/lib/security.jar:${JAVA14_HOME}/jre/lib/security.jar:${JAVA14_HOME}/lib/classes.jar:${JAVA14_HOME}/jre/lib/classes.jar:${JAVA14_HOME}/jre/lib/jce.jar:${JAVA14_HOME}/lib/jsse.jar:${JAVA14_HOME}/jre/lib/jsse.jar:${JAVA14_HOME}/../Classes/dt.jar:${JAVA14_HOME}/../Classes/classes.jar:${JAVA14_HOME}/../Classes/jsse.jar:${JAVA14_HOME}/../Classes/jce.jar
CDC-1.0/Foundation-1.0=${JAVA_FOUNDATION_HOME}/ee.foundation-1.0.jar
CDC-1.1/Foundation-1.1=${JAVA_FOUNDATION_HOME}/ee.foundation.jar
Also, make sure you're setting a correct value for JAVA_HOME in your
build.properties. My latest template for Athena builds has this:
JAVA14_HOME=${JAVA_HOME}
JAVA50_HOME=${JAVA_HOME}
JAVA60_HOME=${JAVA_HOME}
and the accompanying build.xml script that Hudson runs contains this:
<property name="JAVA_HOME" value="${java.home}/.." />
Then, open a bug, attach what you added to make it build on the slave,
an I'll add them into the default in server.properties so that
bootclasspath should work OOTB on both master build ppc and slave
build2 x86_64 boxen.
You could also - if you wanted to try another approach - explore the
pomgen + tycho/maven approach to building. It's almost working for ESL:
https://build.eclipse.org/hudson/job/tycho-esl/
https://bugs.eclipse.org/bugs/show_bug.cgi?id=294825
Nick
On 05/13/2010 05:22 PM, David Carver wrote:
I switched Vex to an installable unit, but not quite there yet.
https://build.eclipse.org/hudson/job/cbi-wtp-inc.vex/370/console
Dave
_______________________________________________
dash-dev mailing list
dash-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/dash-dev