On Sun, May 2, 2010 at 7:47 AM, Mark Thomas <[email protected]> wrote: > As you may be aware, Apache Tomcat is using a packaged renamed copy of > BCEL to implement the annotation scanning neccessary for the Servlet 3.0 > implementation. As part of a recent release review, concerns were raised > over two files that originated in BCEL. [1], [2] > > These files are CPL licensed and may not [3] be included in ASF releases > in source form. > > I have managed to track down the Andy Clements listed as the original > author in the header of those files. By chance, he now works for the > company as me (SpringSource/VMWare). > > As best I can tell, the history of the files is: > a) BCEL didn't support Java 5 > b) AspectJ was using BCEL > c) AspectJ needed Java 5 support > d) Andy added Java 5 support to AspectJ's copy of BCEL in November 2004. > eg [5] > e) The 2006 GSoC student contacted Andy for advice on how to add Java 5 > support to BCEL > f) Andy replied "Why bother? I've already done it" and never heard from > the student again > g) Java 5 support was added to BCEL > > Comparing [1] and [5], apart from the package names, the files are byte > for byte identical. It therefore looks highly likely that the Java 5 > implementation for BCEL was implemented, at least in part, by copying > the files from AspectJ. > > I checked a small number of the other changes made as part of this GSoC > project. Some look OK (eg [6]) whereas some look suspicious - for > example by changing names of constants from those used in BCEL to match > those used in AspectJ [7]. > > I will enquire if Andy is a) in a position to be able to and b) willing > to license his AspectJ modifications for BCEL under the AL2 or any other > license [8] that would allow BCEL to continue to include these changes. > <snip/>
That'd be great. Thanks for looking into this. -Rahul > There is a reasonable degree of urgency about resolving this issue since > it is currently blocking the imminent Tomcat 7 release. > > Mark > > > [1] > https://svn.apache.org/repos/asf/jakarta/bcel/trunk/src/main/java/org/apache/bcel/classfile/EnclosingMethod.java > [2] > https://svn.apache.org/repos/asf/jakarta/bcel/trunk/src/main/java/org/apache/bcel/classfile/LocalVariableTypeTable.java > [3] http://www.apache.org/legal/resolved.html#category-b > [4] http://svn.apache.org/viewvc?view=revision&revision=411580 > [5] > http://dev.eclipse.org/viewcvs/index.cgi/org.aspectj/modules/bcel-builder/src/org/aspectj/apache/bcel/classfile/EnclosingMethod.java?revision=1.1&root=Tools_Project&view=markup > [6] > http://svn.apache.org/viewvc/jakarta/bcel/trunk/src/main/java/org/apache/bcel/classfile/RuntimeInvisibleAnnotations.java?r1=411580&r2=411579&pathrev=411580 > [7] > http://svn.apache.org/viewvc/jakarta/bcel/trunk/src/main/java/org/apache/bcel/Constants.java?r1=411580&r2=411579&pathrev=411580 > [8] http://www.apache.org/legal/resolved.html#category-a > > >
