[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [sca-j] Why is @Property.required attribute MUST be true forconstructor parameter?
Mike Edwards wrote: > > Vamsi, > > You make a good point in reminding me that the Java TC has not voted > through a resolution to remove the use > of componentType side files for Java POJOs. I have now raised a new > issue to do this - which will remove > Section 10 entirely. > I thought we did discuss and agree this, shortly before the email on this subject from the Liaison Committee. I don't recall which issue it was. Simon > I note that the Liaison committee posted a recommendation that > implementation types either use pure introspection > OR purely use a side file and never try to combine the information from > two sources. Java POJOs can have all > their component type metadata derived via introspection - as a result > side files are not useful and add complexity. > > > Yours, Mike. > > Strategist - Emerging Technologies, SCA & SDO. > Co Chair OASIS SCA Assembly TC. > IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain. > Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431 > Email: mike_edwards@uk.ibm.com > > > From: C Vamsi <vamsic007@in.ibm.com> > To: Mike Edwards/UK/IBM@IBMGB > Cc: sca-j@lists.oasis-open.org > Date: 24/02/2009 10:15 > Subject: Re: [sca-j] Why is @Property.required attribute MUST be true > for constructor parameter? > > > ------------------------------------------------------------------------ > > > > Comments inline in <vamsi> tags. > > ++Vamsi > Apache Tuscany Committer http://tuscany.apache.org > <http://tuscany.apache.org/> > Apache Geronimo Committer and Member of PMC http://geronimo.apache.org > <http://geronimo.apache.org/> > > > > Mike Edwards > <mike_edwards@uk. > ibm.com> To > sca-j@lists.oasis-open.org > 24/02/2009 15:22 cc > > Subject > Re: [sca-j] Why is > @Property.required attribute MUST > be true for constructor parameter? > > > > > > > > > > > Folks, > > When using constructor parameters for injection, there are a couple of > considerations to bear in mind: > > 1) Each constructor parameter MUST be annotated with either @Reference or > with @Property, depending > on the type of the parameter. This is required in order that each > parameter has a NAME which then appears > in the componentType - without this, it is impossible to get a name for the > constructor parameter (none is > available via introspection) > > 2) Clearly, each constructor parameter MUST supply a value, even if that > value is NULL. There is no > avoiding this. The runtime MUST pass in some value when it invokes the > constructor. This is the reason > behind the requirement for required=true on the @Property annotation. The > using component can set > any value it likes for the property - potentially including "nil" - but it > must set something. > > On the point that Raymond makes that the property value "can be inherited > from the componentType" - this > is not correct. The componentType is entirely derived from the > implementation itself, not from some other > metadata. In fact, there is no separate componentType file any longer for > Java implementations. So the > <vamsi> > Have we done away with componentType side files for Java implementations? > Is there an issue resolution pending to be applied? In > sca-javaci-1.1-spec-wd02.pdf, section 10, lines 509 thru 512, I still see a > description of componentType side file for Java implementations. What am I > missing? > </vamsi> > only place for a property value to come from for a constructor parameter is > from the component configuration > that uses the Java implementation. > > > Yours, Mike. > > Strategist - Emerging Technologies, SCA & SDO. > Co Chair OASIS SCA Assembly TC. > IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain. > Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431 > Email: mike_edwards@uk.ibm.com > > > > From: Raymond Feng <rfeng@us.ibm.com> > > To: sca-j@lists.oasis-open.org > > Date: 23/02/2009 21:09 > > Subject: Re: [sca-j] Why is @Property.required attribute MUST be true > for constructor parameter? > > > > > > > > My understanding is that @required=true means the property MUST be set with > a value which can be either configured at the component level or inherited > from the componentType. > > For example, if we have a constructor as follows: > > public MyServiceImpl(@Property(name="myProp") String myProp) { > ... > } > > The injection for "myProp" is required no matter what value it is set. > > Thanks, > Raymond > > > > > From: C Vamsi <vamsic007@in.ibm.com> > > To: sca-j@lists.oasis-open.org > > Date: 02/23/2009 10:41 AM > > Subject [sca-j] Why is @Property.required attribute MUST be true for > : constructor parameter? > > > > > > > > > sca-javacaa-1.1-spec-cd02-rev2.doc: > > Sec 9.15 @Property > > Lines 1622-1623: > required (optional) – specifies whether injection is required, defaults to > true. For a constructor parameter annotation, this attribute MUST have the > value true. > > Q: Why is, "For a constructor parameter annotation, this attribute MUST > have the value true." required? > > The componentType can define a default value for the property. In this > case, even if a property is not specified in the component definition, the > runtime will still have a value to pass as an argument to the constructor. > > > ++Vamsi > Apache Tuscany Committer http://tuscany.apache.org > <http://tuscany.apache.org/> > Apache Geronimo Committer and Member of PMC http://geronimo.apache.org > <http://geronimo.apache.org/> > > > > > > > > > > > > Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU > > > > > > > > > > > > ------------------------------------------------------------------------ > > / > / > > /Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU/ > > > > > >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]