Skip to content

Repository files navigation

pyroclast-java

Java API client for Pyroclast.

Installation

Maven

<dependency>
<groupId>io.pyroclast</groupId>
<artifactId>pyroclast-java</artifactId>
<version>1.0.1</version>
</dependency>

Gradle

compile "io.pyroclast:pyroclast-java:1.0.1"

Topic APIs

Writing Events

Instantiate a client and producer.

importio.pyroclast.pyroclastjava.v1.topic.PyroclastTopicClient;
importio.pyroclast.pyroclastjava.v1.topic.PyroclastProducer;
importjava.util.List;
importjava.util.Map;
PyroclastTopicClientclient = newPyroclastTopicClient()
.withWriteApiKey("xxxxxxxxxx")
.withTopicId("yyyyyyyyyy")
.buildClient();
PyroclastProducerproducer = client.createProducer();

Send one event synchronously

Map<Object, Object> event = newHashMap<>();
event.put("name", "mike");
producer.send(event);

Send a batch of events synchronously

Map<Object, Object> e1 = newHashMap<>();
e1.put("name", "mike");
Map<Object, Object> e2 = newHashMap<>();
e2.put("name", "ron");
List<Map<Object, Object>> events = newArrayList<>();
events.add(e1);
events.add(e2);
producer.send(events);

Send one event asynchronously

importio.pyroclast.pyroclastjava.v1.topic.async.AsyncCancelledCallback;
importio.pyroclast.pyroclastjava.v1.topic.async.AsyncFailCallback;
importio.pyroclast.pyroclastjava.v1.topic.async.AsyncSuccessCallback;
importio.pyroclast.pyroclastjava.v1.topic.responses.ProducedEventResult;
Map<Object, Object> event = newHashMap<>();
event.put("car", "red");
AsyncSuccessCallback<ProducedEventResult> onSuccess = per -> System.out.println("Ok");
AsyncFailCallbackonFail = e -> System.err.println(e);
AsyncCancelledCallbackonCancel = status -> System.out.println("Request cancelled");
producer.send(event, onSuccess, onFail, onCancel);

Send a batch of events asynchronously

importio.pyroclast.pyroclastjava.v1.topic.responses.ProducedEventsResult;
Map<Object, Object> e1 = newHashMap<>();
e1.put("name", "mike");
Map<Object, Object> e2 = newHashMap<>();
e2.put("name", "ron");
List<Map<Object, Object>> events = newArrayList<>();
events.add(e1);
events.add(e2);
AsyncSuccessCallback<ProducedEventsResult> onSuccess = per -> System.out.println("Ok");
AsyncFailCallbackonFail = e -> System.err.println(e);
AsyncCancelledCallbackonCancel = status -> System.out.println("Request cancelled");
producer.send(events, onSuccess, onFail, onCancel);

Reading events

Instantiate a client.

importio.pyroclast.pyroclastjava.v1.topic.PyroclastTopicClient;
importio.pyroclast.pyroclastjava.v1.topic.PyroclastConsumer;
PyroclastTopicClientclient = newPyroclastTopicClient()
.withReadApiKey("xxxxxxxxxx")
.withTopicId("yyyyyyyyyy")
.buildClient();

Subscribe to a topic

StringsubscriptionName = "example-subscription-name";
PyroclastConsumerconsumer = client.createConsumer(subscriptionName);

Poll subscribed topic

importio.pyroclast.pyroclastjava.v1.topic.TopicRecord;
importjava.util.Iterator;
importjava.util.List;
List<TopicRecord> records = consumer.pollTopic().getRecords();
Iterator<TopicRecord> it = records.iterator();
while (it.hasNext()) {
TopicRecordrec = it.next();
System.out.println(rec.getValue());
}

Commit read records

consumer.commit();

Deployed Service APIs

Read deployed service aggregations

Instantiate a client.

importio.pyroclast.pyroclastjava.v1.deployment.PyroclastDeploymentClient;
PyroclastDeploymentClientclient = newPyroclastDeploymentClient()
.withDeploymentId("xxxxxxxxxx")
.withReadApiKey("yyyyyyyyyy")
.buildClient();

Get all aggregates for a deployment

importio.pyroclast.pyroclastjava.v1.deployment.DeploymentAggregates;
DeploymentAggregatesaggregates = client.readAggregates().getAggregates();

Get an aggregate by name for a deployment

importio.pyroclast.pyroclastjava.v1.deployment.DeploymentAggregate;
DeploymentAggregateaggregate = client.readAggregate("aggregate-name").getAggregate();

Get a single aggregate group by name

importio.pyroclast.pyroclastjava.v1.deployment.DeploymentAggregate;
DeploymentAggregateaggregate = client.readAggregateGroup("aggregate-name", "group-name").getAggregate();

License

(The MIT License)

Copyright © 2017 Distributed Masonry

About

A Java client for Pyroclast

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages