dev-java/ehcache-1.2.4 should depend on >=virtual/jdk-1.5 instead of >=virtual/jdk-1.4 dev-java/ehcache-1.2.4 uses java.util.Queue which is only available since java 1.5 see http://java.sun.com/j2se/1.5.0/docs/api/java/util/Queue.html compile output below >>> Compiling source in /var/tmp/portage/dev-java/ehcache-1.2.4/work/ehcache-1.2.4 ... ./net/sf/ehcache/constructs/asynchronous/AsynchronousCommandExecutor.java:30: cannot resolve symbol symbol : class Queue location: package util import java.util.Queue; ^ ./net/sf/ehcache/constructs/asynchronous/AsynchronousCommandExecutor.java:342: cannot resolve symbol symbol : class Queue location: class net.sf.ehcache.constructs.asynchronous.AsynchronousCommandExecutor private void remove(Queue queue, String uid, String reason) { GENTOO_VM=blackdown-jdk-1.4.2 CLASSPATH="" JAVA_HOME="/opt/blackdown-jdk-1.4.2.03" JAVACFLAGS="-source 1.4 -target 1.4" COMPILER="javac"
from RELEASE_NOTES.txt: ehcache supports 1.4, 1.5 and 1.6 at runtime. When compiling from source, the build process requires at least JDK1.5. This means at runtime it probably switches implementations based on JDK version used. So we should stick to 1.4 bytecode and maybe have java5 useflag which would delete the offending classes? Also the dependencies maybe be somehow off: "Ehcache requires commons-logging from Apache's Jakarta project." ebuild specifies more depends and concurrent-util isn't even used in the getjars call
Created attachment 106723 [details, diff] add java5 use flag to ehcache This patch added a java5 use flag and also removes unrequired dependencies.
In the end I've decided not to add another ad-hoc local java5 useflag until we decide on some policy for these. So the jdk/jre dep is raised to 1.5 in ehcache-1.2.4-r1, but it's forcing 1.4 bytecode for compatibility. It's what upstream does anyway. Some people hate having 1.4 JDK, so why be shy and force installation of 1.5 when there's no big reason to.