/*
* 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.Exchange;
import org.apache.camel.impl.DefaultProducer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.terracotta.message.pipe.Pipe;
/**
*
* A {@link org.apache.camel.Producer} which uses a Terracotta {@link Pipe} to pass the {@link org.apache.camel.Exchange}.
*
*/
public class TerracottaProducer extends DefaultProducer {
final private static Logger logger = LoggerFactory.getLogger(TerracottaProducer.class);
private final Pipe<Object> queue;
private TerracottaEndpoint endpoint;
public TerracottaProducer(TerracottaEndpoint endpoint, Pipe<Object> queue) {
super(endpoint);
this.endpoint = endpoint;
this.queue = queue;
}
@Override
public void process(Exchange exchange) throws Exception {
queue.put(exchange.copy());
}
@Override
protected void doStart() throws Exception {
super.doStart();
endpoint.onStarted(this);
}
@Override
protected void doStop() throws Exception {
endpoint.onStopped(this);
super.doStop();
}
}