See comments inline.
Simon
Raymond Feng wrote:
Hi,
I ran into two problems related to SCA property validation.
Assuming we have the following:
a) The java component impl class
public class MyServiceImpl {
...
@Property
private String p1;
...}
By intropsection, we will have "p1" as a property (xsd:string).
b) The component definition
<component name="MyComponent">
<implementation.java class="test.MyServiceImpl"/>
<property name="p1" value="xyz"/>
</component>
This will be reported by Tuscany as an error in two places:
1) We check if the property element has either @type or @element. (From
the SCA assembly spec, if there is no type, it should use the one from
the componentType property. My understanding is that we can have none of
the attrs.)
Tuscany should allow both the type and element attributes to be
omitted, in which case the property value in the component definition
should be checked for validity against the property type in the
implementation's componentType. For example, a componentType
property type of xsd:int with a component definition value of "xyz"
should produce a validation error.
Now if I change the property to be a JAXB complex type:
public class MyServiceImpl {
...
@Property
private Customer p1;
...}
<component name="MyComponent">
<implementation.java class="test.MyServiceImpl"/>
<property name="p1" type="customer:Customer"/ xmlns:customer="...">
</component>
2) We also try to find an XSD definition that matches the
customer:Customer type but I actually have that from the JAXB
annotations. This validation seems to be too much and we should be able
to just check the type compatibility by the QName.
In this case there will be no xsd file physically in the contribution
because the schema type is implied by the JAXB Java-to-XSD mapping of
the Java type definition for Customer. The property type QName should be
checked to make sure it matches a mapped schema type, and the property
value should be validated against this mapped schema type.
Simon
If we agree, I can relax the code to fix these issues.
Thanks,
Raymond
/________________________________________________________________
Raymond Feng
[email protected] <mailto:[email protected]>
/Apache Tuscany PMC member and committer: tuscany.apache.org
Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com
Personal Web Site: www.enjoyjava.com
/
________________________________________________________________/