org.yestech.lib.camel.TerracottaComponent Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yeslib Show documentation
Show all versions of yeslib Show documentation
A collection of classes that can be used across yestech artifacts/components, but must not be dependant
on any yestech component. Most of the code is utility type code. When more than a few classes are
found to be in a package or the package start to handle more that a few reposibilities then a new
independant component is created and the existing code in yeslib is ported to the new component.
/*
* Copyright LGPL3
* YES Technology Association
* http://yestech.org
*
* http://www.opensource.org/licenses/lgpl-3.0.html
*/
package org.yestech.lib.camel;
import org.apache.camel.Endpoint;
import org.apache.camel.impl.DefaultComponent;
import org.apache.commons.lang.StringUtils;
import org.terracotta.message.pipe.BlockingQueueBasedPipe;
import org.terracotta.message.pipe.Pipe;
import org.terracotta.message.topology.DefaultTopology;
import org.terracotta.message.topology.Topology;
import org.terracotta.message.topology.TopologyManager;
import java.util.Map;
/**
* An implementation of a camel component for asynchronous PIPE exchanges on a
* {@link org.terracotta.message.pipe.Pipe} within a CamelContext
*
* Options:
*
* - size - size of the pipe to create if it doesnt exist (Optional)
* - topologyName - name of the Pipe topology (Required) must match producer
* - pipeName - name of the Pipe to create or use (Optional) must match producer if supplied, if not supplied topologyName is used
* - concurrentConsumers - number of concurrentConsumers to listen to pipe (Optional) default = 1
*
*
* A component based on camel SEDA component.
*/
@SuppressWarnings("unchecked")
public class TerracottaComponent extends DefaultComponent {
public Pipe