Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [servlet-dev] [jsp-dev] What is jakarta.servlet.jsp.resources?

Excellent background work, Mark.  Thank you!  I think we need to expand the scope of this discussion to other Spec Projects, namely Servlet and Platform.  I realize there is some overlap in the reps on these mailing lists, but we need a wider audience for this discussion.  It sounds like we have an issue (or two) that was introduced somewhere around Java EE 5 or 6, and the resolution has been up to each implementation to figure out...  What started off as a "simple" question about whether javax.servlet.jsp.resources->jakarta.servlet.jsp.resources should be part of the Transformer rule set is now uncovering a potential issue with both JSP and Servlet API jar files.  We need more participation from the people intimately involved in these projects from years past.  Thanks.

---------------------------------------------------
Kevin Sutter
STSM, MicroProfile and Jakarta EE architect @ IBM
e-mail:  sutter@xxxxxxxxxx     Twitter:  @kwsutter
phone: tl-553-3620 (office), 507-253-3620 (office)    
LinkedIn:
https://www.linkedin.com/in/kevinwsutter



From:        Mark Thomas <markt@xxxxxxxxxx>
To:        jsp-dev@xxxxxxxxxxx
Date:        06/17/2020 05:42
Subject:        [EXTERNAL] Re: [jsp-dev] What is jakarta.servlet.jsp.resources?
Sent by:        jsp-dev-bounces@xxxxxxxxxxx




Hi all,

I am not convinced that the removal of these packages was deliberate.

Maven Central
=============

First of all, looking at the API JARs from Maven Central

For Servlet they were removed between Servlet 2.5 (Java EE 5) and
Servlet 3.0 (Java EE 6). I have a complete copy of the EG archive for
Servlet 3.0 and there is no mention of removing schema or the resources
package.

For JSP they were removed between JSP 2.1 and JSP 2.1.1 (both Java EE
6). Note that JSP 2.1 was released at the time of Java EE 6 (July 2006)
whereas 2.1.1 was released 2 years later (September 2008) with no
accompanying record of that release that I can find at jcp.org

If the removal was deliberate, I would have expected them to be removed
at the same point and as part of the release associated with a Java EE
release.


SCM history
===========

Secondly, looking at the source code history

The Jakarta Server Pages repo is no help as no history was imported.

Looking at:
https://github.com/javaee/javaee-jsp-api

I see that the JSP API was added with this commit:
https://github.com/javaee/javaee-jsp-api/commit/f5a7855ba8949f78ec8dd750d0d2d40dffc52ca6

My read of the history of that repo is that it started off as
Glassfish's JSP implementation (forked from Apache Tomcat) and with the
commit above became the repo for the JSP implementation and API.


Looking at:
https://github.com/javaee/servlet-spec

That repo only goes back as far as Servlet 3.0. The resources package
was not included when the repo was created.

Looking at:
https://github.com/javaee/glassfish

The files are present in the initial import at:
v2/servlet-api/src/jsr245/src/share/dtd/jspxml_2_0.dtd

The build system looks like it is in transition. Ant, Maven and Jelly
are all used. As far as I can tell the schema files were still part of
the API JARs created.

Commit 168ce449c4ea0826842ab4129e83c4a700750970 restructures the
Glassfish source code and places a subset of the schemas in two locations:
appserver/deployment/dtds/src/main/resources/glassfish/lib/dtds
appserver/deployment/schemas/src/main/resources/glassfish/lib/schemass


User Requirements
=================

jspxml.dtd and jspxml.xsd are required to enable validation of JSP
documents to the schema. I'd expect them to be part of the JSP API jar.

The other XML schema files are required to validate web.xml files, TLD
files, etc. I'd expect them to be included in the Servlet JAR.


Conclusion
==========

Given that:

- the resources packages and the contained schema were removed from
 the Servlet and JSP APIs in different Java EE versions;

- the package was removed from the JSP API jar without any associated
 maintenance release;

- the schema were removed in Servlet 3.0 yet there is no discussion
 at all of this change in the Servlet EG archive for 3.0;

- that the removal of the schema appears to be the result of a
 reorganisation of the Glassfish source tree;

- that the schema are part of the specs and are required in order to
 validate various spec related XML documents;

it is my conclusion that these packages and their associated resources
were removed in error and should be restored.

Further, we need to obtain (or find) copies of jspxml.xsd and jspxml.dtd
for the JSP API.

Mark



On 16/06/2020 23:16, Kevin Sutter wrote:
> Hi Joakim,
> Jakarta EE 8 (and Java EE 8 and Java EE 7) API jar files didn't include
> the j*.servlet.resources or j*.servlet.jsp.resources packages.  I would
> hesitate on changing this content at this point.  Including these
> resources might be an "implementation-specific" action.
>
> ---------------------------------------------------
> Kevin Sutter
> STSM, MicroProfile and Jakarta EE architect @ IBM
> e-mail:  sutter@xxxxxxxxxx     Twitter:  @kwsutter
> phone: tl-553-3620 (office), 507-253-3620 (office)    
> LinkedIn:
https://www.linkedin.com/in/kevinwsutter
>
>
>
> From:        Joakim Erdfelt <joakim.erdfelt@xxxxxxxxx>
> To:        jsp developer discussions <jsp-dev@xxxxxxxxxxx>
> Date:        06/16/2020 16:05
> Subject:        [EXTERNAL] Re: [jsp-dev] What is
> jakarta.servlet.jsp.resources?
> Sent by:        jsp-dev-bounces@xxxxxxxxxxx
> ------------------------------------------------------------------------
>
>
>
> Speaking as an Eclipse Jetty committer....
>
> We would prefer that the xsd, schemas, dtd (yes even the old school
> dtds) are all included in the appropriate API jars.
> This includes jakarta.servlet (with its jakarta.servlet.resources), and
> jakarta.servlet.jsp with its (with its jakarta.servlet.jsp.resources)
>
> This eases many use cases, including the JPMS one (Eclipse Jetty 10 on
> Jakarta EE 8 and Eclipse Jetty 11 on Jakarta EE 9 both support a proper
> JPMS environment).
>
> - Joakim
>
> On Tue, Jun 16, 2020 at 2:49 PM Kevin Sutter <_sutter@xxxxxx.com_
> <
mailto:sutter@xxxxxxxxxx>> wrote:
> Thanks, Mark.  IBM Notes is notorious at making these type of "internet
> style" notes unreadable, but I will try my best...  :-)
> _
> __jsp-dev-bounces@eclipse.org_ <
mailto:jsp-dev-bounces@xxxxxxxxxxx>wrote
> on 06/16/2020 13:38:19:
>
>> From: Mark Thomas <_markt@apache.org_ <
mailto:markt@xxxxxxxxxx>>
>> To: jsp developer discussions <_jsp-dev@eclipse.org_ <
mailto:jsp-dev@xxxxxxxxxxx>>
>> Date: 06/16/2020 13:38
>> Subject: [EXTERNAL] Re: [jsp-dev] What is jakarta.servlet.jsp.resources?
>> Sent by: _jsp-dev-bounces@eclipse.org_ <
mailto:jsp-dev-bounces@xxxxxxxxxxx>
>>
>> On 16/06/2020 18:36, Kevin Sutter wrote:
>> > Hi,
>> > Does anybody know the origin of this package --
>> > jakarta.servlet.jsp.resources?  It's not part of the source repo for
>> > jsp-api, but it's coming up as a question for the Transformer.
>> > _INVALID URI REMOVED_
>> u=https-3A__github.com_eclipse_transformer_pull_52-23discussion-5Fr440933519&d=DwIF-
>> g&c=jf_iaSHvJObTbx-
>> siA1ZOg&r=R9dtOS3afYnRUmu_zogmh0VnVYl2tse_V7QBUA9yr_4&m=MeMg0Vj4tzNuyPAjRpzvqBifomI7YYzmoPi60D99jTo&s=xQkBlvLEI1sfwDHxlI7MuTeksynzMN_f68qtBe_jEzA&e=
>> >
>> > Is this a valid package for JSP?
>>
>> Historically, yes. It is present in the JSP 2.0 JAR file:
>> _INVALID URI REMOVED_
>> u=https-3A__repo1.maven.org_maven2_javax_servlet_jsp_jsp-2Dapi_2.
>> 0_jsp-2Dapi-2D2.0.jar&d=DwIF-g&c=jf_iaSHvJObTbx-
>> siA1ZOg&r=R9dtOS3afYnRUmu_zogmh0VnVYl2tse_V7QBUA9yr_4&m=MeMg0Vj4tzNuyPAjRpzvqBifomI7YYzmoPi60D99jTo&s=yvAtLsqLf5ohLd_V1AJ4SRnydB3p-
>> ecjTpUgTdQZqO4&e=
>>
>> where it contains:
>> jsp_2_.xsd
>> jspxml.dtd
>> jspxml.xsd
>> web-jsptaglibrary_1_1.dtd
>> web-jsptaglibrary_1_2.dtd
>> web-jsptaglibrary_2_0.xsd
>>
>> The same files are present in 2.1
>> _INVALID URI REMOVED_
>> u=https-3A__repo1.maven.org_maven2_javax_servlet_jsp_jsp-2Dapi_2.
>> 1_jsp-2Dapi-2D2.1.jar&d=DwIF-g&c=jf_iaSHvJObTbx-
>> siA1ZOg&r=R9dtOS3afYnRUmu_zogmh0VnVYl2tse_V7QBUA9yr_4&m=MeMg0Vj4tzNuyPAjRpzvqBifomI7YYzmoPi60D99jTo&s=f4SuOYjF24DB3NcDn6gD-
>> JT3KK9N-DuPmwSiH5MjsKc&e=
>>
>> The appear to have been removed in 2.1.1 onwards.
>
> Right.  This is what we (IBM) found as well.  We have them in our 2.2
> and prior bundles, but they were removed in 2.3 and now in 3.0.
>
>>
>> >  Or, is this an implementation-specific package?
>>
>> No.
>>
>> >  Although we're not supposed to be adding to the defined APIs
>> > for Java EE or Jakarta EE...  Just trying to figure out the answer.  Thanks!
>>
>> If I had to guess, I say most of those files were legitimately moved to
>> the Servlet API JAR because, without them, Servlet implementations are
>> unable to correctly validate XML schema that reference them.
>>
>> However, I'd expect the following files to still be present in that package:
>>
>> jspxml.dtd
>> jspxml.xsd
>>
>> I don't know where they were moved to. In fact, I asked about those very
>> files a few hours ago as I'd like to update the JSP spec document to
>> reference a Jakarta version of jspxml.xsd (https://
>> _urldefense.proofpoint.com/v2/url_
> <
http://urldefense.proofpoint.com/v2/url>?
>> u=http-3A__java.sun.com_JSP_Page&d=DwIF-g&c=jf_iaSHvJObTbx-
>> siA1ZOg&r=R9dtOS3afYnRUmu_zogmh0VnVYl2tse_V7QBUA9yr_4&m=MeMg0Vj4tzNuyPAjRpzvqBifomI7YYzmoPi60D99jTo&s=-4H3QRAd23GgrstRS6CDcHXiuulDDTFNKOX-
>> toqvHzg&e= )
>
> Are these dtd/xsd files still required for JSP 2.3 and beyond?  Or, are
> the XML files validated using some alternative schema?
> The Jakarta EE 9 schemas are defined here:
>  _
https://jakarta.ee/xml/ns/jakartaee/_
> The Java EE 8/Jakarta EE 8 schemas are defined here:
>  _
http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html#8_
>
> These two files (jspxml.dtd and jspxml.xsd) are not defined in either
> location.  And, since we have stated that Jakarta EE 9 only
> needs to support Jakarta EE 9 and Jakarta EE 8 schemas, are these other
> two schemas still required?  Or, did we misss something with
> the Java EE 8/Jakarta EE 8 definitions?
>
>>
>> Finally, Tomcat has the package in question and those files as a result
>> of the time it was the reference implementation for JSP. While the
>> Tomcat project moved the schemas to Servlet that Servlet needed, it left
>> jspxml.dtd and jspxml.xsd in place.
>
> Okay, so that would explain why the Tomitribe team is attempting to
> update the Transformer rules to include that package.
> Technically, I guess it doesn't hurt to include it in the Transformer
> rules.  But, it did cause confusion for me since I got
> pinged that our Jakarta EE 9 API jar file (and your JSP 3.0 API jar
> file) had an error because we didn't include this
> jakarta.servlet.jsp.resources package...
>
> It's sounding like this jakarta.servlet.jsp.resources package should not
> be defined with the official rule set for the Transformer
> project.  And, if a given implementation (Tomcat, Jetty, Open Liberty,
> etc) does require this package to be converted, then it
> should be part of the implementation's rule set.
>
> -- Kevin
>
>>
>> Mark
>> _______________________________________________
>> jsp-dev mailing list
>> _jsp-dev@eclipse.org_ <
mailto:jsp-dev@xxxxxxxxxxx>
>> To unsubscribe from this list, visit _
https://www.eclipse.org/_
>> mailman/listinfo/jsp-dev
>>
>
> _______________________________________________
> jsp-dev mailing list_
> __jsp-dev@eclipse.org_ <
mailto:jsp-dev@xxxxxxxxxxx>
> To unsubscribe from this list, visit
> _
https://www.eclipse.org/mailman/listinfo/jsp-dev________________________________________________
> jsp-dev mailing list
> jsp-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit
>
https://www.eclipse.org/mailman/listinfo/jsp-dev
>
>
>
>
> _______________________________________________
> jsp-dev mailing list
> jsp-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jsp-dev
>

_______________________________________________
jsp-dev mailing list
jsp-dev@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jsp-dev





Back to the top