Skip to content

Add Jakarta Pages (JSP) 4.0 support #144

@scottmarlow

Description

@scottmarlow

WildFly Preview is currently using (Jakarta Pages) jakarta.servlet.jsp-api-3.1.1.jar but should be using jakarta.pages:jakarta.pages-api:jar:4.0.0. I think we need to integrate with a newer version of Jastow that implements https://jakarta.ee/specifications/pages/4.0/

After WildFly Preview is upgraded to Pages 4.0, the following Platform TCK signature test failures should go away:

Failed packages listed below: 
	jakarta.servlet.jsp.tagext(static mode)
	jakarta.servlet.jsp.tagext(reflection mode)
	jakarta.servlet.jsp.el(static mode)
	jakarta.servlet.jsp.el(reflection mode)
	jakarta.servlet.jsp(static mode)
	jakarta.servlet.jsp(reflection mode)

Added Fields

jakarta.servlet.jsp.tagext.BodyTag: field public final static int jakarta.servlet.jsp.tagext.BodyTag.EVAL_BODY_TAG = 2
anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="")
--- affected jakarta.servlet.jsp.tagext.BodyTagSupport

Missing Constructors

jakarta.servlet.jsp.ErrorData: constructor public jakarta.servlet.jsp.ErrorData.init(java.lang.Throwable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)

Missing Methods

jakarta.servlet.jsp.ErrorData: method public final java.lang.String jakarta.servlet.jsp.ErrorData.getMethod()
jakarta.servlet.jsp.ErrorData: method public final java.lang.String jakarta.servlet.jsp.ErrorData.getQueryString()

Added Methods

jakarta.servlet.jsp.JspContext: method public abstract jakarta.servlet.jsp.el.ExpressionEvaluator jakarta.servlet.jsp.JspContext.getExpressionEvaluator()
anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="")
--- affected jakarta.servlet.jsp.PageContext
jakarta.servlet.jsp.JspContext: method public abstract jakarta.servlet.jsp.el.VariableResolver jakarta.servlet.jsp.JspContext.getVariableResolver()
anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="")
--- affected jakarta.servlet.jsp.PageContext
jakarta.servlet.jsp.JspException: method public java.lang.Throwable jakarta.servlet.jsp.JspException.getRootCause()
anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="")
--- affected jakarta.servlet.jsp.SkipPageException,jakarta.servlet.jsp.JspTagException

^ is a subset of failures just to give an idea of the problem. https://jakarta.ee/specifications/pages/4.0/ describes the Pages 4.0 changes that are needed I think. Below is a description copied from the Pages 4.0 spec page:

Jakarta Pages defines a template engine for web applications that supports mixing of textual content (including HTML and XML) with custom tags, expression language, and embedded Java code, that gets compiled into a Jakarta Servlet.

This release removes deprecated code and provides any additional updates necessary to align with changes in the Jakarta Servlet and/or Expression Language specifications.

New features, enhancements or additions

  • Updated ErrorData to add support for the new attributes jakarta.servlet.error.query_string and jakarta.servlet.error.method.
  • Removals, deprecations or backwards incompatible changes
  • All code deprecated as of Jakarta Server Pages 3.1 has been removed. Specifically:
  •    Remove methods that override ELResolver.getFeatureDescriptors() as that method will be removed as of EL 6.0
    
  •    Remove the isThreadSafe page directive attribute as the related Servlet API interface SingleThreadModel has been removed as of the Servlet 6.0 specification
    
  •    Remove the jsp:plugin action and related actions as the associated HTML elements are no longer supported by any major browser
    
  •    Remove JspException.getRootCause()
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions