[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
[cross-project-issues-dev] hudson,	tycho - Compiling against java 1.5
 | 
  
  
    Hi all, 
     
    One of our plugins cannot be compiled against java 1.6 and has to be
    compiled with the javac of jdk 1.5. In short, one of the jdk classes
    has changed the signature of one of its methods' generics between
    the two versions (see version 1.5 [1] and version 1.6 [2]). AFAIK,
    the incompatibility is only at source level and the compiled classes
    should work with both the 1.5 and 1.6 runtimes. The problem,
    however, is "how" can I force tycho to use the jdk 1.5 compiler when
    run from the Eclipse hudson instance? 
     
    I read some documentation, most notably
    http://www.eclipse.org/tycho/sitedocs/tycho-compiler-plugin/compile-mojo.html
    that describes some potentially interesting options. "source" and
    "target" are not enough in my case. Telling javac that my sources
    are in 1.5 is not enough. "fork" seems out of the question when
    using tycho-compiler-plugin from version 0.14.1. My builds fail in
    "compileOutOfProcess is not supported" which rules out all options
    that require forking (compilerVersion, executable, ... and maybe
    others). 
     
    The "useJDK" option was promising... but for the life of me I could
    not understand how to provide the accurate "toolchains.xml" to my
    builds. Should it be located in the "<home>/.m2" of the
    hudsonBuild user? A way seems to exist since I found this option
    used in one of the eclipse repositories. See
    http://git.eclipse.org/c/cbi/platform-aggregator.git/tree/eclipse-parent/pom.xml?h=JunoSR1_RC1_R4
    ... and the line just above the use of this option : 
    TODO provide CBI-specific wiki that explains how to setup BREE libraries and toolchain.xml 
    Yup, the wiki would have helped :).  
     
    The only remaining option I could find was to use  the workaround
    outlined by Bernd on the forum :
    http://www.eclipse.org/forums/index.php/t/201042/ . 
     
        <pluginManagement> 
          <plugins> 
            <plugin> 
              <groupId>org.eclipse.tycho</groupId> 
              <artifactId>tycho-compiler-plugin</artifactId> 
              <version>${tycho-version}</version> 
              <configuration> 
                <compilerId>jdt</compilerId> 
                <compilerArguments> 
                   
<bootclasspath>/shared/common/jdk-1.5.0-22.x86_64/jre/lib/rt.jar</bootclasspath> 
                </compilerArguments> 
              </configuration> 
            </plugin> 
        </pluginManagement> 
     
    But that seems like a very fragile work around. Not to mention that
    now, my tests fail because of the tycho-surefire-plugin
(https://hudson.eclipse.org/hudson/view/Modeling/job/emf-compare-master/322/console)... 
     
    If anyone here has any experience with tying tycho/hudson builds to
    a specific jdk, any workaround as to how we can provide a
    toolchains.xml for our build, or simply some input as to whether
    this "toolchains.xml" should be provided for all jobs that would
    like to use it (it seems to me like using the BREE of our plugins
    should be the "default" way of building our plugins instead of using
    the jdk 6...), I'd really appreciate the help :). 
     
    Laurent 
     
    [1]
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/ExecutorService.html#invokeAll%28java.util.Collection%29 
    [2]
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutorService.html#invokeAll%28java.util.Collection%29 
  
 | 
begin:vcard
fn:Laurent Goubet
n:Goubet;Laurent
org:<a href="http://www.obeo.fr">Obeo</a>
email;internet:laurent.goubet@xxxxxxx
url:http://www.obeo.fr
version:2.1
end:vcard