Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
langxml
<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
       xmlns:bean="http://servicemix.apache.org/bean/1.0"
       xmlns:test="urn:test">

  <sm:container id="jbi" embedded="true" createMBeanServer="false">
    <sm:activationSpecs>
      <sm:activationSpec>
        <sm:component>
          <bean:component>
            <bean:endpoints>
              <bean:endpoint service="test:service" endpoint="endpoint" bean="#listenerBean">
            </bean:endpoints>
          <bean:component>
        </sm:component>
      </sm:activationSpec>
    </sm:activationSpecs>
  </sm:container>

  <bean id="listenerBean" class="org.apache.servicemix.bean.beans.ListenerBean"/>

</beans>

...

MessageExchange dispatching

If the POJO deployed implements the org.apache.servicemix.MessageExchangeListener, every message received for this POJO will be dispatched to the onMessageExchange method.

In other cases, exchanges in a provider role will be dispatched according to the MethodInvocationStrategy configured on the endpoint. The default one try to find the method according to the operation name defined on the exchange. If there is only a single method acting as an operation, it will always be used.

Annotations

The servicemix-bean component can accept different kind of POJOs. These POJOs may be annotated to customize their behavior. All the following annotations belong to the org.apache.servicemix.bean package.

...

Annotation

Target

Description

Resource

Field

The Resource annotation marks a resource that is needed by the application. Currently, this annotation is only supported on fields of type ComponentContext and DeliveryChannel.

PostConstruct

Method

The PostConstruct annotation is used on a method that needs to be executed after dependency injection is done to perform any initialization.

PreDestroy

Method

The PreDestroy annotation is used on methods as a callback notification to signal that the instance is in the process of being removed by the container.

The following interfaces are part of this API:

Interface

Description

MessageExchagneListener

When the POJO implements this interface, all exchanges will be dispatched to the onMessageExchange method.

Destination

This interface can be used to define a property on the bean, annotated with the @ExchangeTarget annotation. This is a very simple API to send exchanges from a POJO. More complex use cases can use an injected DeliveryChannel directly or to create a ServiceMix client.

Examples

...