org.yestech.lib.camel.TerracottaConsumer 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.*;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
import org.apache.camel.impl.ServiceSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.terracotta.message.pipe.Pipe;
import java.util.concurrent.ExecutorService;
import org.apache.camel.util.concurrent.ExecutorServiceHelper;
/**
*
* A {@link org.apache.camel.Consumer} which uses a Terracotta {@link Pipe} to pass the {@link org.apache.camel.Exchange}.
*/
public class TerracottaConsumer extends ServiceSupport implements Consumer, Runnable {
final private static Logger logger = LoggerFactory.getLogger(TerracottaConsumer.class);
private TerracottaEndpoint endpoint;
private Processor processor;
private ExecutorService executor;
public TerracottaConsumer(TerracottaEndpoint endpoint, Processor processor) {
this.endpoint = endpoint;
this.processor = processor;
}
@Override
public String toString() {
return "TerracottaConsumer: " + endpoint.getEndpointUri();
}
public void run() {
Pipe