On Tue, Jul 29, 2008 at 3:49 PM, Simon Laws <[EMAIL PROTECTED]>wrote:

>
>
> On Sat, Jul 26, 2008 at 2:57 PM, Scott Kurz (JIRA) <[email protected]
> > wrote:
>
>>
>>     [
>> https://issues.apache.org/jira/browse/TUSCANY-2501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel]
>>
>> Scott Kurz updated TUSCANY-2501:
>> --------------------------------
>>
>>    Attachment: 2501.recreate.dont.commit.me.diff
>>
>> Here's a version of the test we can use to recreate
>>
>> > A couple places where InterfaceContract is not established on reference
>> when it's not calculated by introspection
>> >
>> -----------------------------------------------------------------------------------------------------------------
>> >
>> >                 Key: TUSCANY-2501
>> >                 URL: https://issues.apache.org/jira/browse/TUSCANY-2501
>> >             Project: Tuscany
>> >          Issue Type: Bug
>> >          Components: Java SCA Core Runtime
>> >            Reporter: Scott Kurz
>> >         Attachments: 2501.recreate.dont.commit.me.diff
>> >
>> >
>> > The vtests have a couple examples which result in component references
>> being created without a corresponding InterfaceContract.
>> > This is not a problem with the current default binding impl (as these
>> tests are currently passing), but a switch to using the WS binding, say,
>> shows the issue.
>> > I'll attach a patch, too, but here are the issues:
>> >
>> ------------------------------------------------------------------------------
>> > In vtest/java-api/apis/componentcontext:
>> >         return componentContext.getService(DComponent.class,
>> "dReference").getName();
>> > In vtest/java-api/annotations/reference
>> >       public class AServiceImpl implements AService {
>> >        ....
>> >        public BService b4; // field injection (public, un-annotated)
>> >
>> ------------------------------------------------------------------------------
>> > In both cases, the SCDL merely configures the ref target (and binding)
>> but does not define the ref intf.
>> > I haven't given this area a great deal of thought, my guess is we want
>> to extend our Java introspection capabilities, though I could see that for
>> some impl
>> > types the better answer might be to require the SCDL to configure the
>> intf in component SCDL.
>> > I didn't try the latter either, but wanted to just write up the issue
>> for now.
>> > Thanks,
>> > Scott
>> >
>>
>> --
>> This message is automatically generated by JIRA.
>> -
>> You can reply to this email to add a comment to the issue online.
>>
>>
> Hi Scott
>
> I'm just going to try and net down the problem here to make sure I
> understand it.
>
> For a component implemented thus;
>
> public class AComponentImpl implements AComponent {
>
>     public String testServiceLookup() {
>         return componentContext.getService(DComponent.class,
> "dReference").getName();
>     }
>
> }
>
> and described in SCDL in the following way;
>
>     <component name="AComponent">
>         <implementation.java
> class="org.apache.tuscany.sca.vtest.javaapi.apis.componentcontext.impl.AComponentImpl"/>
>         <reference name="dReference">
>             <binding.ws uri="http://localhost:8085/DComponent"/>
>         </reference>
>      </component>
>
> There is no easy way for the model to determine the interface type of
> "dReference2" short of either;
>
> 1. parsing the java to find where
> componentContext.getService(DComponent.class, "dReference") is called
> 2. waiting until runtime when componentContext.getService(DComponent.class,
> "dReference") is called and configuring the reference at that point.
>
> Currently an error is reported when the builders try to generate WSDL for
> the non-exsitent interface definition.
>
> Simon
>

The sentence "There is no easy way for the model to determine the interface
type of "dReference2" short of either;" should read "There is no easy way
for the model to determine the interface type of "dReference" short of
either".

Simon

Reply via email to