Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Code Block
java
java
package org.apache.servicemix.pojo.engine.examples;

import java.io.File;

import javax.jbi.JBIException;
import javax.jbi.component.ComponentContext;
import javax.jbi.messaging.DeliveryChannel;
import javax.jbi.messaging.InOnly;
import javax.resource.spi.work.WorkManager;

import org.apache.servicemix.pojo.engine.ConsumerService;
import org.apache.servicemix.pojo.engine.LocalComponentContext;
import org.apache.servicemix.pojo.engine.LocalDeliveryChannel;
import org.apache.servicemix.pojo.engine.LocalWorkingArea;
import org.apache.servicemix.pojo.engine.LocalWorkmanager;
import org.apache.servicemix.pojo.engine.ProviderService;
import org.apache.servicemix.pojo.engine.ServiceShutdown;
import org.apache.servicemix.pojo.engine.ServiceStartup;
import org.apache.servicemix.pojo.engine.TargettedMessageExchange;
import org.apache.servicemix.pojo.engine.TargettedMessageExchangeFactory;

@Consumer
public class DemoConsumerService {

	/**
	 * We could inject a delivery channel
	 */
	@LocalDeliveryChannel
	@Resource DeliveryChannel channel;

	/**
	 * The Component Context could be handy
	 */
	@LocalComponentContext
	@Resource ComponentContext context;

	/**
	 * Nothing like a jenck workmanager for that polling
	 */
	@LocalWorkmanager
	@Resource WorkManager myWorkmanager;

	/**
	 * The Service unit's directory is good for artifacts
	 */
	@LocalWorkingArea
	 File myWorkspace;

	/**
	 * What about getting a targetted message exchange factory By doing this we
	 * can pulling out the consumes for the Service unit
	 */
	@TargettedMessageExchange(providerService = @ProviderService(targetNamespace = "http://www.blah.com", serviceName = "myDestinationService"))
	TargettedMessageExchangeFactory myTargetFactory; 	@Destination(uri="service:urn:service")	private Destination service1;

	/**
	 * Calls on SU init
	 * 
	 */
	@ServiceStartup@PostConstruct
	public void init() {
		try {
			// ... do something
			InOnly inOnly = myTargetFactory.createInOnlyExchange();

			// .. do something with the exchange
			channel.send(inOnly);
			// ... do more
		} catch (JBIException exception) {

		}
	}

	/**
	 * Calls on SU shutdown
	 * 
	 */
	@ServiceShutdown@PreDestroy
	public void destroy() {

	}

}

...

Code Block
java
java
package org.apache.servicemix.pojo.engine.examples;

import javax.jbi.messaging.DeliveryChannel;
import javax.jbi.messaging.MessageExchange;
import javax.xml.transform.Source;

import org.apache.servicemix.pojo.engine.ExchangeProcessor;
import org.apache.servicemix.pojo.engine.LocalDeliveryChannel;
import org.apache.servicemix.pojo.engine.MessageExchangePattern;
import org.apache.servicemix.pojo.engine.ParameterMapping;
import org.apache.servicemix.pojo.engine.ProviderService;

@ProviderService(targetNamespace = "http://servicemix.apache.org", serviceName = "myService")
public class DemoProviderService {

	@ExchangeProcessor(patterns = { MessageExchangePattern.INOUT }, parameterMappings = { ParameterMapping.IN_MESSAGE_CONTENT })
	public void myInOutProcessor(MessageExchange me) {
		// Do something here
	}

	@ExchangeProcessor(patterns = { MessageExchangePattern.INONLY,
			MessageExchangePattern.ROBUSTINOULY }, parameterMappings = { ParameterMapping.IN_MESSAGE_CONTENT })
	public void myInOnlyProcessor(@InMessageContent Source payload) {
		// Do something here
	}
}

...