← Prev in month
← Prev in thread
Next in thread →
Next in month →
RE: [sca-j] [NEW ISSUE] Java C&I Constrctor Examples are incorrect - [JAVA-137]
Hi, I have created new issue 137 for this. It can be found at: http://www.osoa.org/jira/browse/JAVA-137 Thanks, Mark Mark Combellack| Software Developer| Avaya | Eastern Business Park | St. Mellons | Cardiff | CF3 5EA | Voice: +44 (0) 29 2081 7624 | From: Mike Edwards [mailto:] Sent: 27 February 2009 11:15 To: OASIS Java Subject: [sca-j] [NEW ISSUE] Java C&I Constrctor Examples are incorrect 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: 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
← Prev in month
← Prev in thread
Next in thread →
Next in month →