[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [sca-j] [NEW ISSUE] Java C&I Constrctor Examples are incorrect
Hi Simon, I do not recall coming across the requirement, "allows unannotated implementations if they have a no-parameter constructor" made clear in the current spec. To speed things up, can you please point me to the section/paragraph? Thanks. ++Vamsi Apache Tuscany Committer http://tuscany.apache.org Apache Geronimo Committer and Member of PMC http://geronimo.apache.org Simon Nash <oasis@cjnash.com > To OASIS Java 09/03/2009 19:43 <sca-j@lists.oasis-open.org> cc Subject Re: [sca-j] [NEW ISSUE] Java C&I Constrctor Examples are incorrect Vamsi, I agree that it's unfortunate that constructor injection isn't possible for properties and references of unnanotated implementations. This is because it's not possible to infer the name of a property or reference that appears as a constructor parameter. I'm not sure why you think a new issue is needed. The current spec allows unannotated implementations if they have a no-parameter constructor. Do you think there is some way to improve on this? Simon C Vamsi wrote: > Simon, > > When JAVA-39 was raised, I have not thought about the constructors. Now > that we require all parameters of a constructor annotated with a > @Constructor annotation to have either a @Property or a @Reference > annotation (JCA90003 in CAA spec), we need to revisit these examples. > Appears like we have to require an unannotated implementation (i.e., one > with no @Property or @Referene annotations) to have a constructor with no > parameters. I guess it will call for a new issue!! > > ++Vamsi > Apache Tuscany Committer http://tuscany.apache.org > Apache Geronimo Committer and Member of PMC http://geronimo.apache.org > > > > > Simon Nash > <oasis@cjnash.com > > To > OASIS Java > 27/02/2009 20:40 <sca-j@lists.oasis-open.org> > cc > > Subject > Re: [sca-j] [NEW ISSUE] Java C&I > Constrctor Examples are incorrect > > > > > > > > > > I believe this is a duplicate of issue JAVA-39. However, I'd like > to understand the reason for the assertion that the examples noted as > "does not unambiguously identify all property and reference values" > are incorrect. > > Simon > > Mike Edwards wrote: >> Raiser: Mike Edwards >> >> Target: sca-javaci-1.1-spec-wd03.pdf >> >> Description: >> >> The constructor examples in section 5 contain errors that make some of >> them illegal and they must be fixed. >> >> /** Simple class taking a single property value */ >> >> public class Impl1 { >> >> String someProperty; >> >> public Impl1(String propval) {...} >> >> } >> >> *<mje> This one does not "unambiguously identify all property and >> reference values"</mje>* >> >> /** Simple class taking a property and reference in the constructor; >> >> * The values are not injected into the fields. >> >> *// >> >> public class Impl2 { >> >> public String someProperty; >> >> public SomeService someReference; >> >> public Impl2(String a, SomeService b) {...} >> >> } >> >> *<mje> This one does not "unambiguously identify all property and >> reference values"</mje>* >> >> /** Class declaring a named property and reference through the >> constructor */ >> >> public class Impl3 { >> >> @Constructor({"someProperty", "someReference"}) >> >> public Impl3(String a, SomeService b) {...} >> >> } >> >> *<mje>@Constructor annotation has no such attributes (see [JAVACAA]) >> </mje>* >> >> /** Class declaring a named property and reference through parameters */ >> >> public class Impl3b { >> >> public Impl3b( >> >> @Property("someProperty") String a, >> >> @Reference("someReference) SomeService b >> >> ) {...} >> >> } >> >> *<mje>This one is OK</mje>* >> >> /** Additional property set through a method */ >> >> public class Impl4 { >> >> public String someProperty; >> >> public SomeService someReference; >> >> public Impl2(String a, SomeService b) {...} >> >> @Property public void setAnotherProperty(int x) {...} >> >> } >> >> *<mje> This one does not "unambiguously identify all property and >> reference values"</mje>* >> >> >> Proposal: >> >> Replace the examples with the following ones: >> >> /** Constructor declared using @Constructor annotation */ >> >> public class Impl1 { >> >> private String someProperty; >> >> @Constructor >> >> public Impl1( @Property("someProperty") String propval ) {...} >> >> } >> >> /** Declared constructor unambiguously identifying all Property and >> Reference values */ >> >> public class Impl2 { >> >> private String someProperty; >> >> private SomeService someReference; >> >> public Impl2( @Property("someProperty") String a, >> >> @Reference("someReference") SomeService b ) >> >> {...} >> >> } >> >> /** Declared constructor unambiguously identifying all Property and >> Reference values >> >> plus an additional Property injected via a setter method */ >> >> public class Impl3 { >> >> private String someProperty; >> >> private String anotherProperty; >> >> private SomeService someReference; >> >> public Impl3( @Property("someProperty") String a, >> >> @Reference("someReference") SomeService b) >> >> {...} >> >> @Property >> >> public void setAnotherProperty( String anotherProperty ) {...} >> >> } >> >> /** No-arg constructor */ >> >> public class Impl4 { >> >> @Property >> >> public String someProperty; >> >> @Reference >> >> public SomeService someReference; >> >> public Impl4() {...} >> >> } >> >> >> 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 >> >> >> ------------------------------------------------------------------------ >> >> / >> / >> >> /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/ >> >> >> >> >> > > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php > > > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php > > > --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. Follow this link to all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]