Skip to content
This repository was archived by the owner on Jul 26, 2023. It is now read-only.
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions examples/java/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,20 @@ plugins {

repositories {
// Use Maven Central for resolving dependencies.
mavenLocal()
mavenCentral()
maven {
url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
}
}

dependencies {
implementation 'io.hstream:hstreamdb-java:0.12.0'
implementation 'io.hstream:hstreamdb-java:0.14.0-SNAPSHOT'
}

application {
// Define the main class for the application.
mainClass = 'docs.code.examples.App'
mainClass = 'docs.code.examples.QueryExample'
}

tasks.named('test') {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package docs.code.examples;

import io.hstream.*;

public class QueryExample {
public static void main(String[] args) throws Exception {
// Client
String serviceUrl = "hstream://127.0.0.1:26571";
var client = HStreamClient.builder().serviceUrl(serviceUrl).build();
// Query
client.createStream("stream01");
var sql = "create stream result_stream as select * from stream01;";
var query = client.createQuery("query01", sql);

Thread.sleep(20000);
var producer = client.newProducer().stream("stream01").build();
for (int i = 0; i < 10; i++) {
var hRecord = HRecord.newBuilder()
.put("id", i % 3)
.put("value", i).build();
producer.write(Record.newBuilder().hRecord(hRecord).build()).join();
}
client.createSubscription(Subscription.newBuilder()
.stream(query.getResultStream())
.subscription("sub01")
.offset(Subscription.SubscriptionOffset.EARLIEST)
.build());
// Read
var consumer = client.newConsumer()
.subscription("sub01")
.rawRecordReceiver((receivedRawRecord, responder) -> {
System.out.println("raw:" + receivedRawRecord.getRecordId());
responder.ack();
})
.hRecordReceiver((receivedHRecord, responder) -> {
System.out.println("record:" + receivedHRecord.getHRecord().toCompactJsonString());
responder.ack();
})
.build();
consumer.startAsync().awaitRunning();
Thread.sleep(10000);
consumer.stopAsync().awaitTerminated();
for (var q : client.listQueries()) {
System.out.println("q:" + q.getName() + " status:" + q.getStatus());
System.out.println("result stream:" + q.getResultStream());
}

// View
// client.createView("create view view01 as select id, sum(value) from stream01 group by id;");
// Thread.sleep(5000);
// for (HRecord hRecord : client.executeViewQuery("select * from view01;")) {
// System.out.println("View Result:" + hRecord.toCompactJsonString());
// }
}
}