Details

    • Type: Task Task
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.2.0-m10
    • Component/s: facelets
    • Labels:
      None

      Description

      This is the task to track implementation work for JAVASERVERFACES_SPEC_PUBLIC-971

        Issue Links

          Activity

          Ed Burns created issue -
          Ed Burns made changes -
          Field Original Value New Value
          Link This issue depends on JAVASERVERFACES_SPEC_PUBLIC-971 [ JAVASERVERFACES_SPEC_PUBLIC-971 ]
          Manfred Riem made changes -
          Assignee Ed Burns [ edburns ]
          Ed Burns made changes -
          Fix Version/s 2.2-EE7MS3 [ 16139 ]
          Manfred Riem made changes -
          Priority Major [ 3 ] Critical [ 2 ]
          Ed Burns made changes -
          Ed Burns made changes -
          Summary Implement Multi-Templating Implement Resource Library Prefix
          Ed Burns made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Ed Burns logged work - 14/Nov/12 4:00 AM
          • Time Spent:
            1 hour
             
            checkpoint.
          Ed Burns made changes -
          Remaining Estimate 0 minutes [ 0 ]
          Time Spent 1 hour [ 3600 ]
          Ed Burns made changes -
          Attachment 20121113-revert_r10039.patch [ 51540 ]
          Ed Burns logged work - 15/Nov/12 9:55 PM
          • Time Spent:
            4 hours, 20 minutes
             
            Snapshot.
          Hide
          Ed Burns added a comment -

          snapshot

          Show
          Ed Burns added a comment - snapshot
          Ed Burns made changes -
          Attachment 20121115-1653-i_moj_2511.patch [ 51565 ]
          Attachment 20121115-1653-i_moj_2511.zip [ 51566 ]
          Ed Burns made changes -
          Attachment 20121113-revert_r10039.patch [ 51540 ]
          Ed Burns made changes -
          Time Spent 1 hour [ 3600 ] 5 hours, 20 minutes [ 19200 ]
          Ed Burns logged work - 16/Nov/12 3:53 AM
          • Time Spent:
            1 hour, 13 minutes
             
            SECTION: Modified Files
            ----------------------------
            M jsf-api/src/main/java/javax/faces/application/ResourceHandler.java

            - Add context param to customize the name of the directory in the webapp
              root for resource library contracts.

            M jsf-ri/src/main/java/com/sun/faces/application/ApplicationAssociate.java

            - In PostConstructApplicationListener, eagerly create the
              ViewDeclarationLanguage impl for facelets. This is necessary because
              the ctor for our ViewDeclarationLanguage now needs to become aware of
              the resource library contracts data structure.

            - Add getResourceLibraryContracts(), which will eventually return the mappings
              as read from the application configuration resources.

            M jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletWebappResourceHelper.java

            - Implement the part of the spec that requires first looking in
              contracts/<contractName> for every specified contract.

            M jsf-ri/src/main/java/com/sun/faces/application/view/FaceletViewHandlingStrategy.java

            - Implement the most basic of the requirements for createView()

            - In initialize(), now guaranteed to be called at startup, become aware
              of the resource library contracts data structure.

            M jsf-ri/src/main/java/com/sun/faces/config/WebConfiguration.java

            - In doPostBuildActions(), which will only be called if the application
              configuration resources parsed successfully, implement the webapp root
              portion of the spec wrt contracts. Also implements the resource
              library contracts data structure requirements, but I can't test this
              yet because I don't have the code tha parses the relevant XML written
              yet.

            M jsf-ri/src/main/java/com/sun/faces/config/InitFacesContext.java

            - Make sure the viewroot of the initfacescontext has a viewid.

            M test/agnostic/vdl/facelets/pom.xml
            A test/agnostic/vdl/facelets/contracts
            A test/agnostic/vdl/facelets/contracts/basic
            A test/agnostic/vdl/facelets/contracts/basic/nbactions.xml
            A test/agnostic/vdl/facelets/contracts/basic/src
            A test/agnostic/vdl/facelets/contracts/basic/src/test
            A test/agnostic/vdl/facelets/contracts/basic/src/test/java
            A test/agnostic/vdl/facelets/contracts/basic/src/test/java/com
            A test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun
            A test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces
            A test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test
            A test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic
            A test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl
            A test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl/facelets
            A test/agnostic/vdl/facelets/contracts/basic/src/main
            A test/agnostic/vdl/facelets/contracts/basic/src/main/java
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/default.css
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/cssLayout.css
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/leftNav_foo.xhtml
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/topNav_Template.xhtml
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/index.xhtml
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/WEB-INF
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/WEB-INF/web.xml
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/WEB-INF/glassfish-web.xml
            A test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/page2.xhtml
            A test/agnostic/vdl/facelets/contracts/basic/pom.xml
            A test/agnostic/vdl/facelets/contracts/pom.xml
            A test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/basic/Issue2511IT.java

            - New test content.

            Sending jsf-api/src/main/java/javax/faces/application/ResourceHandler.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/ApplicationAssociate.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletWebappResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/view/FaceletViewHandlingStrategy.java
            Sending jsf-ri/src/main/java/com/sun/faces/config/InitFacesContext.java
            Sending jsf-ri/src/main/java/com/sun/faces/config/WebConfiguration.java
            Adding test/agnostic/vdl/facelets/contracts
            Adding test/agnostic/vdl/facelets/contracts/basic
            Adding test/agnostic/vdl/facelets/contracts/basic/nbactions.xml
            Adding test/agnostic/vdl/facelets/contracts/basic/pom.xml
            Adding test/agnostic/vdl/facelets/contracts/basic/src
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/java
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/WEB-INF
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/WEB-INF/glassfish-web.xml
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/WEB-INF/web.xml
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/cssLayout.css
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/default.css
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/leftNav_foo.xhtml
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/topNav_Template.xhtml
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/index.xhtml
            Adding test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/page2.xhtml
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl/facelets
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/basic
            Adding test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/basic/Issue2511IT.java
            Adding test/agnostic/vdl/facelets/contracts/pom.xml
            Sending test/agnostic/vdl/facelets/pom.xml
            Transmitting file data ...................
            Committed revision 11015.
          Ed Burns made changes -
          Time Spent 5 hours, 20 minutes [ 19200 ] 6 hours, 33 minutes [ 23580 ]
          Ed Burns logged work - 16/Nov/12 9:21 PM
          • Time Spent:
            3 hours, 25 minutes
             

            - Make it so resources declared in contracts get resolved correctly. For example

            This file is:

            M test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/topNav_Template.xhtml

            <html xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:ui="http://java.sun.com/jsf/facelets"
                  xmlns:h="http://java.sun.com/jsf/html">

                <h:head>
                    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                    <h:outputStylesheet id="default" name="default.css" />
                    <h:outputStylesheet name="cssLayout.css" />
                    <title><ui:insert name="title"></ui:insert></title>
                </h:head>

                <h:body>

                    <div id="top" class="top">
                        <p>Top Navigation Menu</p>
                        <ui:insert name="nav">Nav content</ui:insert>
                    </div>

                    <div id="content" class="center_content">
                        <ui:insert name="content">Content</ui:insert>
                    </div>

                </h:body>

            </html>

            And now those stylesheets work.

            SECTION: Modified Files
            ----------------------------
            M jsf-ri/src/main/java/com/sun/faces/application/resource/WebappResourceHelper.java

            - Make this class package private, no longer public.

            - Add

            + public abstract String getBaseContractsPath();

            - Modify findResource() to work with contracts.

            M jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceHelper.java

            - Make this class package private, no longer public.

            - Add

            + public abstract String getBaseContractsPath();

            - When constructing a ClientResourceInfo(), pass the in the contract (null or not)

            M jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceInfo.java
            M jsf-ri/src/main/java/com/sun/faces/application/resource/ClientResourceInfo.java

            - Make this class package private, no longer public.

            - Account for contract ivar.

            M jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceImpl.java

            - in getRequestPath(), implement the tagging on of the con= query
              param. This is what makes resource rendering work when the resource is
              in a contract.

            M jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletWebappResourceHelper.java

            - Pass out the contract Id from findResourceInfoConsideringContracts().
              This is necessary so we can pass it into the FaceletResourceInfo.

            M jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletResourceInfo.java

            - Make this class package private, no longer public.
            M jsf-ri/src/main/java/com/sun/faces/application/resource/ClasspathResourceHelper.java

            - Account for ctor changes.

            M test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/basic/Issue2511IT.java
            M test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/topNav_Template.xhtml

            - New test content, including loading and inspecting the actual CSS.

            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ClasspathResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ClientResourceInfo.java
            Adding jsf-ri/src/main/java/com/sun/faces/application/resource/ContractInfo.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletResourceInfo.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletWebappResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceImpl.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceInfo.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/WebappResourceHelper.java
            Sending test/agnostic/vdl/facelets/contracts/basic/src/main/webapp/contracts/siteLayout/topNav_Template.xhtml
            Sending test/agnostic/vdl/facelets/contracts/basic/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/basic/Issue2511IT.java
            Transmitting file data ...........
            Committed revision 11021.
          Ed Burns made changes -
          Time Spent 6 hours, 33 minutes [ 23580 ] 9 hours, 58 minutes [ 35880 ]
          Hide
          Ed Burns added a comment -

          This is what remains as of today for this issue.

          Take a look at 10.1.3.2 in the 20121115 PDF.

          • I've only done the <web-app-root>/contracts searching. All of the
            stuff that loads from META-INF/contracts is totally unwritten, but
            straightforward to write.
          • The XML parsing logic that populates the resource library contracts
            data structure needs to be implemented.

          This means fleshing out
          ApplicationAssociate.getResourceLibraryContracts(), which is called
          from WebConfiguration.discoverResourceLibraryContracts(). Lots of
          stuff in our crufty XML parsing story has the form of, "do some
          parsing and stuff some stuff into a data structure on
          ApplicationAssociate. This is no different.

          • The contracts attribute in f:view isn't implemented.
          • FaceletViewHandlingStrategy.calculateResourceLibraryContracts() needs
            to us ethe resource library contract data structure to do the mapping
            business.
          Show
          Ed Burns added a comment - This is what remains as of today for this issue. Take a look at 10.1.3.2 in the 20121115 PDF. I've only done the <web-app-root>/contracts searching. All of the stuff that loads from META-INF/contracts is totally unwritten, but straightforward to write. The XML parsing logic that populates the resource library contracts data structure needs to be implemented. This means fleshing out ApplicationAssociate.getResourceLibraryContracts(), which is called from WebConfiguration.discoverResourceLibraryContracts(). Lots of stuff in our crufty XML parsing story has the form of, "do some parsing and stuff some stuff into a data structure on ApplicationAssociate. This is no different. The contracts attribute in f:view isn't implemented. FaceletViewHandlingStrategy.calculateResourceLibraryContracts() needs to us ethe resource library contract data structure to do the mapping business.
          Ed Burns made changes -
          Attachment 20121115-1653-i_moj_2511.patch [ 51565 ]
          Ed Burns made changes -
          Attachment 20121115-1653-i_moj_2511.zip [ 51566 ]
          Ed Burns made changes -
          Attachment 20121115-1653-i_moj_2511.patch [ 51581 ]
          Attachment 20121115-1653-i_moj_2511.zip [ 51582 ]
          Ed Burns logged work - 21/Nov/12 8:24 AM
          • Time Spent:
            1 hour, 8 minutes
             
            Loading contracts from zip works


            SECTION: Modified Files
            ----------------------------
            M jsf-api/src/main/java/javax/faces/application/ResourceHandler.java

            - Add new constant:

                /**
                 * <p class="changed_modified_2_2">The name of the marker file that
                 * the implementation must scan for, within sub-directories
                 * <code>META-INF/contracts</code>, to identify the set of available
                 * resource library contracts.</p>

                 * @since 2.2
                 */

                public static final String RESOURCE_CONTRACT_XML = "javax.faces.template.xml";

            M jsf-ri/src/main/java/com/sun/faces/facelets/util/Classpath.java

            - Performance optimization: make it possible for the caller to terminate
              the search on first match. By default the search finds all matches.

            M jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletWebappResourceHelper.java
            M jsf-ri/src/main/java/com/sun/faces/application/resource/ClasspathResourceHelper.java
            M jsf-ri/src/main/java/com/sun/faces/config/WebConfiguration.java

            - Changes necessary for loading facelets from contracr jars

            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/nbactions.xml
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl/facelets
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/basic_in_jar
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/basic_in_jar/Issue2511IT.java
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/java
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/resources
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/index.xhtml
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/WEB-INF
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/WEB-INF/web.xml
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/WEB-INF/glassfish-web.xml
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/page2.xhtml
            A test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/pom.xml
            M test/agnostic/vdl/facelets/contracts/pom.xml
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/javax.faces.template.xml
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/default.css
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/cssLayout.css
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/leftNav_foo.xhtml
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/topNav_Template.xhtml
            A test/agnostic/vdl/facelets/contracts/basic_contract_jar/pom.xml

            - New test content

            Sending jsf-api/src/main/java/javax/faces/application/ResourceHandler.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ClasspathResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletWebappResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/config/WebConfiguration.java
            Sending jsf-ri/src/main/java/com/sun/faces/facelets/util/Classpath.java
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/nbactions.xml
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/pom.xml
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/java
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/resources
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/WEB-INF
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/WEB-INF/glassfish-web.xml
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/WEB-INF/web.xml
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/index.xhtml
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/main/webapp/page2.xhtml
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl/facelets
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/basic_in_jar
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_in_jar/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/basic_in_jar/Issue2511IT.java
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/pom.xml
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/cssLayout.css
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/default.css
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/javax.faces.template.xml
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/leftNav_foo.xhtml
            Adding test/agnostic/vdl/facelets/contracts/basic_contract_jar/src/main/resources/META-INF/contracts/siteLayout/topNav_Template.xhtml
            Sending test/agnostic/vdl/facelets/contracts/pom.xml
            Transmitting file data ...................
            Committed revision 11026.
          Ed Burns made changes -
          Time Spent 9 hours, 58 minutes [ 35880 ] 11 hours, 6 minutes [ 39960 ]
          Ed Burns logged work - 21/Nov/12 3:58 PM
          • Time Spent:
            15 minutes
             

            M jsf-ri/src/main/java/com/sun/faces/application/resource/ClasspathResourceHelper.java
            M jsf-ri/src/main/java/com/sun/faces/config/WebConfiguration.java

            PMD
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ClasspathResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/config/WebConfiguration.java
            Transmitting file data ..
            Committed revision 11033.
          Ed Burns made changes -
          Time Spent 11 hours, 6 minutes [ 39960 ] 11 hours, 21 minutes [ 40860 ]
          Ed Burns made changes -
          Fix Version/s 2.2.0-m08 [ 16140 ]
          Fix Version/s 2.2.0-m07 [ 16139 ]
          Ed Burns logged work - 11/Dec/12 8:46 PM
          • Time Spent:
            3 hours, 30 minutes
             
            Author: Frank Caputo and Ed Burns

            Frank, it's very important that we tie up the loose ends you have
            flagged with FCAPUTO in this code. I've surrounded each of them with
            PENDING() to match our convention.

            SECTION: API Changes
            --------------------

            M jsf-api/src/main/java/javax/faces/component/UIViewRoot.java
            M jsf-api/src/main/java/javax/faces/context/FacesContext.java
            M jsf-api/src/main/java/javax/faces/context/FacesContextWrapper.java
            M integrationWithFacelets.fm
            M applicationIntegration.fm

            - At Frank's suggestion, move the resourceLibraryContracts property from
              being on the UIViewRoot to being on the FacesContext.

            M jsf-api/src/main/java/javax/faces/application/ViewHandler.java

            - Update section references to account for new head2 section on
              FlowHandler in chapter 7.

            M jsf-api/src/main/java/javax/faces/view/ViewDeclarationLanguage.java

            - Flag createView() as having changed in 2.2.

            M jsf-api/src/main/java/javax/faces/webapp/FacesServlet.java

            - Instead of "starts with" now use "contains" with respect to WEB-INF
              and META-INF in the path.


            SECTION: Modified Files
            ----------------------------
            M jsf-ri/src/main/java/com/sun/faces/facelets/impl/DefaultFaceletFactory.java

            - has now a cache per contracts (i.e. the cache key is the complete list).

            - relativeLocations are no longer cached (see my comment in the code).

            - the cache per contracts doesn't honor
              com.sun.faces.config.WebConfiguration.WebContextInitParameter#FaceletCache
              (it uses FaceletCacheFactory)

            - needsToBeRefreshed returns true if any cache doesn't have the facelet (I'm sure this is wrong)

            M jsf-ri/src/main/java/com/sun/faces/facelets/impl/DefaultFacelet.java

            - relativeLocations are no longer cached.

            M jsf-ri/src/main/java/com/sun/faces/application/view/FaceletViewHandlingStrategy.java

            - Don't just call my calculateResourceLibraryContracts(). Instead, get
              the VDL from the VH and call that, which may be the same thing, but
              will not be in the case that method is decorated.

            M jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceManager.java

            - Make it so the contracts are considered for caching.

            M jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceCache.java

            - The keys of MultiKeyConcurrentHashMap are now Object, because Frank
              added List<String> as the fourth cache key.

            M jsf-ri/src/main/java/com/sun/faces/context/FacesContextImpl.java
            M jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletWebappResourceHelper.java
            M jsf-ri/src/main/java/com/sun/faces/application/resource/WebappResourceHelper.java
            M jsf-ri/src/main/java/com/sun/faces/application/resource/ClasspathResourceHelper.java

            - Account for the new home of the resourceLibraryContracts property.

            A test/agnostic/vdl/facelets/contracts/vhosts
            A test/agnostic/vdl/facelets/contracts/vhosts/src
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl/facelets
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/vhosts
            A test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/vhosts/Issue2511IT.java
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl/facelets
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl/facelets/contracts
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl/facelets/contracts/vhosts
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl/facelets/contracts/vhosts/VDLFactory.java
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host2
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host2/template.xhtml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host3
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host3/index.xhtml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host4
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host4/index.xhtml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host1
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host1/header.xhtml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host1/css
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host1/css/layout.css
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/index.xhtml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/header.xhtml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/template.xhtml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/WEB-INF
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/WEB-INF/faces-config.xml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/WEB-INF/web.xml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/WEB-INF/glassfish-web.xml
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/resources
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/resources/css
            A test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/resources/css/layout.css
            A test/agnostic/vdl/facelets/contracts/vhosts/pom.xml
            A test/agnostic/vdl/facelets/contracts/pom.xml

            - new test content.

            Sending jsf-api/src/main/java/javax/faces/application/ViewHandler.java
            Sending jsf-api/src/main/java/javax/faces/component/UIViewRoot.java
            Sending jsf-api/src/main/java/javax/faces/context/FacesContext.java
            Sending jsf-api/src/main/java/javax/faces/context/FacesContextWrapper.java
            Sending jsf-api/src/main/java/javax/faces/view/ViewDeclarationLanguage.java
            Sending jsf-api/src/main/java/javax/faces/webapp/FacesServlet.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ClasspathResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/FaceletWebappResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceCache.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceManager.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/resource/WebappResourceHelper.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/view/FaceletViewHandlingStrategy.java
            Sending jsf-ri/src/main/java/com/sun/faces/context/FacesContextImpl.java
            Sending jsf-ri/src/main/java/com/sun/faces/facelets/impl/DefaultFacelet.java
            Sending jsf-ri/src/main/java/com/sun/faces/facelets/impl/DefaultFaceletFactory.java
            Sending test/agnostic/vdl/facelets/contracts/pom.xml
            Adding test/agnostic/vdl/facelets/contracts/vhosts
            Adding test/agnostic/vdl/facelets/contracts/vhosts/nbactions.xml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/pom.xml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl/facelets
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl/facelets/contracts
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl/facelets/contracts/vhosts
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/java/com/sun/faces/test/vdl/facelets/contracts/vhosts/VDLFactory.java
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/WEB-INF
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/WEB-INF/faces-config.xml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/WEB-INF/glassfish-web.xml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/WEB-INF/web.xml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host1
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host1/css
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host1/css/layout.css
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host1/header.xhtml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host2
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host2/template.xhtml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host3
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host3/index.xhtml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host4
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/contracts/host4/index.xhtml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/header.xhtml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/index.xhtml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/resources
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/resources/css
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/resources/css/layout.css
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/main/webapp/template.xhtml
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl/facelets
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/vhosts
            Adding test/agnostic/vdl/facelets/contracts/vhosts/src/test/java/com/sun/faces/test/agnostic/vdl/facelets/contracts/vhosts/Issue2511IT.java
            Transmitting file data ................................
            Committed revision 11161.
          Ed Burns made changes -
          Time Spent 11 hours, 21 minutes [ 40860 ] 14 hours, 51 minutes [ 53460 ]
          Ed Burns made changes -
          Summary Implement Resource Library Prefix Implement ResourceResourceLibraryContracts
          Issue Type Task [ 3 ] New Feature [ 2 ]
          Ed Burns made changes -
          Issue Type New Feature [ 2 ] Task [ 3 ]
          Fix Version/s 2.2.0 [ 16147 ]
          Fix Version/s 2.2.0-m08 [ 16140 ]
          Ed Burns logged work - 14/Dec/12 6:31 PM
          • Time Spent:
            10 minutes
             
            M jsf-ri/src/main/java/com/sun/faces/context/FacesContextImpl.java

            - Doug's testing regime noted that {get,set}ResourceLibraryContracts()
              does not assertNotReleased().
            Sending jsf-ri/src/main/java/com/sun/faces/context/FacesContextImpl.java
            Transmitting file data .
            Committed revision 11175.
          Ed Burns made changes -
          Time Spent 14 hours, 51 minutes [ 53460 ] 15 hours, 1 minute [ 54060 ]
          Ed Burns logged work - 24/Jan/13 8:43 PM
          • Time Spent:
            40 minutes
             
            M jsf-api/doc/web-facesconfig_2_2.xsd

            - Manfred noticed a cardinality error for the contract-mapping within
              resource-library-contracts. It should be 1..*.

            M jsf-api/src/main/java/javax/faces/view/ViewDeclarationLanguage.java

            - Fix spec section number.
            Sending jsf-api/doc/web-facesconfig_2_2.xsd
            Sending jsf-api/src/main/java/javax/faces/view/ViewDeclarationLanguage.java
            Transmitting file data ..
            Committed revision 11451.
          Ed Burns made changes -
          Time Spent 15 hours, 1 minute [ 54060 ] 15 hours, 41 minutes [ 56460 ]
          Ed Burns logged work - 24/Jan/13 9:12 PM
          • Time Spent:
            40 minutes
             
            M applicationIntegration.fm

            - 7.7.2.2 calculateResourceLibraryContracts() specify ordering.

            M usingFacesInWebapps.fm

            - 11.4.2.1 specify valid contents of <url-pattern>
            Sending applicationIntegration.fm
            Sending usingFacesInWebapps.fm
            Transmitting file data ..
            Committed revision 1106.
          Ed Burns made changes -
          Time Spent 15 hours, 41 minutes [ 56460 ] 16 hours, 21 minutes [ 58860 ]
          Ed Burns logged work - 25/Jan/13 2:58 PM
          • Time Spent:
            15 minutes
             
            M jsf-ri/src/main/java/com/sun/faces/application/view/FaceletViewHandlingStrategy.java

            - modify calculateResourceLibraryContracts() to return the empty list if
              no contracts have been configured.

            M jsf-api/src/main/java/javax/faces/view/ViewDeclarationLanguage.java

            - in calculateResourceLibraryContracts() clarify that if there is no
              match, the empty list is returned.
            Sending jsf-api/src/main/java/javax/faces/view/ViewDeclarationLanguage.java
            Sending jsf-ri/src/main/java/com/sun/faces/application/view/FaceletViewHandlingStrategy.java
            Transmitting file data ..
            Committed revision 11455.
          Ed Burns made changes -
          Time Spent 16 hours, 21 minutes [ 58860 ] 16 hours, 36 minutes [ 59760 ]
          Ed Burns made changes -
          Status In Progress [ 3 ] Closed [ 6 ]
          Fix Version/s 2.2.0-m10 [ 16142 ]
          Fix Version/s 2.2.0 [ 16147 ]
          Resolution Fixed [ 1 ]

            People

            • Assignee:
              Ed Burns
              Reporter:
              Ed Burns
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 3 days Original Estimate - 3 days
                3d
                Remaining:
                Time Spent - 16 hours, 36 minutes Remaining Estimate - 3 days
                3d
                Logged:
                Time Spent - 16 hours, 36 minutes Remaining Estimate - 3 days
                16h 36m