[JAVASERVERFACES_SPEC_PUBLIC-1132] Missing symbolic constants for many context-param values Created: 22/Aug/12  Updated: 24/Aug/12  Resolved: 24/Aug/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: Documentation: Javadoc, TLDDoc, RenderkitDoc, PDF
Affects Version/s: None
Fix Version/s: 2.2 Sprint 13

Type: Bug Priority: Trivial
Reporter: Ed Burns Assignee: Ed Burns
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: 15 minutes
Original Estimate: Not Specified


 Description   

Many of the context-param values introduced in JSF 2.0 appear in Mojarra as literal strings. This is error prone. There should be symbolic constants for every context-param in the section "Application Configuration Parameters" in the spec prose document.



 Comments   
Comment by Ed Burns [ 22/Aug/12 ]

While fixing this, I noticed a cut and paste error in the spec prose document.

The normative text in the "Application Configuration Parameters" section in the spec prose document for

javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER

has an incorrectly inserted cross reference.

Comment by Ed Burns [ 24/Aug/12 ]

SECTION: Modified Files
----------------------------
M test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative/Issue1127IT.java
M test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive/Issue1127IT.java

  • re-enable these since I can't get them to fail locally. I'll
    re-disable them if they fail and go back to the drawing board.

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

  • Add symbolic constants

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

  • Replace literal strings with symbolic constants
    Authentication realm: <https://svn.java.net:443> Subversion Repository
    Username: edburns
    Password for 'edburns':
    Sending jsf-api/src/main/java/javax/faces/application/StateManager.java
    Sending jsf-api/src/main/java/javax/faces/application/ViewHandler.java
    Sending jsf-api/src/main/java/javax/faces/convert/Converter.java
    Sending jsf-ri/src/main/java/com/sun/faces/config/WebConfiguration.java
    Sending test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative/Issue1127IT.java
    Sending test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive/Issue1127IT.java
    Transmitting file data ......
    Committed revision 10507.




[JAVASERVERFACES_SPEC_PUBLIC-1130] Resource.userAgentNeedsUpdate(): concretely specify algorithm, use of If-Modified-Since header. Created: 07/Aug/12  Updated: 13/Aug/12  Resolved: 13/Aug/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: Resources
Affects Version/s: None
Fix Version/s: 2.2 Sprint 13

Type: Bug Priority: Trivial
Reporter: Ed Burns Assignee: Ed Burns
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: 15 minutes
Original Estimate: Not Specified


 Description   

Resource.userAgentNeedsUpdate() is intentionally vague, to allow for greater freedom of implementation. I've had recent reason to desire a tighter specification, at least requiring the If-Modified-Since header to be consulted.



 Comments   
Comment by Ed Burns [ 13/Aug/12 ]

SECTION: Modified Files
----------------------------
M src/main/java/javax/faces/application/Resource.java

  • Require considering the If-Modified-Since header.

Sending src/main/java/javax/faces/application/Resource.java
Transmitting file data .
Committed revision 10427.

Comment by Ed Burns [ 13/Aug/12 ]

M src/main/java/javax/faces/application/Resource.java

  • Require considering the If-Modified-Since header.

Authentication realm: <https://svn.java.net:443> Subversion Repository
Username: edburns
Password for 'edburns':
Sending src/main/java/javax/faces/application/Resource.java
Transmitting file data .
Committed revision 10428.





[JAVASERVERFACES_SPEC_PUBLIC-1127] Must "Serializable" really be the default behavior in both client and server state modes? Created: 30/Jul/12  Updated: 27/Aug/12  Resolved: 27/Aug/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: Lifecycle
Affects Version/s: None
Fix Version/s: 2.2 Sprint 13

Type: Bug Priority: Trivial
Reporter: Ed Burns Assignee: Ed Burns
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 4 hours
Time Spent: 1 hour
Original Estimate: 5 hours

Issue Links:
Dependency
blocks JAVASERVERFACES-2349 the default of com.sun.faces.serializ... Closed
Related
is related to JAVASERVERFACES-632 Server-side state saving sensitive to... Closed

 Description   

Mojarra issue JAVASERVERFACES-2349 asks to make Mojarra conform to this spec text, In section "State Saving Alternatives and Implications" in the "Application Integration" chapter.

The default implementation Serializes the view in both the client and server modes.

This issue has a long history, dating back to summer 2007, chronicled in JAVASERVERFACES-632. In that issue, then implementation lead Ryan Lubke stated that he polled the community and the result was that enforcing serializability in all cases should be off by default.

At this point, I'd like to amend the text quoted above to be:

The default implementation Serializes the view in client mode. Serializing the view in server
mode is optional but must be possible by setting context-param javax.faces.SERIALIZE_SERVER_STATE
to true.



 Comments   
Comment by arjan tijms [ 04/Aug/12 ]

One thing to take into account is that serialization on MyFaces (and perhaps on Mojarra as well) breaks injecting EJBs into managed beans.

See e.g. http://stackoverflow.com/questions/7761622/ejb-in-viewscoped-managedbean-causes-java-io-notserializableexception

Comment by Ed Burns [ 22/Aug/12 ]

http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1127

SECTION: Modified Files
----------------------------
M jsf-ri/src/main/java/com/sun/faces/config/WebConfiguration.java

  • declare "javax.faces.SERIALIZE_SERVER_STATE", and its deprecated
    equivalent "com.sun.faces.serializeServerState".

M jsf-ri/src/main/java/com/sun/faces/renderkit/ServerSideStateHelper.java

  • Consider "javax.faces.SERIALIZE_SERVER_STATE", and its deprecated
    equivalent "com.sun.faces.serializeServerState"

M test/agnostic/lifecycle/pom.xml

  • New tests

A test/agnostic/lifecycle/unserializableServerState_negative
A test/agnostic/lifecycle/unserializableServerState_negative/nbactions.xml
A test/agnostic/lifecycle/unserializableServerState_negative/src
A test/agnostic/lifecycle/unserializableServerState_negative/src/test
A test/agnostic/lifecycle/unserializableServerState_negative/src/test/java
A test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com
A test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun
A test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces
A test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test
A test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic
A test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle
A test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative
A test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative/Issue1127IT.java
A test/agnostic/lifecycle/unserializableServerState_negative/src/main
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/java
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces/test
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces/test/lifecycle
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces/test/lifecycle/unserializableServerState_negative
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces/test/lifecycle/unserializableServerState_negative/Bean.java
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/resources
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/webapp
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/webapp/index.xhtml
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/webapp/WEB-INF
A test/agnostic/lifecycle/unserializableServerState_negative/src/main/webapp/WEB-INF/web.xml
A test/agnostic/lifecycle/unserializableServerState_negative/pom.xml
A test/agnostic/lifecycle/unserializableServerState_positive
A test/agnostic/lifecycle/unserializableServerState_positive/nbactions.xml
A test/agnostic/lifecycle/unserializableServerState_positive/src
A test/agnostic/lifecycle/unserializableServerState_positive/src/test
A test/agnostic/lifecycle/unserializableServerState_positive/src/test/java
A test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com
A test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun
A test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces
A test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test
A test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic
A test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle
A test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive
A test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive/Issue1127IT.java
A test/agnostic/lifecycle/unserializableServerState_positive/src/main
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/java
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces/test
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces/test/lifecycle
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces/test/lifecycle/unserializableServerState_positive
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces/test/lifecycle/unserializableServerState_positive/Bean.java
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/resources
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/webapp
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/webapp/index.xhtml
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/webapp/WEB-INF
A test/agnostic/lifecycle/unserializableServerState_positive/src/main/webapp/WEB-INF/web.xml
A test/agnostic/lifecycle/unserializableServerState_positive/pom.xml

Authentication realm: <https://svn.java.net:443> Subversion Repository
Username: edburns
Password for 'edburns':
Sending jsf-ri/src/main/java/com/sun/faces/config/WebConfiguration.java
Sending jsf-ri/src/main/java/com/sun/faces/renderkit/ServerSideStateHelper.java
Sending test/agnostic/lifecycle/pom.xml
Adding test/agnostic/lifecycle/unserializableServerState_negative
Adding test/agnostic/lifecycle/unserializableServerState_negative/nbactions.xml
Adding test/agnostic/lifecycle/unserializableServerState_negative/pom.xml
Adding test/agnostic/lifecycle/unserializableServerState_negative/src
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/java
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces/test
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces/test/lifecycle
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces/test/lifecycle/unserializableServerState_negative
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/java/com/sun/faces/test/lifecycle/unserializableServerState_negative/Bean.java
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/resources
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/webapp
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/webapp/WEB-INF
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/webapp/WEB-INF/web.xml
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/main/webapp/index.xhtml
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test/java
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative
Adding test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative/Issue1127IT.java
Adding test/agnostic/lifecycle/unserializableServerState_positive
Adding test/agnostic/lifecycle/unserializableServerState_positive/nbactions.xml
Adding test/agnostic/lifecycle/unserializableServerState_positive/pom.xml
Adding test/agnostic/lifecycle/unserializableServerState_positive/src
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/java
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces/test
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces/test/lifecycle
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces/test/lifecycle/unserializableServerState_positive
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/java/com/sun/faces/test/lifecycle/unserializableServerState_positive/Bean.java
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/resources
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/webapp
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/webapp/WEB-INF
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/webapp/WEB-INF/web.xml
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/main/webapp/index.xhtml
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test/java
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive
Adding test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive/Issue1127IT.java
Transmitting file data ...............
Committed revision 10483.

Comment by Ed Burns [ 22/Aug/12 ]

SECTION: Modified Files
----------------------------
M test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative/Issue1127IT.java
M test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive/Issue1127IT.java

  • Ignore these tests until I can figure out why they fail on tomcat.
    Authentication realm: <https://svn.java.net:443> Subversion Repository
    Username: edburns
    Password for 'edburns':
    Sending test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative/Issue1127IT.java
    Sending test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive/Issue1127IT.java
    Transmitting file data ..
    Committed revision 10505.
Comment by Ed Burns [ 24/Aug/12 ]

SECTION: Modified Files
----------------------------
M test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative/Issue1127IT.java
M test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive/Issue1127IT.java

These tests are failing in the following permutations

-Dwebapp.projectStage=Production -Dwebapp.stateSavingMethod=server -Dwebapp.partialStateSaving=true
-Dwebapp.projectStage=Production -Dwebapp.stateSavingMethod=server -Dwebapp.partialStateSaving=false
-Dwebapp.projectStage=Production -Dwebapp.stateSavingMethod=client -Dwebapp.partialStateSaving=false
-Dwebapp.projectStage=Development -Dwebapp.stateSavingMethod=server -Dwebapp.partialStateSaving=true
-Dwebapp.projectStage=Development -Dwebapp.stateSavingMethod=server -Dwebapp.partialStateSaving=false
-Dwebapp.projectStage=Development -Dwebapp.stateSavingMethod=client -Dwebapp.partialStateSaving=false

But passing in these:

-Dwebapp.projectStage=Production -Dwebapp.stateSavingMethod=client -Dwebapp.partialStateSaving=true
-Dwebapp.projectStage=Development -Dwebapp.stateSavingMethod=client -Dwebapp.partialStateSaving=true

Authentication realm: <https://svn.java.net:443> Subversion Repository
Username: edburns
Sending test/agnostic/lifecycle/unserializableServerState_negative/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_negative/Issue1127IT.java
Sending test/agnostic/lifecycle/unserializableServerState_positive/src/test/java/com/sun/faces/test/agnostic/lifeycle/unserializableServerState_positive/Issue1127IT.java
Transmitting file data ..

r 10508

Comment by Ed Burns [ 27/Aug/12 ]

All tests pass. Failures were apparently due to a Hudson job configuration issue.





[JAVASERVERFACES_SPEC_PUBLIC-1125] Clarify that SystemEvent and ComponentSystemEvent subscription changes must not be made during the listener for an event. Created: 24/Jul/12  Updated: 22/Jul/13  Resolved: 31/Jul/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: Components/Renderers
Affects Version/s: 2.0, 2.1, 2.0 Rev a, 2.1 Rev a
Fix Version/s: 2.2 Sprint 13

Type: Bug Priority: Trivial
Reporter: Ed Burns Assignee: Ed Burns
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
blocks JAVASERVERFACES-2957 Tree creation is broken when using <c... Closed
blocks JAVASERVERFACES-2053 Tree creation is broken when using <c... Closed

 Description   

Class javax.faces.application.Application has several methods that allow subscribing and un-subscribing for notification for System and ComponentSystem events. The spec must clarify that these methods must not be called during the handling of an event.



 Comments   
Comment by Ed Burns [ 31/Jul/12 ]

Sending jsf-api/src/main/java/javax/faces/application/Application.java
Transmitting file data .
Committed revision 10373.
SECTION: Modified Files
----------------------------
M jsf-api/src/main/java/javax/faces/application/Application.java

  • Add this text to

public void subscribeToEvent(java.lang.Class<? extends SystemEvent> systemEventClass,
java.lang.Class<?> sourceClass,
SystemEventListener listener)

It is valid to call this method during the processing of an event
which was subscribed to by a previous call to this method.

  • In all other variants of subscribeToEvent() and
    unsubscribeFromEvent(), refer to the preceding text.




[JAVASERVERFACES_SPEC_PUBLIC-1124] Clarify UIViewRoot.createUniqueId Created: 24/Jul/12  Updated: 24/Jul/12  Resolved: 24/Jul/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: None
Affects Version/s: None
Fix Version/s: 2.2 Sprint 13

Type: Improvement Priority: Major
Reporter: Manfred Riem Assignee: Ed Burns
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to JAVASERVERFACES-2283 System Events Example App: Dynamic Co... Closed

 Comments   
Comment by Manfred Riem [ 24/Jul/12 ]

Please make the necessary changes in the spec to reflect that UIViewRoot.createUniqueId is only unique within the scope of its own UINamingContainer.

Comment by Ed Burns [ 24/Jul/12 ]

Committed this change to UIViewRoot.createUniqueId()

  • <p><span class="changed_modified_2_2">Generate</span> an
  • identifier for a component. The identifier will be prefixed with
  • UNIQUE_ID_PREFIX, and will be unique within <span
  • class="changed_added_2_2">the non- {@link NamingContainer}

    child

  • sub-trees of</span> this UIViewRoot.</p>




[JAVASERVERFACES_SPEC_PUBLIC-1119] Clarify subtlety of @FacesConverter and also by-type conversion for custom classes. Created: 03/Jul/12  Updated: 01/Aug/14  Resolved: 03/Jul/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: Validation/Conversion
Affects Version/s: None
Fix Version/s: 2.2 Sprint 13

Type: Bug Priority: Trivial
Reporter: Ed Burns Assignee: Ed Burns
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: 36 minutes
Original Estimate: Not Specified


 Description   

Issue JAVASERVERFACES-2384 indicates the need for clarification in the spec about how to use the @FacesConverter annotation and how converters are specified for collection classes that are custom classes.



 Comments   
Comment by Manfred Riem [ 01/Aug/14 ]

Closing resolved issue out





[JAVASERVERFACES_SPEC_PUBLIC-1087] CDI portable extension for @ViewScoped Created: 03/Apr/12  Updated: 01/Aug/14  Resolved: 12/Dec/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: Managed Beans
Affects Version/s: 2.2
Fix Version/s: 2.2 Sprint 13

Type: New Feature Priority: Major
Reporter: arjan tijms Assignee: Ed Burns
Resolution: Fixed Votes: 4
Labels: None
Remaining Estimate: 0 minutes
Time Spent: 1 hour, 48 minutes
Original Estimate: Not Specified

Issue Links:
Dependency
depends on JAVASERVERFACES_SPEC_PUBLIC-1034 disentangle ViewScope state handling ... Open
depends on JAVASERVERFACES-2620 Verify that @PreDestroy on @javax.fac... Closed
blocks JAVASERVERFACES-2506 Implement @javax.faces.flow.ViewScoped Closed
Tags: bean, cdi, scope

 Description   

For JSF 2.2, it has been announced that the javax.faces.bean package may possible be deprecated in a future version. Advise is being given to use annotations from other appropriate Java EE specifications where possible (see JAVASERVERFACES_SPEC_PUBLIC-976).

In practice this mostly boils down to using CDI managed beans.

While those beans are a near drop-in replacement for JSF's native managed beans, one important feature is missing for them: the view scope (@ViewScoped).

This scope is not that hard to add, as shown in Steven Verborgh's article Porting the ViewScoped JSF annotation to CDI and the availability of this annotation in e.g. Seam 3.

Since the new @FlowScoped annotation requires a JSF implementation to provide a portable CDI extension that implements this scope (see JAVASERVERFACES_SPEC_PUBLIC-730), I wonder if we can ask the same for @ViewScoped?



 Comments   
Comment by gerhard_petracek [ 03/Apr/12 ]

most implementations don't work in some cases.
>if< needed please check:
https://svn.apache.org/repos/asf/myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/view/

Comment by arjan tijms [ 03/Apr/12 ]

most implementations don't work in some cases.

Any pointers to that?

If JSF native managed beans are ever to be deprecated these problems should of course be fixed. Possibly JAVASERVERFACES_SPEC_PUBLIC-787 makes this job easier.

Comment by gerhard_petracek [ 03/Apr/12 ]

the implementation in myfaces codi supports client side state saving, destroys beans correctly (SystemEventListener for PreDestroyViewMapEvent),...
you can compare the implementations for further details.

Comment by ova2 [ 02/Aug/12 ]

+1. Must to have feature!

Currently I have headache with CODI mapping / porting of JSF @ViewScope to CDI (see Gerhard's link). This is quite good with OWB, but not with Weld. @Inject in a base class doesn't work in JBoss 7 if the derived class has JSF @ViewScope. It works if it has CODI's @ViewAccessScope. But not with @ViewScope. Example:

public abstract class A implement Serializable {
    @Inject private SomeSessionScopedBean bean;

    public SomeSessionScopedBean getBean() {
        return bean;
    }  
}

@Named
@ViewScope
public class B extends A {
    public void doSomething() {
        getBean().someMethod();   // NullPointerException here because bean was not injected
    } 
}

It works with OWB as I said. And it works in Weld too if I move @Inject ... to the class B. Sorry for off-topic, but I think this is because Weld doesn't know about mapping of ViewScope.class, there isn't a SPI Extension in META-INF/services (no new annotation). Right? Sorry again.

Comment by arjan tijms [ 31/Aug/12 ]

For the ones monitoring this issue; the SVN commit against this issue is only the new annotation. The actual implementation of the scope is tracked here: JAVASERVERFACES-2506

Comment by Ed Burns [ 30/Nov/12 ]

Manfred suggested:

1. move javax.faces.flow.ViewScoped to javax.faces.view.ViewScoped.

2. Rename implicit object to be "flowScope" instead of "facesFlowScope".

Comment by Ed Burns [ 30/Nov/12 ]

Safe to proceed when < http://hudson-sca.us.oracle.com/view/MOJARRA_ALL/job/MOJARRA_TRUNK_GLASSFISH_3_1_2_2_NO_CLUSTER/53/ > and < http://tim-vm9.us.oracle.com:7070/hudson/view/Mojarra%20Trunk/job/trunk-test-glassfish-3_1_2_2/173/ > are clean.

Comment by Ed Burns [ 12/Dec/12 ]

Modify the javadoc for javax.faces.bean.ViewScoped and javax.faces.view.ViewScoped to explicitly require that UIViewRoot.getViewMap() is used to store the beans.

Comment by Ed Burns [ 12/Dec/12 ]

Modify the spec for Scoped Attribute ELResolver (table 5-14) so that it requires checking the view map after the request and before the session.

Comment by Ed Burns [ 12/Dec/12 ]

Modify the spec for UIViewRoot.getViewMap(boolean) to explicitly state that the map is backed by the session. And that passing true will cause a new session to be created if one does not exist already.

Comment by Manfred Riem [ 01/Aug/14 ]

Closing resolved issue out





[JAVASERVERFACES_SPEC_PUBLIC-746] Missing method-signature element in taglib.xml xsd Created: 15/Feb/10  Updated: 27/Jul/12  Resolved: 27/Jul/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: Facelets/VDL
Affects Version/s: 2.0
Fix Version/s: 2.2 Sprint 13

Type: Bug Priority: Major
Reporter: aschwart Assignee: Ed Burns
Resolution: Fixed Votes: 5
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 746
Status Whiteboard:

cat2 schema size_small importance_small


 Description   

The latest version of web-facelettaglibrary_2_0.xsd that ships with Mojarra defines a <method-
signature> element that is used to specify the method signature for MethodExpression attributes.
However, the online version of the XSD here:

http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd

Does not include this element. I believe that this is an oversight. FWIW, the spec does allow this
element to be defined in composite component metadata (see Appendix A, section 1.4).

Note that Trinidad is leveraging method-signature elements in order to improve our DT experience,
but we are running into validation errors when validating against the XSD on java.sun.com. See:

https://issues.apache.org/jira/browse/TRINIDAD-1724



 Comments   
Comment by Ed Burns [ 04/Mar/10 ]

cat1

Comment by Ed Burns [ 15/Mar/10 ]

schema

Comment by Ed Burns [ 09/May/10 ]

Turns out this is not just an online problem. The PDF document has the version of the schema
without the method-signature as well.

Comment by Ed Burns [ 15/May/10 ]

These are targeted at 2.1.

Comment by Ed Burns [ 08/Jun/10 ]

triage

Comment by Ed Burns [ 24/Jun/10 ]

Change target milestone.

Comment by rogerk [ 27/Oct/10 ]

triage

Comment by Ed Burns [ 27/Jul/12 ]

SECTION: Modified Files
----------------------------
M jsf-api/doc/web-facelettaglibrary_2_2.xsd

  • Ensure the XSD for <method-signature> is fully functional

A jsf-api/doc/web-facesuicomponent_2_2.xsd

Authentication realm: <https://svn.java.net:443> Subversion Repository
Username: edburns
Password for 'edburns':
Sending jsf-api/doc/web-facelettaglibrary_2_2.xsd
Adding jsf-api/doc/web-facesuicomponent_2_2.xsd
Transmitting file data ..
Committed revision 10358.





[JAVASERVERFACES_SPEC_PUBLIC-550] Should we be using the 'media' attribute for outputStylesheet or not? Created: 30/Apr/09  Updated: 24/Jul/12  Resolved: 24/Jul/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: Components/Renderers
Affects Version/s: 2.0
Fix Version/s: 2.2 Sprint 13

Type: Bug Priority: Trivial
Reporter: dougd Assignee: Ed Burns
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 550
Status Whiteboard:

cat2 renderkitdoc size_small importance_small


 Description   

In the PDL documentation for outputStylesheet it states the following.

"...and the literal string "screen" as the value of the
"media" attribute."
Are we intending this to happen, do we want to limit the stylesheet to
screen by default?

Right now Mojarra is not rendering any media attribute at all.

I would think that we would either leave media out all together so that the
stylesheet is applied to all forms of media, or add an attribute to the
outputStylesheet tag itself that would enable a developer to have the ability to
do something like what we have below.

(taken from W3C website)

In the following example, we define a cascade where the "corporate" style sheet
is provided in several versions: one suited to printing, one for screen use and
one for speech-based browsers (useful, say, when reading email in the car). The
"techreport" stylesheet applies to all media. The color rule defined by the
STYLE element is used for print and screen but not for aural rendering.

<LINK rel="stylesheet" media="aural" href="corporate-aural.css" type="text/css">
<LINK rel="stylesheet" media="screen" href="corporate-screen.css" type="text/css">
<LINK rel="stylesheet" media="print" href="corporate-print.css" type="text/css">
<LINK rel="stylesheet" href="techreport.css" type="text/css">
<STYLE media="screen, print" type="text/css">
p.special

{ color: rgb(230, 100, 180) }

</STYLE>



 Comments   
Comment by driscoll [ 30/Jul/09 ]
      • Issue 597 has been marked as a duplicate of this issue. ***
Comment by driscoll [ 30/Jul/09 ]

Recommend we change the spec to say:

Output a <link> element. Use the result from calling resource.getRequestPath()
as the value of the "href" attribute, the result from calling
resource.getContentType() as the value of the "type" attribute, the literal
string "stylesheet" as the value of the "rel" attribute, and the value of the
"media" attribute of this tag as the value of the "media" attribute of the link,
or unset if the media attribute of the tag is unset.

Comment by driscoll [ 31/Jul/09 ]

Changes applied to RI - r7599.

Including the spec changes for PDL doc.

Just needs to be added to errata doc.

Comment by driscoll [ 10/Aug/09 ]

Changes moved from 2.0 branch to 2.1 branch.

Comment by Ed Burns [ 24/Sep/09 ]

Move to unscheduled target milestone

Comment by Ed Burns [ 24/Nov/09 ]

Prepare to delete "spec" subcomponent.

Comment by Jason Lee [ 26/Jan/10 ]

Updating target milestone for 2.0 rev A. If you disagree, now's the time to speak
up!

Comment by Ed Burns [ 04/Mar/10 ]

cat2

Comment by Ed Burns [ 17/Mar/10 ]

rk

Comment by Ed Burns [ 15/May/10 ]

These are targeted at 2.1.

Comment by Ed Burns [ 08/Jun/10 ]

triaeg

Comment by Ed Burns [ 22/Jun/10 ]

rogerk

Comment by rogerk [ 27/Oct/10 ]

triage

Comment by rogerk [ 16/Nov/10 ]

triage

Comment by Ed Burns [ 24/Jul/12 ]

SECTION: Modified Files
----------------------------
M jsf-api/doc/standard-html-renderkit-base.xml
M jsf-api/doc/standard-html-renderkit.xml

  • Make the change. If this tag has a "media" attribute, use its value
    as the value of the "media" attribute. Otherwise, do not render a
    media attribute.

M jsf-tools/src/main/resources/com/sun/faces/generate/facesdoc/stylesheet.css
M jsf-ri/conf/share/tlddoc-resources/stylesheet.css

  • Attribute the change to 2.2

Authentication realm: <https://svn.java.net:443> Subversion Repository
Username: edburns
Password for 'edburns':
Sending jsf-api/doc/standard-html-renderkit-base.xml
Sending jsf-api/doc/standard-html-renderkit.xml
Sending jsf-ri/conf/share/tlddoc-resources/stylesheet.css
Sending jsf-tools/src/main/resources/com/sun/faces/generate/facesdoc/stylesheet.css
Transmitting file data ....
Committed revision 10327.





[JAVASERVERFACES_SPEC_PUBLIC-526] Missing 'name' attribute in composite:valueHolder example Created: 23/Feb/09  Updated: 19/Nov/12  Resolved: 19/Nov/12

Status: Closed
Project: javaserverfaces-spec-public
Component/s: Documentation: Javadoc, TLDDoc, RenderkitDoc, PDF
Affects Version/s: 2.0
Fix Version/s: 2.2 Sprint 13

Type: Bug Priority: Minor
Reporter: dougd Assignee: Ed Burns
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 526
Status Whiteboard:

size_small importance_large


 Description   

Name attribute is required and our example should follow this rule.

Example as it stands now.

<composite:interface>
<composite:valueHolder targets="userid,password" />
</composite:interface>



 Comments   
Comment by dougd [ 23/Feb/09 ]

Also notice in the earlier reference that there is a "," separating the targets.
According to the PDL documentation this should be white space.

"Space is used as the delimiter for compatibility with the IDREFS and NMTOKENS
data types from the XML Schema. "

Comment by dougd [ 23/Feb/09 ]

Another discrepancy is the reference to the for attribute in the f:converter tag.

<f:converter for="userid" binding="#

{bean.converter}

" />

the f:converter tag no longer has reference to a for attribute in the PDL docs.
The two attribute for this tag are "converterId" and "binding".

Comment by Ed Burns [ 16/Mar/09 ]

Take ownership

Comment by Ed Burns [ 24/Sep/09 ]

Move to unscheduled target milestone

Comment by Ed Burns [ 24/Nov/09 ]

Prepare to delete "spec" subcomponent.

Comment by rogerk [ 17/Jun/10 ]

triage

Comment by Ed Burns [ 22/Jun/10 ]

2.1

Comment by Ed Burns [ 24/Jun/10 ]

GlassFish 3.1 M6 at the latest.

Comment by Ed Burns [ 10/Sep/10 ]

Move these to 2.2

Comment by Ed Burns [ 24/Jul/12 ]

SECTION: Modified Files
----------------------------
M jsf-ri/conf/share/composite.tld

  • Add name attribute to example.

Authentication realm: <https://svn.java.net:443> Subversion Repository
Username: edburns
Password for 'edburns':
Sending jsf-ri/conf/share/composite.tld
Transmitting file data .
Committed revision 10326.

Comment by Ed Burns [ 19/Nov/12 ]

assign component





Generated at Thu Dec 08 12:21:06 UTC 2016 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.