Emmanuel can speak for the group, but in my opinion there is no functional overlap.
JSR-305 is about static analysis. Nothing created in 305 ever makes it into business semantics. JSR-303 is exactly the opposite. We are about binding declarative constraints on *objects*, i.e. data, whereas 305 is constraining *logic.*
Put another way, 305 is like extending the static semantics of the language with keywords (which we can't do practically due to lexicographical constraints). For example, C# has an "override" keyword, in Java this is @Override. Which checks for properly overridden method signature.
Also, though we provide a basic set of annotations out of the box, 303 is about a framework for domain-specific validation, rather than a library of all-purpose validation annotations (we simply can't do the latter).
_________________ Dhanji R. Prasanna
JSR-303 Expert Group member
Fee Fi Fo Fum, do you smell Dependency Injection?
|