Upload
vuminh
View
223
Download
0
Embed Size (px)
Citation preview
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3Pre-PublicReviewECUpdate
EdBurnsJSFSpecCo-LeadJavaEESpecGroupJanuary,2017
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirecRon.ItisintendedforinformaRonpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfuncRonality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andRmingofanyfeaturesorfuncRonalitydescribedforOracle’sproductsremainsatthesolediscreRonofOracle.
3
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
MyPlanforYourTimeInvestment
JCPECTemplate
JSF2.3isthemostcommunitydrivenOracle-leadJSR
Schedule
FeatureReview
1
2
3
4
4
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JCPECTemplate
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
Business/MarkeRng/EcosystemJusRficaRon• WhydothisJSR?– JSFisanimportantpartoftheJavaEEpla[ormandmustbeupdatedtokeepcurrentandfixlongstandingissues.
• What’stheneed?– JavaEEandJavaSE8havesomecompellingnewfeatures,we’dliketotakeadvantageoftheminJSF.– WeneedtoconRnuetoimprovetheintegraRonoftheJavaEEpla[ormspecs.
• HowdoesitfitintotheJavaecosystem?– Atatechnicallevel,ithighlyleveragesServlet,CDI,BeanValidaRonandEL– Atacommunitylevel,itvalidatestheJCPasasourceforJavacollaboraRon.
6
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
Business/MarkeRng/EcosystemJusRficaRon• IstheideareadyforstandardizaRon?– Yes.ItconRnuesthetradiRonoftakingexisRngideas,andstandardizingthem.
7
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
• Burns,EdwardOracle• Caputo,Frankindividual• Civici,Cagatayindividual• Fyten,KenICEsodTechnologiesInc.• Griffin,NeilLiferay,Inc• Juneau,Joshindividual• Leathem,BrianRedHat• Mann,KitoIndividual
• Mueller,MichaelIndividual• Nicolucci,PaulIBM• Riem,ManfredOracle• Scholtz,BaukeZEEF• Tijms,ArjanZEEF• Uribe,LeonardoIrianSoluRonsGmbH
ExpertGroupMembers(alphabeRcal)
8
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
ExpertGroupOperaRons• Wehadaface-to-faceatJavaOne2016• We’vealwaysmadeuseofthejava.netcollaboraRoninfrastructure– AnyonecancreateissuesintheJIRA– AnyEGmembercantop-posttothejsr372-expertsmailinglist– Allmailstothatlistaremirroredtothe“users”list:• [email protected]
9
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
Deliverables• SpecDocument– JavaDocs– RenderKitDocs– VDLDocs(for“tags”tobeusedinyourJSFPages)– PDFdocument
• ReferenceImplementaRon,integratedintoJavaEE8ReferenceImplementaRon• TCK
10
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
Publicity• JavaOnepresentaRons• CommunityBlogs• @jsf_spectwiperhandle
11
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
CollaboraRonwithothercommunitygroups• Lotsofcross-membershipwithPortlet• ExpertGroupmembersdorepresenttheirowncommuniRes– PrimeFaces– Liferay– MyFacesimplementaRonandcommunity
12
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
ImplementaRons• Mojarra,OracleReferenceImplementaRon• MyFaces,ApacheimplementaRon,usedinWebSphere
13
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
Licenses• StandardOracleSpecLicenses• RIlicensedsameasGlassFish
14
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF:KeepingtheCinJCPsince2004
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
HistoryofJSFCommunityInvolvement
• JSFwasthefirstpartofJavatobeopensourced– hpps://community.oracle.com/blogs/edburns/2004/06
• JSFhasacommunitycreatedlogo– hpps://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-980
• JSF1.0hadhugelysignificantcontribuRonsfrommanyvendors– IBM:PortletintegraRonJSR-168– Oracle:UIComponentModel– BEA:ManagedBeanmodel– Sun:Specleadershipandmanyfundamentalaspects
SomeHighlights
16
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
HistoryofJSFCommunityInvolvement
• JSF2.0– Facelets,mainlycontributedbyJacobHookom– Ajax,collaboraRvelydeveloped,butheavilyinfluencedbyIceFacesandAjax4JSF
• JSF2.2– ResourceLibraryContractsfromFrankCaputo– HTML5FriendlyMarkupfromImreOsswald
SomeHighlights
17
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSFHistoricalPerspecRve
2004
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSFHistoricalPerspecRve
2008
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSFHistoricalPerspecRve
2009
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSFHistoricalPerspecRve
2010
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSFHistoricalPerspecRve
2013
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSFHistoricalPerspecRve
2014hpp://bit.ly/JsfFtw2015Poll:JSFandSpringMVCRe
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSFHistoricalPerspecRve
2016
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3andtheCommunity
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3JSR-372
26
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3JSR-372
27
Small,targetedsetofnewfeaturesdirectedbycommunitycontribuRon
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3JSR-372
28
Small,targetedsetofnewfeaturesdirectedbycommunitycontribuRon
BeperCDIIntegraRon
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3JSR-372
29
Small,targetedsetofnewfeaturesdirectedbycommunitycontribuRon
BeperCDIIntegraRonAjaxImprovements
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3JSR-372
30
Small,targetedsetofnewfeaturesdirectedbycommunitycontribuRon
BeperCDIIntegraRonAjaxImprovements
DirectDependenceonEE8
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3JSR-372
31
Small,targetedsetofnewfeaturesdirectedbycommunitycontribuRon
BeperCDIIntegraRonAjaxImprovements
DirectDependenceonEE8
SupportforMVC1.0
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
AcRvismJSF2.3andtheCommunity
32
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3andtheCommunity• JSFEGMemberJoshJuneau’sfamousblogpost– hpp://jj-blogger.blogspot.com/2016/04/java-ee-8-what-is-current-status-case.html– UsedpublicallyavailableinformaRon,thankstoouradherencetoJCPtransparencyrules,tohighlighttheacRvitylevelofJSFoverRme– Madethecasethatthelevelwasinsufficient
33
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3andtheCommunity
34
0
20
40
60
80
100
120
140
2014-09-01
2014-10-01
2014-11-01
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
2015-10-01
2015-11-01
2015-12-01
2016-01-01
2016-02-01
2016-03-01
2016-04-01
2016-05-01
2016-06-01
2016-07-01
2016-08-01
2016-09-01
2016-10-01
2016-11-01
2016-12-01
EGMailtrafficperMonth
EGMailtrafficperMonth
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3andtheCommunity
• ThoughcurrentlyMojarraGitHubisamirrorofMojarraonjava.netgit
GitHubCommits
35
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3CompleRonSchedule
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3CompleRonSchedule• SharedwithJSFEGon2016-12-09– 2017-01-12AllJSF2.3relatedEGspeccontentdeliveredtolist– 2017-01-2030DayPublicReviewcommences– 2017-01-27AnyremainingEG-drivenimplementaRonworkdone– 2017-03-14FinalApprovalBallotcommences
37
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3CompleRonSchedule• AddiRonalDetailsforEC– 2017-01-12AllJSF2.3relatedEGspeccontentdeliveredtolist– 2017-01-2030DayPublicReviewcommences– 2017-01-27AnyremainingEG-drivenimplementaRonworkdone• 2017-02-2114DayPublicDradApprovalBallotcommences• 2017-03-0614DayPublicDradApprovalBallotcompletes• 2017-03-077DayProposedFinalDradofspectoJCPPMO– AlsosubmitfinalRIandTCKforFinalApprovalBallot
– 2017-03-14FinalApprovalBallotcommences• 2017-03-27FinalApprovalBallotcompletes• 2017-03-28DisbandJSFEG
38
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
FeatureReview
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeatures,donebytheJSFEG
• BeperCDIIntegraRon– Waymorethingsareinjectable– Finallymarkinglegacymanagedbeansasdeprecated
• WebsocketIntegraRon• AjaxMethodInvocaRon• ClassLevelBeanValidaRon• JavaTimesupport• UIDataandUIRepeatimprovements
h=p://arjan-Bjms.omnifaces.org/p/jsf-23.html
40
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeaturesh=p://arjan-Bjms.omnifaces.org/p/jsf-23.html
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeaturesh=p://arjan-Bjms.omnifaces.org/p/jsf-23.html
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeaturesWebSocketIntegraBon
<!DOCTYPEhtml>
<htmllang="en"xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://xmlns.jcp.org/jsf/core"xmlns:h="http://xmlns.jcp.org/jsf/html"><h:body><h:formid="form"><h:commandButtonid="button"value="push"action="#{pushBean.send}"><f:ajax/></h:commandButton></h:form>
<f:websocketchannel="push"onmessage="function(message{document.getElementById('form:button').value=message;}"/><divid="user"/><f:websocketchannel="user"user="user"onmessage="function(message){document.getElementById('user').innerHTML=message;}"/><divid="view"/><f:websocketchannel="view"scope="view"onmessage="function(message){document.getElementById('view').innerHTML=message;}"/</h:body></html>
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeaturesWebSocketIntegraBon
@ModelpublicclassPushBean{@Inject@PushprivatePushContextpush;@Inject@PushprivatePushContextuser;@Inject@PushprivatePushContextview;publicvoidsend(){push.send("pushed!");user.send("pushed!","user");view.send("pushed!");}}
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeatures
<!DOCTYPEhtml>
<htmllang="en"xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://xmlns.jcp.org/jsf/core"xmlns:h="http://xmlns.jcp.org/jsf/html"><h:body>
<h:form>
<h:commandScriptname="foo"autorun="true"action="#{spec613.setResult('foo')}"render=":result"/>
<h:commandScriptname="bar"action="#{spec613.setResult('bar')}"render=":result"/>
</h:form>
<h:outputTextid="result"value="#{spec613.result}"/>
</h:body>
</html>
AjaxMethodInvocaBon
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeatures
@Named
@RequestScoped
publicclassSomeBean{
@Inject
privateFacesContextcontext;
publicvoideval(){
context.getParRalViewContext()
.getEvalScripts()
.add("alert('Aderresponse')");
}
}
GetEvalScripts
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeatures
<h:formprependId="false"id="form"><h:panelGridcolumns="2"><h:outputTextvalue="Password"/><h:inputSecretid="password1"value="#{backingBean.password1}"/><h:outputTextvalue="Passwordagain"/><h:inputSecretid="password2"value="#{backingBean.password2}"/><h:commandButtonid="submit"value="Submit"/></h:panelGrid><h:messagesid="err"/><f:validateWholeBeanvalue="#{backingBean}"copierType="SerializationCopier"validationGroups="com.sun.faces.test.javaee8.validateWholeBean.PasswordValidationGroup"/></h:form>
ClassLevelBeanValidaBon
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeatures
@Named@RequestScoped@Password(groups=PasswordValidationGroup.class)publicclassBackingBeanimplementsSerializable{privateStringpassword1;privateStringpassword2;
//...}}
@Constraint(validatedBy={PasswordValidator.class})@Documented@Target(TYPE)@Retention(RUNTIME)public@interfacePassword{Stringmessage()default"Passwordfieldsmustmatch";Class<?>[]groups()default{};Class<?extendsPayload>[]payload()default{};
}
ClassLevelBeanValidaBon
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeatures
publicclassPasswordValidatorimplementsConstraintValidator<Password,BackingBean>{
@Overridepublicvoidinitialize(PasswordconstraintAnnotation){}@OverridepublicbooleanisValid(BackingBeanvalue,ConstraintValidatorContextcontext){booleanresult;result=value.getPassword1().equals(value.getPassword2());returnresult;}
}
ClassLevelBeanValidaBon
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeaturesJavaDateTimeSupport
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
JSF2.3BigTicketNewFeatures
• SupportsIterable
UIDataandUIRepeatImprovements
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
Q&A
52