SlideShare uma empresa Scribd logo
1 de 29
JSF in der Praxis
24.03.2010    DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   1
MyFaces Extensions-Validator
             What’s new in version 3




24.03.2010     DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   2
Agenda - 1
• Bean-Validation Integration Module
     (JSR 303 for JSF 1.x & 2.x + special Features)
• Improved Support for
  3rd Party Component Libraries
• Typesafe Constraint Parameters
• Constraint Severity
• Pluggable Storages
• Meta-Data Filters
• Validation Interception
24.03.2010       DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   3
Agenda - 2
• SkipValidationEvaluator
• Optional Invocation Order
• Integration of RAD-Add-on
• Additional Static Syntax for
  @JoinValidation
• Empty-/Null-Value Markers
• Other Improvements
• New Add-ons

24.03.2010   DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   4
Bean-Validation Integration
• JSR 303 for JSF 1.x and JSF 2.x
• Integration Module as alternative/addition
  to the Property-Validation Module
• Compatible with all BV conform
  implementations
• Module provides additional features
• Advantage: It’s the (new) standard
• Disadvantage: Not all features of ExtVal
  will be available (due to spec. restrictions)
24.03.2010    DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   5
ExtVal vs. JSF 2 BV-Integration
• With ExtVal
     • @NotNull validation enabled by default
       (deactivation via std. JSF config)
     • Typesafe group validation
             • No Validation Markup in the Page
             • The ExtValBeanValidationContext allows
               custom implementations e.g. tags, configs,…
     • Component initialization
       (e.g. @NotNull    client-side required)
     • Severity aware validation


24.03.2010             DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   6
ExtVal vs. JSF 2 BV-Integration
     • Model based validation
     • Sorted violation messages
     • Out-of-the-box dependency injection support
       for constraint-validators




24.03.2010       DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   7
ExtVal Annotations for BV
• @BeanValidation
  for Group-Validation
• @ModelValidation
  class level validation of an explicit or
  implicit target




24.03.2010     DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   8
@BeanValidation
• Normally used in Page-Beans
• Available attributes
     •       viewIds (default: * for all pages)
     •       useGroups (default: Default.class)
     •       restrictGroups (default: -)
     •       conditions (default: #{true})
     •       modelValidation (default: -)
     •       List
             (equivalent to multi-constraint syntax of JSR 303)


24.03.2010                DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   9
@BeanValidation - Examples
• Simple group validation
    @BeanValidation(useGroups=Admin.class)
• Group validation for a specific view
    @BeanValidation(viewIds="/login.xhtml",
      useGroups=Admin.class)
• If group validation is defined for the whole
  bean, it might be required to exclude
  groups for special properties and/or views
    @BeanValidation(restrictGroups=Admin.class)
• Conditional group validation
    @BeanValidation(useGroups = Admin.class,
      conditions="#{user.role.privileged}")
24.03.2010     DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   10
@ModelValidation
• To trigger bean-validation after
  „Update model values" phase
• Also uses information of @BeanValidation
• Difference:
  @ModelValidation isn‘t accumulated
• Available attributes
     •       isActive (default: false)
     •       displayInline (default: false)
     •       validationTargets (default: current base object)
     •       message (default: -)
24.03.2010              DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   11
3rd Party Component Libraries
• Improved support for
     • Trinidad
     • ICEfaces
     • RichFaces
• New sandbox project e.g. for external
  component support modules to improve
  compatibility with 3rd party component
  libraries
  (http://code.google.com/p/sandbox890)


24.03.2010         DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   12
Typesafe Constraint Parameters
• Similar to the payload-attribute of BV
  (Payload is the subset of Constraint
  Parameters of ExtVal)
• Allows typesafe and reusable parameters
• Simple example - alternative for:
    @MyConstraint(payload = "warn")
    With Bean-Validation:
    @MyConstraint(payload = Warn.class)
• Processed by Add-ons or Component
  Libraries
24.03.2010         DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   13
Constraint Severity
• Constraints with Severity Info and Warn
  don‘t "stop" the JSF-Lifecycle
• ExtVal 1.x.3 provides out-of-the-box
     •       ViolationSeverity.Info.class
     •       ViolationSeverity.Warn.class
     •       ViolationSeverity.Error.class (= default)
     •       ViolationSeverity.Fatal.class




24.03.2010              DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   14
Optional: Pluggable Parameters
• ExtVal allows to map custom classes to the
  default implementations (esp. to avoid
  dependencies of BV Constraints to ExtVal)
• Mapping via
     • Global-ExtVal-Parameter
     • Static config
• Examples are available in the ExtVal Wiki



24.03.2010      DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   15
Pluggable Storages
• Generic mechanism which provides scoped
  storages with custom APIs
• Allows to create multiple storages of the
  same type with different names
• Allows to create different storage types
• StorageManager (per storage type)
     • Responsible for scoping
     • Allows to create and reset (custom) storages
       via an API (independent of the storage type)
• Allows to provide custom (tweaked) storage
  implementations easily
24.03.2010       DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   16
Meta-Data Filters
• Filters meta-data before it gets added to the
  meta-data storage
• Only for static meta-data manipulation
• Meta-data extraction interceptors are only
  for dynamic meta-data manipulation




24.03.2010    DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   17
Validation Interception - 1
• Invocation:
     • Global interceptors:
       before and after the validation of a property
     • Local interceptors:
       before and after the validation of a constraint
• Allows to bypass validation of a
     • Property
     • Constraint



24.03.2010          DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   18
Validation Interception - Example
• Implementation
    public class CustomInterceptor
      implements PropertyValidationInterceptor {

             public boolean beforeValidation(
               FacesContext fC, UIComponent c,
               Object convertedObject, Map<String, Object> p) {

                 //...
                 return true;
             }

             public void afterValidation(
               FacesContext fC, UIComponent c,
               Object convertedObject, Map<String, Object> p) {

                 //...
             }
    }

24.03.2010               DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   19
Validation Interception - Example
• Usage
     • Global interceptors
             ExtValContext.getContext()
               .addPropertyValidationInterceptor(
                 new CustomInterceptor());
     • Local interceptors
             @Required(parameters = CustomInterceptor.class)
             private String name;




24.03.2010              DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   20
SkipValidationEvaluator
• Evaluates if the validation process for the
  current property should be skipped
• Allows to provide a custom evaluator




24.03.2010    DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   21
Optional Invocation Order
• Classes which implement an interface
  which is annotated with
  @InvocationOrderSupport
  are allowed to use
  @InvocationOrder
• The annotation allows to register artifacts
  which get called e.g. before internal
  artifacts
• Default order: 1000


24.03.2010    DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   22
Integration of RAD-Add-on
• It‘s possible to use input components
  without value-bindings.
• Use-Case:
  During prototyping sometimes developers
  have to create dummy pages without
  functionality.




24.03.2010   DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   23
Static Syntax for @JoinValidation
• In addition to the existing notations it‘s
  possible to refer a target property via
  the fully qualified class name
  + the property name
• Example:
    @JoinValidation("at.irian.demo.domain.Person:password")




24.03.2010         DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   24
Empty-/Null-Value Markers
• Marker for validation strategies instead of
  actively ignoring empty/null values
• Via Annotations
     • @EmptyValueAwareValidationStrategy
     • @NullValueAwareValidationStrategy




24.03.2010    DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   25
Other Improvements
• Structural improvements
• Performance improvements
• (JSF-) ProjectStage support




24.03.2010   DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   26
New Add-ons - 1
• Add-ons compatible with Property- and
  Bean-Validation module
      • Transactional model validation (light)
      • Continue with warnings
• Add-ons compatible with Property-
  Validation module
      • Advanced meta-data
      • Java based config
        (Syntax inspired by Google Guice)

24.03.2010        DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   27
New Add-ons - 2
• Bean-Validation module
      • Spring managed constraint validation
        (us dependency injection in custom constraint
        validator implementations)




24.03.2010        DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   28
Links
• http://svn.apache.org/repos/asf/myfaces/extensi
  ons/validator
• http://issues.apache.org/jira/browse/EXTVAL
• http://wiki.apache.org/myfaces/Extensions/Valid
  ator/Versions/Versions/UpgradeGuide
• http://os890.blogspot.com
• http://code.google.com/p/os890/source/browse/tr
  unk/java/web/jsf/extval
• http://people.apache.org/~gpetracek/myfaces/ex
  tval

24.03.2010    DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator   29

Mais conteúdo relacionado

Mais procurados

MyFaces CODI Conversations
MyFaces CODI ConversationsMyFaces CODI Conversations
MyFaces CODI Conversationsos890
 
Make JSF more type-safe with CDI and MyFaces CODI
Make JSF more type-safe with CDI and MyFaces CODIMake JSF more type-safe with CDI and MyFaces CODI
Make JSF more type-safe with CDI and MyFaces CODIos890
 
Security Architecture of the Java platform
Security Architecture of the Java platformSecurity Architecture of the Java platform
Security Architecture of the Java platformMartin Toshev
 
Security Аrchitecture of Тhe Java Platform
Security Аrchitecture of Тhe Java PlatformSecurity Аrchitecture of Тhe Java Platform
Security Аrchitecture of Тhe Java PlatformMartin Toshev
 
Introduction to java servlet 3.0 api javaone 2009
Introduction to java servlet 3.0 api javaone 2009Introduction to java servlet 3.0 api javaone 2009
Introduction to java servlet 3.0 api javaone 2009JavaEE Trainers
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentSanjeeb Sahoo
 
Going Native With The OSGi Service Layer - Sascha Zelzer
Going Native With The OSGi Service Layer - Sascha ZelzerGoing Native With The OSGi Service Layer - Sascha Zelzer
Going Native With The OSGi Service Layer - Sascha Zelzermfrancis
 
Arquillian in a nutshell
Arquillian in a nutshellArquillian in a nutshell
Arquillian in a nutshellBrockhaus Group
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization VulnerabilitiesLuca Carettoni
 
Exploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in JavaExploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in JavaCODE WHITE GmbH
 
Apache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikApache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikEdgar Espina
 
XNAT Case Study: DIAN QC Uploader
XNAT Case Study: DIAN QC UploaderXNAT Case Study: DIAN QC Uploader
XNAT Case Study: DIAN QC UploaderJohn Paulett
 
Glassfish An Introduction
Glassfish An IntroductionGlassfish An Introduction
Glassfish An IntroductionJumping Bean
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercisesddrschiw
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)CODE WHITE GmbH
 
ASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache ExtensibilityASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache Extensibilityakrakovetsky
 
Advanced liferay architecture clustering and high availability
Advanced liferay architecture clustering and high availabilityAdvanced liferay architecture clustering and high availability
Advanced liferay architecture clustering and high availabilityBordin Kijsirijareonchai
 
Architecting Large Enterprise Java Projects
Architecting Large Enterprise Java ProjectsArchitecting Large Enterprise Java Projects
Architecting Large Enterprise Java ProjectsMarkus Eisele
 

Mais procurados (20)

MyFaces CODI Conversations
MyFaces CODI ConversationsMyFaces CODI Conversations
MyFaces CODI Conversations
 
Make JSF more type-safe with CDI and MyFaces CODI
Make JSF more type-safe with CDI and MyFaces CODIMake JSF more type-safe with CDI and MyFaces CODI
Make JSF more type-safe with CDI and MyFaces CODI
 
Security Architecture of the Java platform
Security Architecture of the Java platformSecurity Architecture of the Java platform
Security Architecture of the Java platform
 
Security Аrchitecture of Тhe Java Platform
Security Аrchitecture of Тhe Java PlatformSecurity Аrchitecture of Тhe Java Platform
Security Аrchitecture of Тhe Java Platform
 
Introduction to java servlet 3.0 api javaone 2009
Introduction to java servlet 3.0 api javaone 2009Introduction to java servlet 3.0 api javaone 2009
Introduction to java servlet 3.0 api javaone 2009
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
 
Going Native With The OSGi Service Layer - Sascha Zelzer
Going Native With The OSGi Service Layer - Sascha ZelzerGoing Native With The OSGi Service Layer - Sascha Zelzer
Going Native With The OSGi Service Layer - Sascha Zelzer
 
Arquillian in a nutshell
Arquillian in a nutshellArquillian in a nutshell
Arquillian in a nutshell
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization Vulnerabilities
 
Java 9 sneak peek
Java 9 sneak peekJava 9 sneak peek
Java 9 sneak peek
 
Exploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in JavaExploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in Java
 
Apache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikApache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip Hanik
 
XNAT Case Study: DIAN QC Uploader
XNAT Case Study: DIAN QC UploaderXNAT Case Study: DIAN QC Uploader
XNAT Case Study: DIAN QC Uploader
 
Glassfish An Introduction
Glassfish An IntroductionGlassfish An Introduction
Glassfish An Introduction
 
GlassFish v2.1
GlassFish v2.1GlassFish v2.1
GlassFish v2.1
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercises
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
 
ASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache ExtensibilityASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache Extensibility
 
Advanced liferay architecture clustering and high availability
Advanced liferay architecture clustering and high availabilityAdvanced liferay architecture clustering and high availability
Advanced liferay architecture clustering and high availability
 
Architecting Large Enterprise Java Projects
Architecting Large Enterprise Java ProjectsArchitecting Large Enterprise Java Projects
Architecting Large Enterprise Java Projects
 

Destaque

강남카지노 인터넷블랙잭
강남카지노 인터넷블랙잭강남카지노 인터넷블랙잭
강남카지노 인터넷블랙잭gjaksjd
 
강원랜드카지노 복권룰
강원랜드카지노 복권룰강원랜드카지노 복권룰
강원랜드카지노 복권룰gjaksjd
 
CURRICULUM VITAE
CURRICULUM VITAECURRICULUM VITAE
CURRICULUM VITAELinhkie
 
[Segmedtrab] empresa como parte da sociedade a empresa como parte da sociedade
[Segmedtrab] empresa como parte da sociedade a empresa como parte da sociedade[Segmedtrab] empresa como parte da sociedade a empresa como parte da sociedade
[Segmedtrab] empresa como parte da sociedade a empresa como parte da sociedadeNilton Goulart
 
Такая вот штука для презентаций
Такая вот штука для презентацийТакая вот штука для презентаций
Такая вот штука для презентацийAlexander Polivanov
 
3 Neuropsychology Of Human Behaviour
3 Neuropsychology Of Human Behaviour3 Neuropsychology Of Human Behaviour
3 Neuropsychology Of Human Behaviourkiranba
 
Tympanometry & Clinical Applications
Tympanometry & Clinical Applications Tympanometry & Clinical Applications
Tympanometry & Clinical Applications Dr.Mahmoud Abbas
 

Destaque (14)

Persija jakarta
Persija jakartaPersija jakarta
Persija jakarta
 
강남카지노 인터넷블랙잭
강남카지노 인터넷블랙잭강남카지노 인터넷블랙잭
강남카지노 인터넷블랙잭
 
Preparing occupational therapy students to address clients mental health need...
Preparing occupational therapy students to address clients mental health need...Preparing occupational therapy students to address clients mental health need...
Preparing occupational therapy students to address clients mental health need...
 
강원랜드카지노 복권룰
강원랜드카지노 복권룰강원랜드카지노 복권룰
강원랜드카지노 복권룰
 
Louisa rabanal,
Louisa rabanal, Louisa rabanal,
Louisa rabanal,
 
100474
100474100474
100474
 
Persija jakarta
Persija jakartaPersija jakarta
Persija jakarta
 
CURRICULUM VITAE
CURRICULUM VITAECURRICULUM VITAE
CURRICULUM VITAE
 
100490
100490100490
100490
 
Taller 1 cálculo integral
Taller 1 cálculo integralTaller 1 cálculo integral
Taller 1 cálculo integral
 
[Segmedtrab] empresa como parte da sociedade a empresa como parte da sociedade
[Segmedtrab] empresa como parte da sociedade a empresa como parte da sociedade[Segmedtrab] empresa como parte da sociedade a empresa como parte da sociedade
[Segmedtrab] empresa como parte da sociedade a empresa como parte da sociedade
 
Такая вот штука для презентаций
Такая вот штука для презентацийТакая вот штука для презентаций
Такая вот штука для презентаций
 
3 Neuropsychology Of Human Behaviour
3 Neuropsychology Of Human Behaviour3 Neuropsychology Of Human Behaviour
3 Neuropsychology Of Human Behaviour
 
Tympanometry & Clinical Applications
Tympanometry & Clinical Applications Tympanometry & Clinical Applications
Tympanometry & Clinical Applications
 

Semelhante a MyFaces Extensions Validator r3 News

Automation Framework 042009 V2
Automation Framework   042009  V2Automation Framework   042009  V2
Automation Framework 042009 V2Devukjs
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projectsVincent Massol
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?Dmitry Buzdin
 
4Science Submission Module Preview
4Science Submission Module Preview4Science Submission Module Preview
4Science Submission Module Preview4Science
 
Easy Java Integration Testing with Testcontainers​
Easy Java Integration Testing with Testcontainers​Easy Java Integration Testing with Testcontainers​
Easy Java Integration Testing with Testcontainers​Payara
 
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedJetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedToru Wonyoung Choi
 
New features in qtp11
New features in qtp11New features in qtp11
New features in qtp11G.C Reddy
 
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...VMworld
 
Is OSGi Modularity Always Worth It? - Glyn Normington
Is OSGi Modularity Always Worth It? - Glyn NormingtonIs OSGi Modularity Always Worth It? - Glyn Normington
Is OSGi Modularity Always Worth It? - Glyn Normingtonmfrancis
 
What’s New in Spring Batch?
What’s New in Spring Batch?What’s New in Spring Batch?
What’s New in Spring Batch?VMware Tanzu
 
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...NLJUG
 
Automation Framework 042009 V2
Automation Framework   042009  V2Automation Framework   042009  V2
Automation Framework 042009 V2guestb66d91
 
Team Development on Force.com
Team Development on Force.comTeam Development on Force.com
Team Development on Force.comDaniel Hoechst
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Vincent Massol
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015Oro Inc.
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qconYiwei Ma
 
RDF Validation in a Linked Data World - A vision beyond structural and value ...
RDF Validation in a Linked Data World - A vision beyond structural and value ...RDF Validation in a Linked Data World - A vision beyond structural and value ...
RDF Validation in a Linked Data World - A vision beyond structural and value ...Nandana Mihindukulasooriya
 
Introduction to Yii & performance comparison with Drupal
Introduction to Yii & performance comparison with DrupalIntroduction to Yii & performance comparison with Drupal
Introduction to Yii & performance comparison with Drupalcadet018
 

Semelhante a MyFaces Extensions Validator r3 News (20)

Automation Framework 042009 V2
Automation Framework   042009  V2Automation Framework   042009  V2
Automation Framework 042009 V2
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?
 
4Science Submission Module Preview
4Science Submission Module Preview4Science Submission Module Preview
4Science Submission Module Preview
 
Easy Java Integration Testing with Testcontainers​
Easy Java Integration Testing with Testcontainers​Easy Java Integration Testing with Testcontainers​
Easy Java Integration Testing with Testcontainers​
 
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedJetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO Extended
 
New features in qtp11
New features in qtp11New features in qtp11
New features in qtp11
 
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
 
Is OSGi Modularity Always Worth It? - Glyn Normington
Is OSGi Modularity Always Worth It? - Glyn NormingtonIs OSGi Modularity Always Worth It? - Glyn Normington
Is OSGi Modularity Always Worth It? - Glyn Normington
 
What’s New in Spring Batch?
What’s New in Spring Batch?What’s New in Spring Batch?
What’s New in Spring Batch?
 
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
 
Automation Framework 042009 V2
Automation Framework   042009  V2Automation Framework   042009  V2
Automation Framework 042009 V2
 
Team Development on Force.com
Team Development on Force.comTeam Development on Force.com
Team Development on Force.com
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT Agents
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qcon
 
RDF Validation in a Linked Data World - A vision beyond structural and value ...
RDF Validation in a Linked Data World - A vision beyond structural and value ...RDF Validation in a Linked Data World - A vision beyond structural and value ...
RDF Validation in a Linked Data World - A vision beyond structural and value ...
 
Introduction to Yii & performance comparison with Drupal
Introduction to Yii & performance comparison with DrupalIntroduction to Yii & performance comparison with Drupal
Introduction to Yii & performance comparison with Drupal
 
cbvalidation
cbvalidationcbvalidation
cbvalidation
 

Último

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Último (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

MyFaces Extensions Validator r3 News

  • 1. JSF in der Praxis 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 1
  • 2. MyFaces Extensions-Validator What’s new in version 3 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 2
  • 3. Agenda - 1 • Bean-Validation Integration Module (JSR 303 for JSF 1.x & 2.x + special Features) • Improved Support for 3rd Party Component Libraries • Typesafe Constraint Parameters • Constraint Severity • Pluggable Storages • Meta-Data Filters • Validation Interception 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 3
  • 4. Agenda - 2 • SkipValidationEvaluator • Optional Invocation Order • Integration of RAD-Add-on • Additional Static Syntax for @JoinValidation • Empty-/Null-Value Markers • Other Improvements • New Add-ons 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 4
  • 5. Bean-Validation Integration • JSR 303 for JSF 1.x and JSF 2.x • Integration Module as alternative/addition to the Property-Validation Module • Compatible with all BV conform implementations • Module provides additional features • Advantage: It’s the (new) standard • Disadvantage: Not all features of ExtVal will be available (due to spec. restrictions) 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 5
  • 6. ExtVal vs. JSF 2 BV-Integration • With ExtVal • @NotNull validation enabled by default (deactivation via std. JSF config) • Typesafe group validation • No Validation Markup in the Page • The ExtValBeanValidationContext allows custom implementations e.g. tags, configs,… • Component initialization (e.g. @NotNull client-side required) • Severity aware validation 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 6
  • 7. ExtVal vs. JSF 2 BV-Integration • Model based validation • Sorted violation messages • Out-of-the-box dependency injection support for constraint-validators 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 7
  • 8. ExtVal Annotations for BV • @BeanValidation for Group-Validation • @ModelValidation class level validation of an explicit or implicit target 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 8
  • 9. @BeanValidation • Normally used in Page-Beans • Available attributes • viewIds (default: * for all pages) • useGroups (default: Default.class) • restrictGroups (default: -) • conditions (default: #{true}) • modelValidation (default: -) • List (equivalent to multi-constraint syntax of JSR 303) 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 9
  • 10. @BeanValidation - Examples • Simple group validation @BeanValidation(useGroups=Admin.class) • Group validation for a specific view @BeanValidation(viewIds="/login.xhtml", useGroups=Admin.class) • If group validation is defined for the whole bean, it might be required to exclude groups for special properties and/or views @BeanValidation(restrictGroups=Admin.class) • Conditional group validation @BeanValidation(useGroups = Admin.class, conditions="#{user.role.privileged}") 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 10
  • 11. @ModelValidation • To trigger bean-validation after „Update model values" phase • Also uses information of @BeanValidation • Difference: @ModelValidation isn‘t accumulated • Available attributes • isActive (default: false) • displayInline (default: false) • validationTargets (default: current base object) • message (default: -) 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 11
  • 12. 3rd Party Component Libraries • Improved support for • Trinidad • ICEfaces • RichFaces • New sandbox project e.g. for external component support modules to improve compatibility with 3rd party component libraries (http://code.google.com/p/sandbox890) 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 12
  • 13. Typesafe Constraint Parameters • Similar to the payload-attribute of BV (Payload is the subset of Constraint Parameters of ExtVal) • Allows typesafe and reusable parameters • Simple example - alternative for: @MyConstraint(payload = "warn") With Bean-Validation: @MyConstraint(payload = Warn.class) • Processed by Add-ons or Component Libraries 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 13
  • 14. Constraint Severity • Constraints with Severity Info and Warn don‘t "stop" the JSF-Lifecycle • ExtVal 1.x.3 provides out-of-the-box • ViolationSeverity.Info.class • ViolationSeverity.Warn.class • ViolationSeverity.Error.class (= default) • ViolationSeverity.Fatal.class 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 14
  • 15. Optional: Pluggable Parameters • ExtVal allows to map custom classes to the default implementations (esp. to avoid dependencies of BV Constraints to ExtVal) • Mapping via • Global-ExtVal-Parameter • Static config • Examples are available in the ExtVal Wiki 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 15
  • 16. Pluggable Storages • Generic mechanism which provides scoped storages with custom APIs • Allows to create multiple storages of the same type with different names • Allows to create different storage types • StorageManager (per storage type) • Responsible for scoping • Allows to create and reset (custom) storages via an API (independent of the storage type) • Allows to provide custom (tweaked) storage implementations easily 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 16
  • 17. Meta-Data Filters • Filters meta-data before it gets added to the meta-data storage • Only for static meta-data manipulation • Meta-data extraction interceptors are only for dynamic meta-data manipulation 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 17
  • 18. Validation Interception - 1 • Invocation: • Global interceptors: before and after the validation of a property • Local interceptors: before and after the validation of a constraint • Allows to bypass validation of a • Property • Constraint 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 18
  • 19. Validation Interception - Example • Implementation public class CustomInterceptor implements PropertyValidationInterceptor { public boolean beforeValidation( FacesContext fC, UIComponent c, Object convertedObject, Map<String, Object> p) { //... return true; } public void afterValidation( FacesContext fC, UIComponent c, Object convertedObject, Map<String, Object> p) { //... } } 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 19
  • 20. Validation Interception - Example • Usage • Global interceptors ExtValContext.getContext() .addPropertyValidationInterceptor( new CustomInterceptor()); • Local interceptors @Required(parameters = CustomInterceptor.class) private String name; 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 20
  • 21. SkipValidationEvaluator • Evaluates if the validation process for the current property should be skipped • Allows to provide a custom evaluator 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 21
  • 22. Optional Invocation Order • Classes which implement an interface which is annotated with @InvocationOrderSupport are allowed to use @InvocationOrder • The annotation allows to register artifacts which get called e.g. before internal artifacts • Default order: 1000 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 22
  • 23. Integration of RAD-Add-on • It‘s possible to use input components without value-bindings. • Use-Case: During prototyping sometimes developers have to create dummy pages without functionality. 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 23
  • 24. Static Syntax for @JoinValidation • In addition to the existing notations it‘s possible to refer a target property via the fully qualified class name + the property name • Example: @JoinValidation("at.irian.demo.domain.Person:password") 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 24
  • 25. Empty-/Null-Value Markers • Marker for validation strategies instead of actively ignoring empty/null values • Via Annotations • @EmptyValueAwareValidationStrategy • @NullValueAwareValidationStrategy 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 25
  • 26. Other Improvements • Structural improvements • Performance improvements • (JSF-) ProjectStage support 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 26
  • 27. New Add-ons - 1 • Add-ons compatible with Property- and Bean-Validation module • Transactional model validation (light) • Continue with warnings • Add-ons compatible with Property- Validation module • Advanced meta-data • Java based config (Syntax inspired by Google Guice) 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 27
  • 28. New Add-ons - 2 • Bean-Validation module • Spring managed constraint validation (us dependency injection in custom constraint validator implementations) 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 28
  • 29. Links • http://svn.apache.org/repos/asf/myfaces/extensi ons/validator • http://issues.apache.org/jira/browse/EXTVAL • http://wiki.apache.org/myfaces/Extensions/Valid ator/Versions/Versions/UpgradeGuide • http://os890.blogspot.com • http://code.google.com/p/os890/source/browse/tr unk/java/web/jsf/extval • http://people.apache.org/~gpetracek/myfaces/ex tval 24.03.2010 DI (FH) Gerhard Petracek / MyFaces-Extensions-Validator 29