use of com.couchbase.client.CouchbaseConnectionFactoryBuilder in project camel by apache.
the class CouchbaseEndpoint method createClient.
private CouchbaseClient createClient() throws IOException, URISyntaxException {
List<URI> hosts = Arrays.asList(makeBootstrapURI());
CouchbaseConnectionFactoryBuilder cfb = new CouchbaseConnectionFactoryBuilder();
if (opTimeOut != DEFAULT_OP_TIMEOUT) {
cfb.setOpTimeout(opTimeOut);
}
if (timeoutExceptionThreshold != DEFAULT_TIMEOUT_EXCEPTION_THRESHOLD) {
cfb.setTimeoutExceptionThreshold(timeoutExceptionThreshold);
}
if (readBufferSize != DEFAULT_READ_BUFFER_SIZE) {
cfb.setReadBufferSize(readBufferSize);
}
if (shouldOptimize) {
cfb.setShouldOptimize(true);
}
if (maxReconnectDelay != DEFAULT_MAX_RECONNECT_DELAY) {
cfb.setMaxReconnectDelay(maxReconnectDelay);
}
if (opQueueMaxBlockTime != DEFAULT_OP_QUEUE_MAX_BLOCK_TIME) {
cfb.setOpQueueMaxBlockTime(opQueueMaxBlockTime);
}
if (obsPollInterval != DEFAULT_OBS_POLL_INTERVAL) {
cfb.setObsPollInterval(obsPollInterval);
}
if (obsTimeout != DEFAULT_OBS_TIMEOUT) {
cfb.setObsTimeout(obsTimeout);
}
return new CouchbaseClient(cfb.buildCouchbaseConnection(hosts, bucket, username, password));
}
use of com.couchbase.client.CouchbaseConnectionFactoryBuilder in project apex-malhar by apache.
the class CouchBaseStore method connect.
@Override
public void connect() throws IOException {
String[] tokens = uriString.split(",");
URI uri = null;
for (String url : tokens) {
try {
uri = new URI("http", url, "/pools", null, null);
} catch (URISyntaxException ex) {
DTThrowable.rethrow(ex);
}
baseURIs.add(uri);
}
try {
CouchbaseConnectionFactoryBuilder cfb = new CouchbaseConnectionFactoryBuilder();
// wait up to 10 seconds for an operation to succeed
cfb.setOpTimeout(timeout);
// wait up to 10 second when trying to enqueue an operation
cfb.setOpQueueMaxBlockTime(blockTime);
client = new CouchbaseClient(cfb.buildCouchbaseConnection(baseURIs, bucket, password));
// client = new CouchbaseClient(baseURIs, "default", "");
} catch (IOException e) {
logger.error("Error connecting to Couchbase:", e);
DTThrowable.rethrow(e);
}
}
use of com.couchbase.client.CouchbaseConnectionFactoryBuilder in project apex-malhar by apache.
the class CouchBaseInputOperatorTest method TestCouchBaseInputOperator.
@Test
public void TestCouchBaseInputOperator() throws Exception {
BucketConfiguration bucketConfiguration = new BucketConfiguration();
CouchbaseConnectionFactoryBuilder cfb = new CouchbaseConnectionFactoryBuilder();
CouchbaseMock mockCouchbase1 = createMock("default", "", bucketConfiguration);
CouchbaseMock mockCouchbase2 = createMock("default", "", bucketConfiguration);
mockCouchbase1.start();
mockCouchbase1.waitForStartup();
List<URI> uriList = new ArrayList<URI>();
int port1 = mockCouchbase1.getHttpPort();
logger.debug("port is {}", port1);
mockCouchbase2.start();
mockCouchbase2.waitForStartup();
int port2 = mockCouchbase2.getHttpPort();
logger.debug("port is {}", port2);
uriList.add(new URI("http", null, "localhost", port1, "/pools", "", ""));
connectionFactory = cfb.buildCouchbaseConnection(uriList, bucketConfiguration.name, bucketConfiguration.password);
client = new CouchbaseClient(connectionFactory);
CouchBaseStore store = new CouchBaseStore();
keyList = new ArrayList<String>();
store.setBucket(bucketConfiguration.name);
store.setPasswordConfig(password);
store.setPassword(bucketConfiguration.password);
store.setUriString("localhost:" + port1 + "," + "localhost:" + port1);
// couchbaseBucket.getCouchServers();
AttributeMap.DefaultAttributeMap attributeMap = new AttributeMap.DefaultAttributeMap();
attributeMap.put(DAG.APPLICATION_ID, APP_ID);
TestInputOperator inputOperator = new TestInputOperator();
inputOperator.setStore(store);
inputOperator.insertEventsInTable(10);
CollectorTestSink<Object> sink = new CollectorTestSink<Object>();
inputOperator.outputPort.setSink(sink);
List<Partition<AbstractCouchBaseInputOperator<String>>> partitions = Lists.newArrayList();
Collection<Partition<AbstractCouchBaseInputOperator<String>>> newPartitions = inputOperator.definePartitions(partitions, new PartitioningContextImpl(null, 0));
Assert.assertEquals(2, newPartitions.size());
for (Partition<AbstractCouchBaseInputOperator<String>> p : newPartitions) {
Assert.assertNotSame(inputOperator, p.getPartitionedInstance());
}
// Collect all operators in a list
List<AbstractCouchBaseInputOperator<String>> opers = Lists.newArrayList();
for (Partition<AbstractCouchBaseInputOperator<String>> p : newPartitions) {
TestInputOperator oi = (TestInputOperator) p.getPartitionedInstance();
oi.setServerURIString("localhost:" + port1);
oi.setStore(store);
oi.setup(null);
oi.outputPort.setSink(sink);
opers.add(oi);
port1 = port2;
}
sink.clear();
int wid = 0;
for (int i = 0; i < 10; i++) {
for (AbstractCouchBaseInputOperator<String> o : opers) {
o.beginWindow(wid);
o.emitTuples();
o.endWindow();
}
wid++;
}
Assert.assertEquals("Tuples read should be same ", 10, sink.collectedTuples.size());
for (AbstractCouchBaseInputOperator<String> o : opers) {
o.teardown();
}
mockCouchbase1.stop();
mockCouchbase2.stop();
}
use of com.couchbase.client.CouchbaseConnectionFactoryBuilder in project apex-malhar by apache.
the class CouchBaseWindowStore method connect.
@Override
public void connect() throws IOException {
super.connect();
logger.debug("connection established");
try {
CouchbaseConnectionFactoryBuilder cfb = new CouchbaseConnectionFactoryBuilder();
// wait up to 10 seconds for an operation to succeed
cfb.setOpTimeout(timeout);
// wait up to 10 second when trying to enqueue an operation
cfb.setOpQueueMaxBlockTime(blockTime);
clientMeta = new CouchbaseClient(cfb.buildCouchbaseConnection(baseURIs, bucketMeta, passwordMeta));
} catch (IOException e) {
logger.error("Error connecting to Couchbase: ", e);
DTThrowable.rethrow(e);
}
}
use of com.couchbase.client.CouchbaseConnectionFactoryBuilder in project apex-malhar by apache.
the class CouchBaseOutputOperatorTest method TestCouchBaseOutputOperator.
@Test
public void TestCouchBaseOutputOperator() throws InterruptedException, Exception {
BucketConfiguration bucketConfiguration = new BucketConfiguration();
CouchbaseConnectionFactoryBuilder cfb = new CouchbaseConnectionFactoryBuilder();
CouchbaseMock mockCouchbase1 = createMock("default", "", bucketConfiguration);
mockCouchbase1.start();
mockCouchbase1.waitForStartup();
List<URI> uriList = new ArrayList<URI>();
int port1 = mockCouchbase1.getHttpPort();
logger.debug("port is {}", port1);
uriList.add(new URI("http", null, "localhost", port1, "/pools", "", ""));
cfb.buildCouchbaseConnection(uriList, bucketConfiguration.name, bucketConfiguration.password);
CouchBaseWindowStore store = new CouchBaseWindowStore();
store.setBucket(bucketConfiguration.name);
store.setPasswordConfig(password);
store.setPassword(bucketConfiguration.password);
store.setUriString("localhost:" + port1 + "," + "localhost:" + port1);
try {
store.connect();
} catch (IOException ex) {
DTThrowable.rethrow(ex);
}
store.getInstance().flush();
store.getMetaInstance().flush();
CouchbasePOJOSetOperator outputOperator = new CouchbasePOJOSetOperator();
AttributeMap.DefaultAttributeMap attributeMap = new AttributeMap.DefaultAttributeMap();
attributeMap.put(DAG.APPLICATION_ID, APP_ID);
OperatorContext context = mockOperatorContext(OPERATOR_ID, attributeMap);
outputOperator.setStore(store);
outputOperator.setup(context);
ArrayList<String> expressions = new ArrayList<String>();
expressions.add("getKey()");
expressions.add("getTest()");
outputOperator.setExpressions(expressions);
CouchBaseJSONSerializer serializer = new CouchBaseJSONSerializer();
outputOperator.setSerializer(serializer);
TestPojo obj = new TestPojo();
obj.setName("test");
obj.setPhone(123344555);
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("test", 12345);
obj.setMap(map);
TestEvent1 testEvent = new TestEvent1();
testEvent.setKey("key1");
testEvent.setTest(obj);
outputOperator.beginWindow(0);
outputOperator.input.process(testEvent);
outputOperator.endWindow();
Assert.assertEquals("Value in couchbase is", "{\"name\":\"test\",\"map\":{\"test\":12345},\"phone\":123344555}", store.getInstance().get("key1").toString());
outputOperator.teardown();
outputOperator = new CouchbasePOJOSetOperator();
store = new CouchBaseWindowStore();
store.setBucket(bucketConfiguration.name);
store.setPasswordConfig(password);
store.setPassword(bucketConfiguration.password);
store.setUriString("localhost:" + port1 + "," + "localhost:" + port1);
try {
store.connect();
} catch (IOException ex) {
DTThrowable.rethrow(ex);
}
store.getInstance().flush();
store.getMetaInstance().flush();
outputOperator.setStore(store);
outputOperator.setup(context);
expressions = new ArrayList<String>();
expressions.add("getKey()");
expressions.add("getNum()");
outputOperator.setExpressions(expressions);
TestEvent2 simpleEvent = new TestEvent2("key2", 123);
outputOperator.beginWindow(0);
outputOperator.input.process(simpleEvent);
outputOperator.endWindow();
Assert.assertEquals("Value in couchbase is", "123", store.getInstance().get("key2").toString());
outputOperator.teardown();
mockCouchbase1.stop();
}
Aggregations