It seems that struts-1.1.x and struts-1.2.x are not library compatible.
I found this out when I noticed that tomcat depends on =1.1* being installed, and I had 1.2 installed at the time. I tried changing the tomcat ebuild, but it failed at some point when dealing with struts (I don't have any logs at the moment).
I also encountered this with my work with the spring-framework. I was using struts-1.2 when I was writing the ebuild. Since then, I downgraded to 1.1 for tomcat. Where it worked fine with 1.2, now I get compile errors dealing with struts again:
[javac] Found 3 semantic errors compiling "/var/tmp/portage/spring-framework-1.2.1/work/spring-framework-1.2.1/src/org/springframework/web/struts/MappingDispatchActionSupport.java":
[javac] 24. import org.apache.struts.actions.MappingDispatchAction;
[javac] ^---------------------------------------------^
[javac] *** Semantic Error: The import "org/apache/struts/actions/MappingDispatchAction" is not valid, since it does not name a type in a package.
[javac] 62. public abstract class MappingDispatchActionSupport extends MappingDispatchAction {
[javac] ^-------------------^
[javac] *** Semantic Error: A candidate for type "MappingDispatchAction" was found, but it is invalid and needs to be fixed before this type will successfully compile.
[javac] 75. super.setServlet(actionServlet);
[javac] ^-----------------------------^
[javac] *** Semantic Error: No accessible method with signature "setServlet(org.apache.struts.action.ActionServlet)" was found in type "java.lang.Object".
So, this leads me to the conclusion that 1.2 should be slotted as such.
I agree they should be slotted, its installed as a dependancy of two different
packages for me so everytime i update world it bounces back and forth from 1.2
to downgrade to 1.1, to upgrade, to downgrade.
slotting would solve the problem completely.