Skip to main content

edburns's Blog

JSF 2.2 Early Draft Review Available

Posted by edburns on November 11, 2011 at 1:47 PM EST

JSF 2.2 Early Draft Review Available

Three days ago, the JSF 2.2 Early Draft Review Specification was released. You can download it from <http://jcp.org/aboutJava/communityprocess/edr/jsr344/> and the in-progress reference implementation can be obtained by following the instructions in my blog entry from 26 September 2011. With this blog entry, I want to quickly survey the new and proposed features, not all of which are implemented in Mojarra yet. The following content is taken from the Preface section in the PDF document, which is and always has been your one-stop-shop for discovering what's new in the spec.

Let me begin by re-stating what I've been saying since the JSF 2.2 kickoff BOF at CON_FESS Vienna last year: 2.0 was the last BIG FEATURE release of JSF. From now on, JSF will be maintained with smaller, more frequent releases. I'm hoping to get JSF 2.2 done in the first half of 2012. The first thing you'll note about the "Changes between 2.1 and 2.2" section: it's just a list of JIRA issue with a description of each one. You can read through the list just as well as I can so I'll just call out the more interesting ones here.

Mostly Specified Features

758-ViewAction

This one is taken directly from Seam's Faces Module. This feature viewMetadata to the next level by letting you include actions in the metadata and customizing how and when the action is delivered. Just a <f:viewParam> is an EditableValueHolder, <f:viewAction> is an ActionSource2.

1001-UnifyCompositeAndNotCompositeComponents

Make it possible for a Facelets Tag Library to have both composite and non-composite components.

763-EverythingIsInjectable

Every kind of artifact created by JSF is now fully injectable via CDI and also can have @PostConstruct and @PreDestroy annotated methods which will get called at the right time.

869-ClientSideRequestForgeryProtection

Standardize how JSF provides CSRF protection.

1038-FaceletsResourceResolverAnnotation

Make it possible to declare a Facelets ResourceResolver without using XML.

Not Yet Fully Specified Features

730-TaskFlows

Bring the best of Spring Web Flow, ADF Task Flows, and MyFaces CODI to the JSF spec. This feature intends to provide support for encapsulating related views together such that applications can be created as composites of modules of functionality, with each module consiting of well defined entry and exit conditions.

802-FileUpload

Finally add a component for file upload.

971-MultiTemplating

My friend and fellow java.net blogger Mamadou Lamine Ba has done some great work on this idea and is donating the core of it to the JSF 2.2 spec. The idea is to bring the best of Joomla! to the JSF spec. When you combine this feature with 730-TaskFlows, and put the result on top of the cloud features of JavaEE 7, you have a very compelling multi-tenant capable platform. Please see Lamine's blog entrys from 28 August 2011 and 5 June 2011 for some great details and a sharp looking demo, running on Google App Engine.

Technorati Tags:

Comments

&nbsp;Am mostly excited about: CSRF protection: it ...

Am mostly excited about:

  • CSRF protection: it would be nice if this feature goes into Servlets spec instead.
  • TaskFlows.
  • MultiTemplating: It would be nice if you can add placeholders declaration to templates where a component contribute markup let say I have this snipest in a facelets template <div role="placeholder" name="header-area"></div> a {composite}component loaded from a jar droped into classpath (or a configurable dir specified by a context attribute) would express intent to contribute markup/style to a placeholder with name "header-area".

TaskFlows !!! That's brilliant. It really was the missing ...

TaskFlows !!! That's brilliant. It really was the missing bit of the puzzle in EE. You have fulfilled a dream of mine ;o)

I appreciate your enthusiasm, but the dream is not yet ...

I appreciate your enthusiasm, but the dream is not yet fulfilled!  I'll work that much harder on it because of your kind post, though.

 

Ed

I think&nbsp;that all the features will be fantastic ...

I think that all the features will be fantastic additions to JSF but my favorites would be TaskFlows and ViewActions.

JSF 2.2 and 2.1 Nightly Builds Running Again

Posted by edburns on November 11, 2011 at 9:47 AM EST

JSF 2.2 and 2.1 Nightly Builds Running Again

I'm ashamed to say it, but we've gone over two years without having a working nightly build system for Mojarra. As of last week or so, I finally got the nightly working again. We now have our internal hudson instances configured to publish nightly SNAPSHOT builds to the java.net snapshot repository. Please visit my previous blog entry for instructions about how to access this repository. Here are the maven GAV for the code lines for which there are nightly builds. The bits are only pushed to maven if all the automated tests pass. Look in the actual maven repo to see the timestamp of most recently published bits.

JSF 2.2 SNAPSHOT

This is the absolutely most recent JSF version, still in active development. JSF 2.2, or a maintenance release thereof, will be in JavaEE 7. For more on this code line visit <http://jsf-spec.java.net/>.

Standalone Implementation (corresponding source jar available too)

The stripped API jar, only for satisfying compile time dependcies (corresponding javadoc and source jars available too)

     
    <dependency>   
       <groupId>javax.faces</groupId>   
       <artifactId>javax.faces-api</artifactId>   
       <version>2.2‑SNAPSHOT</version>   
       <scope>provided</scope> 
    </dependency> 
    
    

JSF 2.1

This code line corresponds to the most recent completed JSF spec release.

Standalone Implementation (corresponding source jar available too)

The stripped API jar, only for satisfying compile time dependcies (corresponding javadoc and source jars available too). Note that this is not a SNAPSHOT because JSF 2.1 is final.

     
    <dependency>   
       <groupId>javax.faces</groupId>   
       <artifactId>javax.faces-api</artifactId>   
       <version>2.1</version>   
       <scope>provided</scope> 
    </dependency> 
    
    

Technorati Tags:

Comments

I have seen this before, it's some kind of ordering ...

I have seen this before, it's some kind of ordering problem.  One of the automated tests is looking for a jar that is published by another of the automated tests but for some reason the ordering you are observing is not conducive to things working out correctly.

Can you try to manually run the "ant build install" in jsf-test/GLASSFISH-11636 ?

That test only runs in certain configurations but perhaps the other test that uses the jar from GLASSFISH-11636 doesn't run in that same set of configurations.

Ed

I wonder how all automated tests can pass. I'm trying to run ...

I wonder how all automated tests can pass. I'm trying to run the tests for the Mojarra 2.2 trunk locally. The build succeeds, but the tests fail on a missing maven dependency:

[exec] [INFO] Building i_jsf_1995_ear

[exec] [INFO] task-segment: [install]

[exec] [INFO] ------------------------------------------------------------------------

Downloading: http://repo1.maven.org/maven2/com/sun/faces/test/bean/1.0/bean-1.0.pom

[exec] [INFO] Unable to find resource 'com.sun.faces.test:bean:pom:1.0' in repository central (http://repo1.maven.org/maven2)

Does the build server still has this dependency cached perhaps, or am I doing something wrong?

(UPDATED 20110930-1357) Ed Burns JavaOne 2011 Session Picks

Posted by edburns on September 28, 2011 at 3:01 PM EDT

Here is my session presentation and attendence plan for JavaOne 2011.

Sunday, October 2
1:00pm
 ME More than Skin Deep JSF 2.0 Foundation and Practice
 
5:30pm
 Larry Ellison Keynote
 
7:30pm
 GlassFish Community Party
 
Monday, October 3
8:30am
 Technical Keynote
 
11:00am
 Choose Your Java Web Framework
 
11:30am
 Cloud Panel Discussion
 
12:30pm
 Victor Grazi Java Concurrent Animated
 
1:30pm
 Booth Duty
 
7:00pm
 ME: JSF Status and Community Input
 
Tuesday, October 4
10:30am
 Atilla Szegedi
 
3:30pm
 Rod Johnson, Cameron Purdy, Mark Little Cloud + AppServer
 
4:30pm
 Spock Batch Testing
 
Wednesday, October 5
11:30am
 Java EE 7 Panel Discussion
 
1:00pm
 Dan Allen and Richard Kennard Metawidget
 
1:30pm
 Booth Duty
 
Thursday, October 6
10:45am
 Jevgeni Kabanov ClassLoaders
 
11:30am
 David Blevins Apache TomEE
 
2:00pm
 ME: Java and JSF: JSF Has Never Been Just About Markup
 
3:30pm
 JavaEE SpringMVC Shoot-out
 

Position Paper on HTML5 in JSF 2.2

Posted by edburns on September 26, 2011 at 4:43 PM EDT

There is a lot of well-founded buzz around HTML5 but I assert that nearly all of it stems from how HTML5 enables the UI authoring experience to focus entirely on the browser, instead of on server-side processing that delivers content to the browser. For years, I've been making the case that building a web application is really building a distributed application, and therefore the art is finding the best allocation of processing tasks (UI, persistence, business logic, security, etc.) to processing nodes (smartphoe, tablet, laptop, desktop, browser, server, etc). The emergence of HTML5 as a viable deployment platform changes how we answer the question of "where does the User Interface processing task go?" My goal with this blog entry is to shed some light on what this means for JSF.

Where are we now and how did we get here?

Ever since the addition of the <form> element to HTML+ in 1993 developers have been trying to force the pace of innovation delivered by browser vendors in order to deliver more and more compelling applications while lowering development/deployment/maintenance costs. Two factors have historically influenced this trend: ubiquity and capability. As soon as enough people had reasonably capable browsers, server side frameworks, such as JSF stepped in to give developers what they'd been wanting since 1993: "yeah, this browser stuff is nice, but what if I want to make my own darn tags? How can I do that?"

Graph of browser capability vs. browser ubiquity

Server side frameworks provide a browser-like authoring experience, but enable the use of components not present in the least-common-denominator browser. This is achieved through server side processing using JavaScript, images, and other browser primitives. In addition to this "capability extension" feature, server side frameworks also let developers keep a tighter hold on security, provide better I18N, and lower maintenance costs.

Now that HTML5 is reasonably ubiquitous, the need for the "capability extension" feature is not as pressing. For example the power of the HTML5 Canvas object, combined with the full expressiveness of JavaScript, lets you do a whole lot more directly on the browser. Even so, I think there is still a place for server side frameworks, not least for the cases of security and maintainence costs. I think the UI task today is really like finding the right value for this slider. Indeed most apps today need to address a huge variety of client device types, and the flexibility afforded by a server side framework is an asset in meeting that goal. For these and other reasons too deep for a quick blog post, I think the usefulness of server side UI frameworks has not yet reached its end.

How does JSF 2.2 fit in?

So where does that leave JSF 2.2? As you may know, HTML 5 is a huge specification and it addresses many different categories of content. We are still very early in the development of JSF 2.2 but I can state we plan to address elements in the following content categories.

Metadata

JSF applications already have large amounts of metadata available to them. We need to find the best way to allow that data to naturally express itself via the corresponding capability in HTML5.

Sectioning and Heading

Just as the lightweight ontology of section values in HTML5 was obtained by searching google for how people were using their div tags, the same idea can be applied to how people are using their facelet templates.

Form associated elements

Form based applications are the reason for must web applications and it is this category that most ofthe HTML5 related work in JSF 2.2 will happen. For example, HTML5 now has native slider and calendar controls, which only used to be implemented using server side processing and delivering JavaScript and images.

Current Status

We're still working on delivering a revision of the spec that ties up all the loose ends left over from JSF 2.1 such as <f:viewAction />, Cross Site Request Forgery protection, and File uploads. Once the Early Draft Release milestone has been reached, we can start to think more seriously about what to do with HTML5.

Technorati Tags:

Comments

&nbsp;With respect to the current status, I've created an ...

With respect to the current status, I've created an overview of the great work you guys have been doing the last couple of months here: What's new in JSF 2.2?

It's just a summary of the jira issues that have been worked on for JSF 2.2 and for which actual commits have been done in the trunk. (I hope it's okay to post that link here, if it isn't please remove it)

Does this mean anything for the planning as put in JSR ...

Quote:
We are still very early in the development of JSF 2.2 [...]

Does this mean anything for the planning as put in JSR 344? According to the anticipated schedule mentioned there, the proposed final draft would be in Q4 2011. Is that still the goal?

&nbsp;Hi Ed, That's a nice and short overview. It's good to ...

Hi Ed,

That's a nice and short overview. It's good to see the JSF spec evolving really fast now!

Best regards,

Bart Kummel

Try out Mojarra 2.2.0-SNAPSHOT

Posted by edburns on September 26, 2011 at 1:53 PM EDT

If you want to try out the absolute latest Mojarra 2.2-SNAPSHOT, you can run it on GlassFish 3.1 or GlassFish 3.1.1. To install it, grab the 2.2.0-SNAPSHOT version of Mojarra from this repository.

 <repository>   
   <id>jvnet-nexus-snapshots</id>   
   <name>jvnet-nexus-snapshots</name>   
   <url>https://maven.java.net/content/repositories/snapshots/</url> 
 </repository> 
 <dependency>   
   <groupId>org.glassfish</groupId>   
   <artifactId>javax.faces</artifactId>   
   <version>2.2.0-SNAPSHOT</version>   
   <scope>provided</scope> 
 </dependency> 

Once you download the javax.faces.jar, you must take some steps to install it in GlassFish 3.1 or 3.1.1.

  1. Remove jsf-api.jar and jsf-impl.jar from the modules directory.

  2. Put javax.faces.jar in the modules directory.

  3. You must modify the default-web.xml file in domains/domain1/config and lib/templates. In each directory, remove any mention of jsf-api.jar and jsf-impl.jar from the default-web.xml file. In place of the two jars, add a reference to javax.faces.jar.

Once Mojarra 2.2.0-SNAPSHOT has been installed in your GlassFish 3.1.1 or GlassFish 3.1 container, you can use the 2.2-SNAPSHOT verson of the javax.faces-war-archetype, which is just like the previous one except that it depends on the 2.2-SNAPSHOT version of the JSF API. You must always include the -DarchetypeRepository argument to mvn because SNAPSHOT artifacts are never pushed to maven central.

mvn archetype:generate -DarchetypeGroupId=javax.faces -DarchetypeArtifactId=javax.faces-war-archetype -DarchetypeVersion=2.2-SNAPSHOT -DarchetypeRepository=https://maven.java.net/content/repositories/snapshots/

This blog entry signifies the culmination of the effort of many individuals from many disciplines over the years. I would like to thank them all for finally allowing official Java jars to flow into Maven Central.

Technorati Tags:

Related Topics >>

JCP/JavaEE Artifacts in Maven Central

Posted by edburns on September 2, 2011 at 5:43 PM EDT

JCP/JavaEE Artifacts in Maven Central

As mentioned in the Editor’s Blog, java.net artifacts are finally available in Maven Central. This includes the official JCP/JavaEE artifacts, being published by the official steward of Java technology. This blog entry brings to your attention a few points about using these artifacts, as well as introducing a simple archetype that the Mojarra team uses to facilitate the creation of automated regression tests.

I am not at all in the position to comment on maven best practices, but one problem I’ve run into is the effect of bitrot on a maven build. This can sometimes result in a complicated assortment of repository entries leading to the lack of a clear understanding of how your dependencies are being satisfied. Now that the official JavaEE artifacts are all in maven central, you can omit the repository declaration entirely from your projects, relying on a mirror declaration in your settings.xml file, if necessary. If you are developing a Java EE 6 application, all of the compile time dependencies can be satisfied from a single artifact, in maven central.

  1. <dependencies>
  2.   <dependency>
  3.     <groupId>javax</groupId>
  4.     <artifactId>javaee-api</artifactId>
  5.     <version>6.0</version>
  6.     <scope>provided</scope>
  7.   </dependency>
  8. </dependencies>

It is important to note that this dependency was declared with <scope>provided</scope> This is the only way you can use this dependency because the jar has been stripped of all java code and contains only signatures. The actual implementation of JavaEE 6 comes, naturally, from your Java EE 6 compliant container.

If you would rather go à la carte, the individual artifacts for all of the JavaEE technologies are also available, as listed in these tables. The first table lists artifacts that conform to the naming scheme Oracle Architect, and JavaEE Titan, Bill Shannon. The scheme is documented at <http://wikis.sun.com/display/GlassFish/Maven+Versioning+Rules>.

Technology
groupId
artifactId
version
JSR-299 Contexts and Dependency Injection for JavaEE
javax.enterprise
javax.cdi-api
1.0
JSR 314 JavaServer Faces
javax.faces
javax.faces-api
2.1
JSR 330 Dependency Injection for Java
javax.inject
javax.inject
1
JSR 316 Java EE 6
javax
javaee-api
6.0
JSR 919 Java Mail
javax.mail
javax.mail-api
1.4.4
JSR 315 Java Servlet
javax.servlet
javax.servlet-api
3.0.1
JSR 245 Java Servlet
javax.servlet.jsp
javax.servlet.jsp-api
2.2.1

The remaining jars do not conform to the naming scheme, but are useful for compilation nonetheless.

Technology
groupId
artifactId
version
JSR 925 JavaBeans Activation Framework
javax.activation
activation
1.1.1
JSR 250 Standard JavaEE Annotations
javax.annotation
jsr250-api
1.0
JSR 107 JCache
javax.cache
cache-api
0.2
JSR 188 Delivery Context
javax.ccpp
ccpp
1.0
(pre JCP JSR) Java Communications API
javax.comm
comm
3.0-u1
JSR 220 Enterprise Java Beans
javax.ejb
ejb-api
3.0
JSR 341 Expression Language
javax.el
el-api
2.2
JSR 52 JSP Standard Tag Library
javax.servlet
jstl
1.2
JSR 97 JavaHelp
javax.help
javahelp
2.0.05
JSR 208 Java Besiness Integration
javax.jbi
jbi
1.0
JSR 283 Java Content Repository API
javax.jcr
jcr
2.0
JSR 243 Java Data Objects 2
javax.jdo
jdo2-api
2.2
JSR 914 Java Messaging Service
javax.jms
jms-api
1.1-rev-1
JSR 181 Web Services Metadata for Java
javax.jws
jsr181-api
1.0-MR1
JSR 77 Java Management API
javax.management.j2ee
management-api
1.1-rev-1
JSR 317 Java Persistence
javax.persistence
persistence-api
1.0.2
JSR 286 Java Portlet
javax.portlet
portlet-api
2.0
JSR 322 Java EE Connector
javax.resource
connector-api
1.6-alpha-1
JSR 32: JAIN SIP API Specification
javax.sdp
nist-sdp
1.0
JSR 115 Java Authorization Contract for Containers API
javax.security
security-api
1.1-rev-1
JSR 240 JAIN SLEE
javax.slee
jainslee-api
1.1
JSR 907 Java Transaction API
javax.transaction
transaction-api
1.1-rev-1
JSR 303 Bean Validation
javax.validation
validation-api
1.0.0.GA
JSR 311 Java API for RESTful Web Services
javax.ws.rs
jsr311-api
1.1.1
JSR 222 Java Architecture for XML Binding
javax.xml.bind
jaxb-api
2.2.4
JSR 105 XML Digital Signature APIs
javax.xml.crypto
jsr105-api
1.0.1
JSR 206 Java API for XML Processing
javax.xml.parsers
jaxp-api
1.4.2
JSR 93 Java API for XML Registries
javax.xml
jaxr-api
1.0_04
JSR 101 XML RPC
javax.xml
jaxrpc-api
1.1
XML Web Services
javax.xml
jaxws-api
2.0EA3
JSR 173 Streaming API for XML
javax.xml.stream
stax-api
1.0-2
JSR 67 XML Messaging
javax.xml.soap
saaj-api
1.3.4
JSR 196 Java Authentication Service
Provider Interface for Containers
javax.xml
webservices-api
2.1-b16
JSR 224 XML-Based Web Services
javax.xml.ws
jaxws-api
2.2.6

If you want to use JSF 2.1, which was released after JavaEE 6, it is necessary to explicitly place a compile time dependency on that artifact before the javaee-api 6.0 dependency.

  1. <dependencies>
  2.   <dependency>
  3.     <groupId>javax.faces</groupId>
  4.     <artifactId>javax.faces-api</artifactId>
  5.     <version>2.1</version>
  6.     <scope>provided</scope>
  7.   </dependency>
  8.  
  9.   <dependency>
  10.     <groupId>javax</groupId>
  11.     <artifactId>javaee-api</artifactId>
  12.     <version>6.0</version>
  13.     <scope>provided</scope>
  14.   </dependency>
  15. </dependencies>

Oracle GlassFish Server 3.1.1 <http://glassfish.org/> contains an implementation of JSF 2.1.

Archetypes That Use The Artifacts

Because we now have these artifacts in maven central, it is possible for us to finally add archetypes that use them. This first archetype creates a simple war project that depends on JSF 2.1 and JavaEE 6.

 mvn archetype:generate -DarchetypeGroupId=javax.faces -DarchetypeArtifactId=javax.faces-war-archetype -DarchetypeVersion=2.1 

A subsequent post will document the use of another artifact, for the very latest JSF version, 2.2-SNAPSHOT.

This blog entry signifies the culmination of the effort of many individuals from many disciplines over the ears. I would like to thank them all for finally allowing official Java jars to flow into Maven Central.

Technorati Tags:

Related Topics >>

Comments

&nbsp;Nice, but I noticed that JPA 2 is missing.

Nice, but I noticed that JPA 2 is missing.

I've found that having the java code stripped from these ...

I've found that having the java code stripped from these jars makes them quite useless in a real project because any unit tests that reference associated code cannot be executed.

Thanks for your interest and feedback.&nbsp; If you want ...

Thanks for your interest and feedback.  If you want code that executes, rather than just compiles, then you need to place a dependency on a specific implementation of JSF.  For Mojarra that is groupId: org.glassfish artifact: javax.faces version: 2.1.3.

 

Ed

Using Expect to Work Around CVS SSH Checkout

Posted by edburns on July 1, 2011 at 3:57 PM EDT

Pragmatic Programmer Stuart Holloway said in a tweet recently, “Anybody can be agile in a green field. Show me your 3rd, 4th, and 5th releases.” Well, we've been maintaining Oracle Mojarra JSF for 32 releases and, we’ve found hudson a completely invaluable tool for maintaining agility as the technology matures and requires maintenance across all the versions we've ever released. Unfortunately, project hygiene has been difficult to maintain across all the code lines, and the JSF 1.2 branch hasn't had a working hudson job in several years. This blog entry shares a little tip I uncovered while re-activing the Mojarra JSF 1.2 job.

Mojarra JSF 1.2 is maintained in CVS because it is not economically viable to move it to a more recent version control system. As such, it must use CVS_RSH. More recent versions of hudson have support for this, but for some reason I haven't been able to get it working with the java.net cvs server. I used a combination of perl and expect to get the checkout working.

I had to download and install expectperl from <http://sourceforge.net/projects/expectperl/> and the IO::Tty perl module from <http://search.cpan.org/~toddr/IO-Tty/Tty.pm> This little perl script successfully does the cvs update, even with the ssh password prompting.

  1. #!/usr/bin/perl
  2.  
  3. use Expect;
  4.  
  5. chdir("/files/hudson_local/jobs/MOJARRA_1_2X_ROLLING_GLASSFISH_2_1_1/workspace");
  6. $ENV{"CVSROOT"} = ":ext:8bit@java.net/cvs/javaserverfaces-sources~cvs-repository";
  7.  
  8. ($cvs = Expect->spawn("cvs update -d -P")) || die "Couldn't spawn cvs, $!";
  9.  
  10. unless ($cvs->expect(30, "Enter passphrase for key '/files/hudson_local/.ssh/id_rsa':")) {
  11.   die "Never got the passphrase prompt";
  12. }
  13.  
  14. print $cvs "this is not the real password\r";
  15.  
  16. unless ($cvs->expect(300, "cvs update: Updating www/legal/jsf-cddl")) {
  17.   die "Never saw update starting";
  18. }
  19.  
  20.  

This enables me to quickly get the Mojarra JSF 1.2 hudson job working again without upgrading hudson or messing with any other configuration nonsense.

Technorati Tags:

Ultra quick JSF 2.2 in progress changelog

Posted by edburns on June 16, 2011 at 5:25 PM EDT

I'm trying to get the first snapshot of JSF 2.2 published and I've just scanned through the svn logs and arrived at the following text, from which I'll derive the "Changes between 2.1 and 2.2" content.

* Deprecate the CURRENT_COMPONENT and CURRENT_COMPOSITE_COMPONENT attributes 
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-784

* Fix incorrect VDLDoc http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-967
  f:selectItems itemValue description incorrect.

* Remove maxlength from f:viewParam
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-922

* Additional clarification about binding attribute in VDLdocs
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-998

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-998
  Document that ui:fragment should not be bound to a bean with wider
  than request scope, document that the type of the property must extend
  from UIComponent.

* Wrapper for ActionListener http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-993

* Changes to "template" attribute requiredness for ui:decorate and
  ui:composition
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-999

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-997
  
M       jsf-api/src/main/java/javax/faces/event/ComponentSystemEvent.java

- Mark this class as changed_modified_2_2

- Override isAppropriateListener so that it first asks the listener,
  "are you a ComponentSystemEventListener", then, if not, asks
  super.isAppropriateListener()

M       jsf-api/src/main/java/javax/faces/event/SystemEvent.java

- Mark this class as changed_modified_2_2

- in isAppropriateListener(), document the default implementation.

M       jsf-api/src/main/java/javax/faces/component/UIComponent.java

- Make inner class ComponentSystemEventListenerAdapter implement
  ComponentSystemEventListener.

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-917

	javax.faces.application.ResourceWrapper:
		- getContentType()
		- getLibraryName()
	  - getResourceName()
	  - setContentType(String)
	  - setLibraryName(String)
	  - setResourceName(String)
	javax.faces.context.ExternalContextWrapper:
	  - getSessionMaxInactiveInterval()
	  - isSecure()
	  - setSessionMaxInactiveInterval()
	javax.faces.context.PartialViewContextWrapper
	  - setPartialRequest(boolean)

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-915

  Non-normative text about http methods.

* 12.1.3 add this text to the javax.faces.STATE_SAVING_METHOD spec.

When examining the value, the runtime must ignore the case.

* Add ExternalContext.getApplicationContextPath()
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1012

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-787: restore
  ViewScope before templates are processed with buildView()

* Tweak circumstances for skipping intervening lifecycle phases in the
  case of view metadata
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-762

* - Section 2.2.1.  Now has this text.

  Otherwise, call getViewMetadata() on the ViewDeclarationLanguage
  instance. If the result is non-null, call createMetadataView() on the
  ViewMetadata instance. Call ViewMetadata.getViewParameters(). If the
  result is a non-empty Collection, do not call
  facesContext.renderResponse(). If the result is an empty collection,
  try to obtain the metadata facet of the UIViewRoot by asking the
  UIViewRoot for the facet named UIViewRoot.METADATA_FACET_NAME. This
  facet must exist. If the facet has no children, call
  facesContext.renderResponse(). Otherwise, none of the previous steps
  have yielded the discovery any of metadata, so call
  facesContext.renderResponse().

* outputText and inputText do not render children by default
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-585

We're making some progress, but it's been challenging to balance operations issues with specification work.

Technorati Tags:

Jazoon 2011 Picks

Posted by edburns on June 14, 2011 at 10:02 AM EDT

I've managed to make it to Jazoon every other year since it startedin 2007 and God willing, I'll be attending and presenting there againthis year. I'm delighted to see the organizers expanding the breadth ofthe conference with the Microsoft and Software Engineering tracks. Thisis the best line-up of speakers they've ever had. I am very honored tobe among them. Here are the talks I would like to attend, extractedfrom my calendar.

Tuesday, June 21
9:30am
 David Chappell Keynote
11:00am
 Introduction to Microsoft Silverlight 5
12:00pm
 From User Story to Automated Integration via DSL
2:00pm
 Eclipse Mylyn
4:30pm
 Mobile Application Development at Credit Suisse
5:40pm
 Simon Ritter Keynote
6:30pm
 Networking event
Wednesday, June 22
9:00am
 Linda Rising Keynote
10:30am
 How to lead techies in highly technical projects
11:30am
 Java Concurrent Animated
1:30pm
 Real-time Collaborative Development
3:00pm
 Rapid Web Development with Play!
4:00pm
 IE9 From Microsoft
5:00pm
 Git, Gerrit, Mylyn
Thursday, June 23
10:30am
 Rajiv Web Tier
11:30am
 Present Hyperproductive JSF at Jazoon 2011

Technorati Tags:

Related Topics >>

Track Mojarra development on oloh and svnsearch

Posted by edburns on May 19, 2011 at 4:34 PM EDT

It's hard to know the exact numbers, but I'll venture a guess that well over half of the JSF sites that exist in the world are running Oracle's Mojarra implementation of the JSF spec. Did you know that this implemention is the first large part of JavaEE (then J2EE) to be open-sourced, way back in 2004? As with any decent open source project, we have public continuous integration, a public version control system (VCS), and public source browsing tools. This last part is the subject of this blog entry.

First, ohloh. If you don't have an ohloh account yet, please get one at <http://www.oloh.net/>. It has the"social coding" part of the whole GitHUB thing (without octocats, sadly) but not bound to any one VCS technology. Mauricio Scheffer has a nice blog entry listing the benefits of Ohloh in the panoply of similar technologies. <http://bugsquash.blogspot.com/2011/03/overview-of-my-oss-projects.html>. The ohloh project page for Mojarra is at <https://www.ohloh.net/p/Mojarra>.

Second, svnsearch. These days, svn is to git as XML was to Java annotationsfour years ago. Quite possibly the worst thing about svnsearch is the name, and that's only if your a git snob. It seems to have a nice interface and seems to be very solid. Vcsism aside, I like it. The svnsearch project page for Mojarra is at <http://svnsearch.org/svnsearch/repos/MOJARRA/search>.

Technorati Tags:

Related Topics >>