Hi all, Recently Steve and I spoke on IRC about compiling code on JDK 7 but targeting Java 6 for the built artifacts.
While setting source and target level to 1.6 makes sure that the source and byte code are compliant with Java 6, there is still the possibility of inadvertently using classes/methods introduced in Java 7, causing runtime errors when executing that code on Java 6. As I just learned, there's a tool called "Animal Sniffer" [1] which helps to prevent this kind of error by checking a project against a given API baseline, e.g. the Java 6 API. Using functionality not contained in that API signature causes a build-time error. As an example, I found out that we're using a method in HV which was introduced only in Java 1.6.0_18, causing the code to fail on earlier Java 6 runtimes [2]. Animal Sniffer provides a Maven plug-in and an Ant task which I think should also be usable with Gradle. --Gunnar [1] http://mojo.codehaus.org/animal-sniffer/ [2] https://hibernate.onjira.com/browse/HV-661 _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev