All,
I've previously been of the opinion that the resources (dtd, xsd's etc.) should be included in the API jar, but I think I've changed my mind.
After recently going through the (re)bundling exercise (yet again) for a client that is very conscious of the licenses they have, there are some complications as the older resources have different licenses. Looking at servlet and JSP, the commonly bundled/included files are:
Apache 2.0
javax/servlet/jsp/resources/jspxml_2_0.xsd
javax/servlet/jsp/resources/jspxml_2_0.dtd
CDDL + GPL 1
javax/servlet/jsp/resources/jsp_2_3.xsd
javax/servlet/resources/javaee_web_services_1_4.xsd
javax/servlet/resources/javaee_7.xsd
javax/servlet/resources/permissions_7.xsd
javax/servlet/resources/web-fragment_3_1.xsd
javax/servlet/resources/web-app_3_1.xsd
javax/servlet/resources/javaee_web_services_client_1_4.xsd
javax/servlet/resources/web-common_3_1.xsd
CDDL + GPL 2
javax/servlet/jsp/resources/jsp_2_1.xsd
javax/servlet/jsp/resources/jsp_2_2.xsd
javax/servlet/jsp/resources/jsp_2_0.xsd
javax/servlet/jsp/resources/web-jsptaglibrary_2_1.xsd
javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd
javax/servlet/jsp/resources/web-jsptaglibrary_2_0.xsd
javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd
javax/servlet/resources/j2ee_web_services_client_1_1.xsd
javax/servlet/resources/javaee_5.xsd
javax/servlet/resources/javaee_web_services_1_3.xsd
javax/servlet/resources/web-app_2_3.dtd
javax/servlet/resources/web-app_2_5.xsd
javax/servlet/resources/j2ee_1_4.xsd
javax/servlet/resources/web-app_2_4.xsd
javax/servlet/resources/javaee_web_services_1_2.xsd
javax/servlet/resources/web-fragment_3_0.xsd
javax/servlet/resources/javaee_6.xsd
javax/servlet/resources/web-common_3_0.xsd
javax/servlet/resources/web-app_2_2.dtd
javax/servlet/resources/j2ee_web_services_1_1.xsd
javax/servlet/resources/web-app_3_0.xsd
javax/servlet/resources/javaee_web_services_client_1_3.xsd
I think there are different versions in circulation, but all sources I looked at either lacked some versions or had multiple licenses like this. I'm also not sure that anywhere I looked was really doing a good job of declaring all the licenses that they were actually bundling!
When we then add the latest EPL schemas, we will have a jar that will be very difficult to handle in licensing systems because it contains lots of different licenses and there is not a single license that will cover all files. Also note that there are lots of common files that would ultimately end up appearing in many different jars.
So I see several options for what a spec API jar can contain:
- No schemas
- Just the most recent schemas with a EPL license, but only those that relate to the specific API
- Just the most recent schemas with a EPL license and all common schema files
- All the old and new schemas/dtds and their common files, with their various licenses.
- All the old and new schemas/dtds and their common files all relicensed as dual apache 2 and EPL
I'd like 5. But if that can't happen then I probably favour 2, 1 and 3 in that order.
Eitherway, it would be really good if somehow the effort was put in to create some jars of all the different EE versions of these schemas, each with their historic license.
cheers