tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Shaw <mattas...@gmail.com>
Subject spring implementation
Date Thu, 03 Apr 2014 23:48:42 GMT
Hi,

I am using spring as an implementation for one of my composites. The only way I could get
to work was to make the spring application context beans SCA aware. From reading the tuscany
documentation I am a little confused with the following statement.

"
A component that uses Spring for an implementation can wire SCA services and references without
introducing SCA metadata into the Spring configuration.
The Spring context knows very little about the SCA environment.
"

Found here: http://tuscany.apache.org/sca-java-implementationspring.html

I though this implied that I would need to SCA metadata/tags in my spring application context.
Which promotes the SCA goal of re-use? However the composite will not load without it? Below
are my composite and spring application context files. 

<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"
       xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/sca http://www.osoa.org/xmlns/sca/1.0/spring-sca.xsd
       http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"
       default-autowire="byName">


    <sca:service name="EaElementService" type="qhealth.thebox.earcl.jaxrs.JaxrsEaElementService"
target="EaElementBean"/>
    <sca:service name="EaPackageService" type="qhealth.thebox.earcl.jaxrs.JaxrsEaPackageService"
target="EaPackageBean"/>

    <bean id="EaElementBean" class="qhealth.thebox.earcl.jaxrs.impl.EaElementServiceImpl">
        <property name="eaElementRepository" ref="eaElementRepository"/>
    </bean>

    <bean id="EaPackageBean" class="qhealth.thebox.earcl.jaxrs.impl.EaPackageServiceImpl">
        <property name="eaPackageRepository" ref="eaPackageRepository"/>
    </bean>

    <bean id="eaElementRepository" class="qhealth.thebox.earcl.jdbc.impl.JdbcEaElementRepository">
        <property name="dataSource" ref="dataSource"/>
        <property name="eaConnectorRepository" ref="eaConnectorRepository"/>
    </bean>
    <bean id="eaConnectorRepository" class="qhealth.thebox.earcl.jdbc.impl.JdbcEaConnectorRepository">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <bean id="eaPackageRepository" class="qhealth.thebox.earcl.jdbc.impl.JdbcEaPackageRepository">
        <property name="dataSource" ref="dataSource"/>
        <property name="eaElementRepository" ref="eaElementRepository"/>
    </bean>

    <!--
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
        <property name="url" value="jdbc:sqlserver://10.80.48.23;databaseName=QCH Architecture
Sandpit"/>
        <property name="username" value="the_box"/>
        <property name="password" value="veryhard2guess"/>
    </bean>
    -->

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/ea_qhealth"/>
        <property name="username" value="eaqhealth"/>
        <property name="password" value="eaqhealth"/>
    </bean>

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

</beans>



------ Composite

<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
           xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
           xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
           targetNamespace="http://www.health.qld.gov.au/xmlns/thebox/composites/1.0"
           name="thebox">


    <!-- Component Declarations -->
    <component name="EaElementComponent">
        <implementation.spring location="earcl-integration-test-context.xml"/>
        <service name="EaElementService">
            <interface.java interface="qhealth.thebox.earcl.jaxrs.JaxrsEaElementService"/>
            <tuscany:binding.rest uri="/elements">
                <tuscany:wireFormat.json />
                <tuscany:operationSelector.jaxrs />
            </tuscany:binding.rest>
        </service>
    </component>

    <component name="EaPackageComponent">
        <implementation.spring location="earcl-integration-test-context.xml"/>
        <service name="EaPackageService">
            <interface.java interface="qhealth.thebox.earcl.jaxrs.JaxrsEaPackageService"/>
            <tuscany:binding.rest uri="/packages">
                <tuscany:wireFormat.json />
                <tuscany:operationSelector.jaxrs />
            </tuscany:binding.rest>
        </service>

    </component>

</composite> 
Mime
View raw message