2018-05-16 13:03 GMT+03:00  <ma...@apache.org>:
> Author: markt
> Date: Wed May 16 10:03:30 2018
> New Revision: 1831691
>
> URL: http://svn.apache.org/viewvc?rev=1831691&view=rev
> Log:
> Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=50234
> Add the capability to generate a web-fragment.xml file to JspC.
>
> Modified:
>     tomcat/trunk/java/org/apache/jasper/JspC.java
>     tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties
>     tomcat/trunk/webapps/docs/changelog.xml
>
> Modified: tomcat/trunk/java/org/apache/jasper/JspC.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/JspC.java?rev=1831691&r1=1831690&r2=1831691&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/jasper/JspC.java (original)
> +++ tomcat/trunk/java/org/apache/jasper/JspC.java Wed May 16 10:03:30 2018
> @@ -121,6 +121,7 @@ public class JspC extends Task implement
>      protected static final String SWITCH_URI_ROOT = "-uriroot";
>      protected static final String SWITCH_FILE_WEBAPP = "-webapp";
>      protected static final String SWITCH_WEBAPP_INC = "-webinc";
> +    protected static final String SWITCH_WEBAPP_FRG = "-webfrg";
>      protected static final String SWITCH_WEBAPP_XML = "-webxml";
>      protected static final String SWITCH_WEBAPP_XML_ENCODING = 
> "-webxmlencoding";
>      protected static final String SWITCH_ADD_WEBAPP_XML_MAPPINGS = 
> "-addwebxmlmappings";
> @@ -142,6 +143,7 @@ public class JspC extends Task implement
>      protected static final String SHOW_SUCCESS ="-s";
>      protected static final String LIST_ERRORS = "-l";
>      protected static final int INC_WEBXML = 10;
> +    protected static final int FRG_WEBXML = 15;
>      protected static final int ALL_WEBXML = 20;
>      protected static final int DEFAULT_DIE_LEVEL = 1;
>      protected static final int NO_DIE_LEVEL = 0;
> @@ -996,13 +998,36 @@ public class JspC extends Task implement
>      /**
>       * File where we generate a web.xml fragment with the class definitions.
>       * @param s New value
> +     * @deprecated Will be removed in Tomcat 10.
> +     *             Use {@link #setWebXmlInclude(String)}
>       */
> +    @Deprecated
>      public void setWebXmlFragment( String s ) {
>          webxmlFile=resolveFile(s).getAbsolutePath();
>          webxmlLevel=INC_WEBXML;
>      }

1). There is an example in
http://tomcat.apache.org/tomcat-9.0-doc/jasper-howto.html
-> Web Application Compilation
-> webXmlFragment="${webapp.path}/WEB-INF/generated_web.xml"

It needs updating?

>      /**
> +     * File where we generate configuration with the class definitions to be
> +     * included in a web.xml file.
> +     * @param s New value
> +     */
> +    public void setWebXmlInclude( String s ) {
> +        webxmlFile=resolveFile(s).getAbsolutePath();
> +        webxmlLevel=INC_WEBXML;
> +    }
> +
> +    /**
> +     * File where we generate a complete web-fragment.xml with the class
> +     * definitions.
> +     * @param s New value
> +     */
> +    public void setWebFragmentXml( String s ) {
> +        webxmlFile=resolveFile(s).getAbsolutePath();
> +        webxmlLevel=FRG_WEBXML;
> +    }
> +
> +    /**
>       * File where we generate a complete web.xml with the class definitions.
>       * @param s New value
>       */
> @@ -1513,6 +1538,9 @@ public class JspC extends Task implement
>              if (webxmlLevel >= ALL_WEBXML) {
>                  mapout.write(Localizer.getMessage("jspc.webxml.header", 
> webxmlEncoding));
>                  mapout.flush();
> +            } else if (webxmlLevel >= FRG_WEBXML) {
> +                    mapout.write(Localizer.getMessage("jspc.webfrg.header", 
> webxmlEncoding));
> +                    mapout.flush();
>              } else if ((webxmlLevel>= INC_WEBXML) && !addWebXmlMappings) {
>                  mapout.write(Localizer.getMessage("jspc.webinc.header"));
>                  mapout.flush();
> @@ -1532,6 +1560,8 @@ public class JspC extends Task implement
>                  mappingout.writeTo(mapout);
>                  if (webxmlLevel >= ALL_WEBXML) {
>                      mapout.write(Localizer.getMessage("jspc.webxml.footer"));
> +                } else if (webxmlLevel >= FRG_WEBXML) {
> +                        
> mapout.write(Localizer.getMessage("jspc.webfrg.footer"));
>                  } else if ((webxmlLevel >= INC_WEBXML) && 
> !addWebXmlMappings) {
>                      mapout.write(Localizer.getMessage("jspc.webinc.footer"));
>                  }
>
> Modified: 
> tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties?rev=1831691&r1=1831690&r2=1831691&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties 
> (original)
> +++ tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties Wed 
> May 16 10:03:30 2018
> @@ -178,6 +178,7 @@ where options include:\n\
>  \    -compile              Compiles generated servlets\n\
>  \    -failFast             Stop on first compile error\n\
>  \    -webinc <file>        Creates a partial servlet mappings in the file\n\
> +\    -webfrg <file>        Creates a complete web-fragment.xml the file\n\

2) s/"the file"/"in the file", as in sibling options?

3) I do not see where JspC processes the "-webfrg" switch.

SWITCH_WEBAPP_FRG in JspC is declared, but not used.

A sibling "webinc" switch (SWITCH_WEBAPP_INC) is processed in
#setArgs() (line 339).


>  \    -webxml <file>        Creates a complete web.xml in the file\n\
>  \    -webxmlencoding <enc> Set the encoding charset used to read and write 
> the web.xml\n\
>  \                          file (default is UTF-8)\n\
> @@ -205,6 +206,22 @@ Automatically created by Apache Tomcat J
>  jspc.webxml.footer=\n\
>  </web-app>\n\
>  \n
> +jspc.webfrg.header=<?xml version="1.0" encoding="{0}"?>\n\
> +<web-fragment xmlns="http://java.sun.com/xml/ns/javaee"\n\
> +\    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n\
> +\    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee\n\
> +\                        
> http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd"\n\
> +\    version="3.0"\n\

4) Update version, namespace, schema to 3.1 for Tomcat 8.0, 8.5,  4.0
for Tomcat 9 ?

> +\    metadata-complete="true">\n\
> +\  <name>org_apache_jasper.jspc</name>\n\
> +\  <distributable/>\n\
> +<!--\n\
> +Automatically created by Apache Tomcat JspC.\n\
> +-->\n\
> +\n
> +jspc.webfrg.footer=\n\
> +</web-fragment>\n\
> +\n
>  jspc.webinc.header=\n\
>  <!--\n\
>  Automatically created by Apache Tomcat JspC.\n\
>
> Modified: tomcat/trunk/webapps/docs/changelog.xml
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1831691&r1=1831690&r2=1831691&view=diff
> ==============================================================================
> --- tomcat/trunk/webapps/docs/changelog.xml (original)
> +++ tomcat/trunk/webapps/docs/changelog.xml Wed May 16 10:03:30 2018
> @@ -123,6 +123,10 @@
>    </subsection>
>    <subsection name="Jasper">
>      <changelog>
> +      <add>
> +        <bug>50234</bug>: Add the capability to generate a web-fragment.xml 
> file
> +        to JspC. (markt)
> +      </add>
>        <fix>
>          <bug>62350</bug>: Refactor
>          <code>org.apache.jasper.runtime.BodyContentImpl</code> so a

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to