You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Ricardo Barretto <Ri...@state.co.us> on 2006/03/22 15:31:01 UTC

Deploying services & spring configuration files

I have created one service, like loan-broker, when I want to deploy to
servicemix, I generate a SA.zip with jbi.xml and a SU.zip, and inside
this SU I have my classes and a servicemix.xml(listed below).
 
I would like to define a datasource in a global location inside
servicemix, so if I deploy my service in my servicemix-DEV environment,
the datasource would point to my DEV database, not to my workstation or
to the PROD environment. How can I do it? I have tried putting the
database definition on the servicemix.xml at the conf directory, but it
gave me Class not found exception.
 
I was also wondering if we could have a configuration file with the
services and other with application specific spring/hibernate
definitions.
 
Thank you all in advance, Ricardo
 
 
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
   
xmlns:lb="http://childsupport.state.co.us/cse/disbursement-component"
    xmlns:em="http://childsupport.state.co.us/cse/email-component">
                      
  <classpath>
    <location>.</location>
  </classpath>
                         
 <sm:serviceunit id="jbi">
  <sm:activationSpecs>
  
    <!-- In/out binding -->
    <sm:activationSpec componentName="disbursementComponentJmsBinding"
                       destinationService="lb:disbursement-component">
      <sm:component>
        <bean
class="org.apache.servicemix.components.jms.JmsServiceComponent">
          <property name="template">
            <bean class="org.springframework.jms.core.JmsTemplate">
              <property name="connectionFactory" ref="jmsFactory" />
     <property name="defaultDestinationName"
value="childsupport.state.co.us.disbursement.queue" />
     <property name="pubSubDomain" value="false" />
            </bean>
          </property>
        </bean>
      </sm:component>
    </sm:activationSpec>
  
    <!-- Disbursement Message Broker -->
    <sm:activationSpec componentName="disbursementComponent" 
                             service="lb:disbursement-component">
      <sm:component>
        <bean
class="gov.colorado.cse.disbursement.component.DisbursementBPELComponent"
/>
      </sm:component>
    </sm:activationSpec>
    
    <!-- Parent Component -->
    <sm:activationSpec componentName="parentComponent"
                       service="lb:parentComponent">
      <sm:component>
        <bean
class="gov.colorado.cse.party.component.ParentComponent">
         <property name="businessObject"><ref
local="personBusinessObject"/></property>
        </bean>
      </sm:component>
    </sm:activationSpec>
    
    <!-- Email Component -->
 
   <sm:activationSpec componentName="emailComponent"
service="em:emailComponent">
     <sm:component>
      <bean
class="org.apache.servicemix.components.email.MimeMailSender">
        <property name="sender">
          <bean
class="org.springframework.mail.javamail.JavaMailSenderImpl">
           <property name="host" value="165.127.151.2"/>
                        <property name="username" value="0csecse14"/>
                        <property name="password" value="cse2web"/>
                        <property name="port" value="25"/>
          </bean>
        </property>
      </bean>
     </sm:component>
   </sm:activationSpec>
 
  </sm:activationSpecs>
 </sm:serviceunit>     
 
 <!-- Datasources -->
 
 <bean id="eCseDS" class="org.apache.commons.dbcp.BasicDataSource">
  <property
name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property
name="url"><value>jdbc:mysql://localhost:3306/database</value></property>
        <property name="username"><value>user</value></property>
        <property name="password"><value>password</value></property>
 </bean>
 
 <!-- Application specific definitions -->
 
 <bean id="eCseHibernateProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  <property name="properties">
   <props>
    <!--<prop key="hibernate.hbm2ddl.auto">update</prop>-->
    <prop
key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
    <prop key="hibernate.query.substitutions">true 'T', false
'F'</prop>
    <prop key="hibernate.show_sql">false</prop>
    <prop key="hibernate.c3p0.minPoolSize">5</prop>
    <prop key="hibernate.c3p0.maxPoolSize">15</prop>
    <prop key="hibernate.c3p0.timeout">600</prop>
    <prop key="hibernate.c3p0.max_statement">10</prop>
    <prop key="hibernate.c3p0.testConnectionOnCheckout">false</prop>
   </props>
  </property>
 </bean>
 
 
 
 <!-- Hibernate SessionFactory -->
 <bean id="exampleSessionFactory"
class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
  <property name="dataSource"><ref local="eCseDS"/></property>
  <property name="hibernateProperties">
   <ref bean="eCseHibernateProperties" />
  </property>
  <!-- Must references all OR mapping files. -->
  <property name="mappingResources">
   <list>
           <value>Siteuser.hbm.xml</value>
      </list>
  </property>
  
  
 </bean>
 
 <!-- Pass the session factory to our SiteuserDAO -->
 
 <bean id="siteuserDAOTarget"
class="gov.colorado.cse.party.dao.hibernate.SiteuserDAOImpl">
  <property name="sessionFactory"><ref
local="exampleSessionFactory"/></property>
 </bean>
 
 <!-- Entirex Broker -->
 
 <bean id="acsesBroker" class="gov.colorado.cse.party.mao.AcsesBroker"
init-method="logon" destroy-method="logoff">
  <property name="broker"><ref bean="acsesBroker.broker"/></property>
  <property name="password"><value>BTCHNR</value></property>
 </bean>
 
 <!-- Entirex Broker - RPCServices -->
 
 <bean id="personMAO" class="gov.colorado.cse.party.mao.PersonMAO"
depends-on="acsesBroker">
  <property name="broker"><ref bean="acsesBroker.broker"/></property>
  <property
name="serverAddress"><value>RPC/EAACSES/CALLNAT</value></property>
 </bean>
 
 <bean id="webUserMAO" class="gov.colorado.cse.party.mao.WebUserMAO"
depends-on="acsesBroker">
  <property name="broker"><ref bean="acsesBroker.broker"/></property>
  <property
name="serverAddress"><value>RPC/EAACSES/CALLNAT</value></property>
 </bean>
 
 <!-- Person Wrapper -->
 <bean id="personWrapperTarget"
class="gov.colorado.cse.party.mao.wrapper.PersonMAOWrapper">
  <property name="mao"><ref bean="personMAO"/></property>
 </bean>
 
 <!-- Web USer Wrapper -->
 <bean id="webUserWrapperTarget"
class="gov.colorado.cse.party.mao.wrapper.WebUserMAOWrapper">
  <property name="mao"><ref bean="webUserMAO"/></property>
 </bean>
 
  <!-- Person Business Object -->
 <bean id="personBusinessObject"
class="gov.colorado.cse.party.bo.PersonBO">
  <property name="siteuserDAOImpl"><ref
bean="siteuserDAOTarget"/></property>
  <property name="webUserWrapper"><ref
bean="webUserWrapperTarget"/></property>
  <property name="personWrapper"><ref
bean="personWrapperTarget"/></property>
 </bean>   
 
 <bean id="jmsFactory"
class="org.apache.activemq.pool.PooledConnectionFactory">
  <property name="connectionFactory">
   <bean class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://localhost:61616" />
   </bean>
  </property>
 </bean>        
 
</beans>