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
