You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Oleg Atamanenko <da...@gmail.com> on 2008/06/24 17:57:02 UTC

Various Component Types integration

Hello all.

I'm new to ServiceMix.

I have following issue: It is not clear how can I integrate different type of 
components in my application.

I.e I want to send message from servicmix-file to servicemix-http using 
service-eip.

During deployment servicemix throws DeploymentException about incompatible 
Endpoint types.

What am I doing wrong?

-- 
Best Regards,
	Oleg Atamanenko.

--
Fortune of the day:
<Mercury> alexsh: Be /VERY/ cairful, you could, if your unlucky, fry your
          motherboards..
<Knghtbrd> Mercury - sounds like fun

Re: Various Component Types integration

Posted by Edell Nolan <ed...@gmail.com>.
 Hi,
>
> You can only use one Servicemix component within each service unit.
>
> Previously you were trying to use several components within the one service
> unit so this is why you got the deployer exception.
>
> For each of the components there are various archtypes that you can use to
> create a skeleton su for you to start off with for that component - have a
> look at the componets list on the servicemix page
>
> eg.
> http://servicemix.apache.org/703-intermediate-creating-the-http-consumer-su.html
>
> I guess you have it working now but wanted to verify why you were getting
> the error.
>
> Edell.
>
> You have the right format now.
>  On 6/26/08, Oleg Atamanenko <da...@gmail.com> wrote:
>>
>> Here is my xbean.xml
>>
>> If I separate my services in to different service units - all works
>> correctly.
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <beans
>>     xmlns:bean="http://servicemix.apache.org/bean/1.0"
>>     xmlns:beans="http://www.springframework.org/schema/beans"
>>     xmlns:database="http://ru.diasoft.mypayments.se.database/1.0"
>>     xmlns:fileSplitter="http://ru.diasoft.mypayments.bc.fileSplitter/1.0<http://ru.diasoft.mypayments.bc.filesplitter/1.0>
>> "
>>     xmlns:eip="http://servicemix.apache.org/eip/1.0"
>>     xmlns:sample="urn:servicemix:sample"
>>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>     >
>>
>>
>>     <eip:content-based-router service="sample:router" endpoint="endpoint">
>>         <eip:rules>
>>             <eip:routing-rule>
>>                 <!--there is no predicate, so this is the default
>> destination-->
>>                 <eip:target>
>>                     <eip:exchange-target
>>                         service="sample:beanDatabase"
>>                         />
>>                     <!--endpoint="eipDatabase" -->
>>                 </eip:target>
>>             </eip:routing-rule>
>>         </eip:rules>
>>     </eip:content-based-router>
>>
>>     <!-- add the poller endpoint here -->
>>     <fileSplitter:poller
>>         service="sample:file"
>>         endpoint="poller"
>>
>>         >
>>         <eip:target>
>>             <eip:exchange-target service="sample:router"
>> endpoint="endpoint" />
>>         </eip:target>
>>         <property name="marshaler" ref="pollerFileMarshaler" />
>>         <property name="configuration" ref="pollerConfiguration" />
>>
>>     </fileSplitter:poller>
>>
>>     <beans:bean
>>         name="pollerFileMarshaler"
>>
>> class="org.apache.servicemix.components.util.SimpleFlatFileMarshaler">
>>         <property name="fileName" ref="fileNameExpression">
>>         </property>
>>     </beans:bean>
>>
>>     <beans:bean
>>         name="fileNameExpression"
>>         class="org.apache.servicemix.expression.PropertyExpression">
>>         <property name="property" value="fileSplitterComponentFileName" />
>>         <property name="defaultValue" value="unknownFileName" />
>>     </beans:bean>
>>
>>     <beans:bean
>>         name="pollerConfiguration"
>>         class="ru.diasoft.mypayments.bc.FileSplitterPollerConfiguration">
>>         <property name="autoCreateDirectory" value="true" />
>>         <property name="messagePerMinute" value="200" />
>>         <property name="workingDirectory" value="H:/test/poller" />
>>         <property name="filter">
>>             <beans:bean
>> class="org.apache.commons.io.filefilter.WildcardFilter">
>>                 <constructor-arg value="*.csv" />
>>             </beans:bean>
>>         </property>
>>     </beans:bean>
>>
>>
>>     <bean:endpoint
>>         service="sample:beanDatabase"
>>         endpoint="endpoint"
>>         beanName="beanDatabase"
>>         >
>>
>>     </bean:endpoint>
>>
>>     <beans:bean name="beanDatabase"
>>
>> class="ru.diasoft.mypayments.se.database.DatabaseBeanEndpoint">
>>         <property name="messageProcessor" ref="databaseMessageProcessor"
>> />
>>     </beans:bean>
>>
>>     <beans:bean
>>         id="databaseMessageProcessor"
>>
>> class="ru.diasoft.mypayments.se.database.DatabaseMessageProcessor">
>>         <property name="template" ref="jdbcTemplate" />
>>         <property name="configuration" ref="databaseConfiguration" />
>>     </beans:bean>
>>
>>
>>     <beans:bean
>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>>         <property name="locations">
>>             <list>
>>                 <value>classpath:database-component.properties</value>
>>                 <value>classpath:sample-file-su.properties</value>
>>             </list>
>>         </property>
>>     </beans:bean>
>>
>>     <bean id="processor"
>> class="ru.diasoft.mypayments.se.database.DatabaseMessageProcessor">
>>         <property name="template" ref="jdbcTemplate" />
>>         <property name="configuration" ref="databaseConfiguration" />
>>     </bean>
>>
>>     <bean id="dataSource" destroy-method="close"
>> class="org.apache.commons.dbcp.BasicDataSource">
>>         <property name="driverClassName" value="${jdbc.driverClassName}"
>> />
>>         <property name="url" value="${jdbc.url}" />
>>         <property name="username" value="${jdbc.username}" />
>>         <property name="password" value="${jdbc.password}" />
>>     </bean>
>>
>>     <beans:bean id="jdbcTemplate"
>> class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
>>         <constructor-arg index="0" ref="dataSource" />
>>     </beans:bean>
>>
>>     <beans:bean
>>         name="databaseConfiguration"
>>
>> class="ru.diasoft.mypayments.se.database.DatabaseComponentConfiguration">
>>         <property name="insertProcedure"
>> value="${database.component.sql.insert}" />
>>     </beans:bean>
>>
>>
>>
>> </beans>
>>
>> Best Regards,
>>    Oleg Atamanenko.
>>
>> 2008/6/25 Edell Nolan <ed...@gmail.com>:
>>
>>> Hi,
>>>
>>> Can you give us some more information as regards what are your trying to
>>> do with the eip component.
>>>
>>> Can you send on your xbean.xml files as this will help to see what you
>>> are trying to achieve.
>>>
>>> cheers, Edell.
>>>
>>>
>>>
>>
>

Re: Various Component Types integration

Posted by Oleg Atamanenko <da...@gmail.com>.
Here is my xbean.xml

If I separate my services in to different service units - all works
correctly.

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns:bean="http://servicemix.apache.org/bean/1.0"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:database="http://ru.diasoft.mypayments.se.database/1.0"
    xmlns:fileSplitter="http://ru.diasoft.mypayments.bc.fileSplitter/1.0"
    xmlns:eip="http://servicemix.apache.org/eip/1.0"
    xmlns:sample="urn:servicemix:sample"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    >


    <eip:content-based-router service="sample:router" endpoint="endpoint">
        <eip:rules>
            <eip:routing-rule>
                <!--there is no predicate, so this is the default
destination-->
                <eip:target>
                    <eip:exchange-target
                        service="sample:beanDatabase"
                        />
                    <!--endpoint="eipDatabase" -->
                </eip:target>
            </eip:routing-rule>
        </eip:rules>
    </eip:content-based-router>

    <!-- add the poller endpoint here -->
    <fileSplitter:poller
        service="sample:file"
        endpoint="poller"

        >
        <eip:target>
            <eip:exchange-target service="sample:router" endpoint="endpoint"
/>
        </eip:target>
        <property name="marshaler" ref="pollerFileMarshaler" />
        <property name="configuration" ref="pollerConfiguration" />

    </fileSplitter:poller>

    <beans:bean
        name="pollerFileMarshaler"

class="org.apache.servicemix.components.util.SimpleFlatFileMarshaler">
        <property name="fileName" ref="fileNameExpression">
        </property>
    </beans:bean>

    <beans:bean
        name="fileNameExpression"
        class="org.apache.servicemix.expression.PropertyExpression">
        <property name="property" value="fileSplitterComponentFileName" />
        <property name="defaultValue" value="unknownFileName" />
    </beans:bean>

    <beans:bean
        name="pollerConfiguration"
        class="ru.diasoft.mypayments.bc.FileSplitterPollerConfiguration">
        <property name="autoCreateDirectory" value="true" />
        <property name="messagePerMinute" value="200" />
        <property name="workingDirectory" value="H:/test/poller" />
        <property name="filter">
            <beans:bean
class="org.apache.commons.io.filefilter.WildcardFilter">
                <constructor-arg value="*.csv" />
            </beans:bean>
        </property>
    </beans:bean>


    <bean:endpoint
        service="sample:beanDatabase"
        endpoint="endpoint"
        beanName="beanDatabase"
        >

    </bean:endpoint>

    <beans:bean name="beanDatabase"

class="ru.diasoft.mypayments.se.database.DatabaseBeanEndpoint">
        <property name="messageProcessor" ref="databaseMessageProcessor" />
    </beans:bean>

    <beans:bean
        id="databaseMessageProcessor"
        class="ru.diasoft.mypayments.se.database.DatabaseMessageProcessor">
        <property name="template" ref="jdbcTemplate" />
        <property name="configuration" ref="databaseConfiguration" />
    </beans:bean>


    <beans:bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:database-component.properties</value>
                <value>classpath:sample-file-su.properties</value>
            </list>
        </property>
    </beans:bean>

    <bean id="processor"
class="ru.diasoft.mypayments.se.database.DatabaseMessageProcessor">
        <property name="template" ref="jdbcTemplate" />
        <property name="configuration" ref="databaseConfiguration" />
    </bean>

    <bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

    <beans:bean id="jdbcTemplate"
class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
        <constructor-arg index="0" ref="dataSource" />
    </beans:bean>

    <beans:bean
        name="databaseConfiguration"

class="ru.diasoft.mypayments.se.database.DatabaseComponentConfiguration">
        <property name="insertProcedure"
value="${database.component.sql.insert}" />
    </beans:bean>



</beans>

Best Regards,
   Oleg Atamanenko.

2008/6/25 Edell Nolan <ed...@gmail.com>:

> Hi,
>
> Can you give us some more information as regards what are your trying to do
> with the eip component.
>
> Can you send on your xbean.xml files as this will help to see what you are
> trying to achieve.
>
> cheers, Edell.
>
>

Re: Various Component Types integration

Posted by Edell Nolan <ed...@gmail.com>.
Hi,

Can you give us some more information as regards what are your trying to do
with the eip component.

Can you send on your xbean.xml files as this will help to see what you are
trying to achieve.

cheers, Edell.


On 6/24/08, Oleg Atamanenko <da...@gmail.com> wrote:
>
> Hello all.
>
> I'm new to ServiceMix.
>
> I have following issue: It is not clear how can I integrate different type
> of
> components in my application.
>
> I.e I want to send message from servicmix-file to servicemix-http using
> service-eip.
>
> During deployment servicemix throws DeploymentException about incompatible
> Endpoint types.
>
> What am I doing wrong?
>
> --
> Best Regards,
>        Oleg Atamanenko.
>
> --
> Fortune of the day:
> <Mercury> alexsh: Be /VERY/ cairful, you could, if your unlucky, fry your
>          motherboards..
> <Knghtbrd> Mercury - sounds like fun
>
>