On Wed, Feb 25, 2009 at 10:23 AM, Ramkumar R <[email protected]> wrote:
> Hi Simon, > > I realize the issue here, you are right... > > "Now the introspection that goes on inside SpringXMLComponentTypeLoader > struggles as it doesn't have access to the information from the SCDL. It > introspects the bean to try and decide which fields should be references and > which should be properties and it can't tell the difference." > > Currently I am working on "TUSCANY-2503", I believe this fix will bring in > a change in understanding the bean definitions in a better way by creating a > XMLBeanFactory instance with the given applicaion-context.xml and the > created beanFactory will be used to for reading the bean definitions. > > Will keep you informed about the developments here. > > > > On Mon, Feb 23, 2009 at 8:44 PM, Simon Laws <[email protected]>wrote: > >> >> >> On Mon, Feb 23, 2009 at 9:06 AM, Ramkumar R <[email protected]>wrote: >> >>> Hi Simon, >>> >>> Just wanted to confirm if you get error message out of this scenario... >>> >>> I believe most probably, this should be the error message... please >>> confirm... >>> >>> org.osoa.sca.ServiceRuntimeException: More than one service is declared >>> on component ClientComponent. Service name is required to get the service. >>> at >>> org.apache.tuscany.sca.core.context.ComponentContextHelper.getSingleService(ComponentContextHelper.java:313) >>> at >>> org.apache.tuscany.sca.core.context.ComponentContextImpl.createSelfReference(ComponentContextImpl.java:166) >>> at >>> org.apache.tuscany.sca.node.impl.NodeImpl.getServiceReference(NodeImpl.java:787) >>> at >>> org.apache.tuscany.sca.node.impl.NodeImpl.getService(NodeImpl.java:719) >>> at >>> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.getService(DefaultSCADomain.java:211) >>> >>> >>> >>> On Sat, Feb 21, 2009 at 7:10 PM, Simon Laws >>> <[email protected]>wrote: >>> >>>> I'm looking at a Spring based payment component in the travel sample in >>>> the sandbox [1] and am having problems in the case where the Spring context >>>> and the implementations it references are unannotated. >>>> >>>> I have a bean... >>>> >>>> public class PaymentImpl implements Payment { >>>> >>>> private CreditCardPayment creditCardPayment; >>>> private EmailGateway emailGateway; >>>> >>>> public void setCreditCardPayment(CreditCardPayment >>>> creditCardPayment) { >>>> this.creditCardPayment = creditCardPayment; >>>> } >>>> >>>> public void setEmailGateway(EmailGateway emailGateway) { >>>> this.emailGateway = emailGateway; >>>> } >>>> >>>> a context... >>>> >>>> <beans xmlns="http://www.springframework.org/schema/beans" >>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>> xmlns:sca="http://www.springframework.org/schema/sca" >>>> xsi:schemaLocation="http://www.springframework.org/schema/beans >>>> >>>> http://www.springframework.org/schema/beans/spring-beans.xsd"> >>>> >>>> <bean id="Payment" class="payment.PaymentImpl"> >>>> <property name="creditCardPayment" >>>> ref="creditCardPaymentReference"/> >>>> <property name="emailGateway" ref="EmailGateway"/> >>>> </bean> >>>> >>>> <bean id="EmailGateway" >>>> class="scatours.emailgateway.EmailGatewayImpl"> >>>> </bean> >>>> >>>> </beans> >>>> >>>> and a composite component... >>>> >>>> <component name="PaymentComponent"> >>>> <implementation.spring location="Payment-context.xml"/> >>>> <service name="Payment"> >>>> <interface.wsdl interface=" >>>> http://www.tuscanyscatours.com/Payment/#wsdl.interface(Payment)<http://www.tuscanyscatours.com/Payment/#wsdl.interface%28Payment%29>" >>>> /> >>>> <binding.ws uri="http://localhost:8080/Payment" >>>> wsdlElement=" >>>> http://www.tuscanyscatours.com/Payment/#wsdl.service(PaymentService)<http://www.tuscanyscatours.com/Payment/#wsdl.service%28PaymentService%29> >>>> "/> >>>> </service> >>>> <reference name="creditCardPaymentReference"> >>>> <binding.ws uri="http://localhost:8081/CreditCardPayment"/> >>>> </reference> >>>> </component> >>>> >>>> Now the introspection that goes on inside SpringXMLComponentTypeLoader >>>> [2] struggles as it doesn't have access to the information from the SCDL. >>>> It >>>> introspects the bean to try and decide which fields shoulf be references >>>> and >>>> which should be properties and it can't tell the difference. What I think >>>> should be happing is that it should be looking back at the component in the >>>> SCDL to see what has actually been defined as a reference and what has been >>>> defined as a service and using this information to build the component >>>> type. >>>> However there is a lot of code here so I'm loooking for someone familiar >>>> with the implementation.spring code to tell me what I've missed. >>>> >>>> Regards >>>> >>>> Simon >>>> >>>> [1] >>>> http://svn.apache.org/repos/asf/tuscany/sandbox/travelsample/chapter-06/payment-spring-contribution/ >>>> [2] >>>> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringXMLComponentTypeLoader.java >>>> >>> >>> >>> >>> -- >>> Thanks & Regards, >>> Ramkumar Ramalingam >>> >> >> Hi Ram >> >> I don't remember seeing that error. Why do you think that it will be >> produced? >> >> Simon >> > > > > -- > Thanks & Regards, > Ramkumar Ramalingam > Thanks Ram I've created a separate JIRA ( https://issues.apache.org/jira/browse/TUSCANY-2875) to track this problem explicitly. Regards Simon
