Skip to content

Instantly share code, notes, and snippets.

@MichaelDrogalis
Created November 6, 2015 16:23
Show Gist options
  • Save MichaelDrogalis/3e61cb82fc7df9a771a0 to your computer and use it in GitHub Desktop.
Save MichaelDrogalis/3e61cb82fc7df9a771a0 to your computer and use it in GitHub Desktop.
package onyxjava;
import java.util.Arrays;
import onyxjava.API;
public class OnyxJava {
public static void main(String[] args) {
EnvConfiguration envConfig = new EnvConfiguration();
envConfig = envConfig.addParameter("zookeeper/address", "127.0.0.1:2188");
envConfig = envConfig.addParameter("zookeeper/server?", true);
envConfig = envConfig.addParameter("zookeeper.server/port", 2188);
envConfig = envConfig.addParameter("onyx.bookkeeper/server?", true);
envConfig = envConfig.addParameter("onyx.bookkeeper/local-quorum?", true);
envConfig = envConfig.addParameter("onyx.bookkeeper/local-quorum-ports", Arrays.asList(3196, 3197, 3198));
PeerConfiguration peerConfig = new PeerConfiguration();
peerConfig = peerConfig.addParameter("zookeeper/address", "127.0.0.1:2188");
peerConfig = peerConfig.addParameter("onyx.peer/job-scheduler", "onyx.job-scheduler/greedy");
peerConfig = peerConfig.addParameter("onyx.peer/zookeeper-timeout", 60000);
peerConfig = peerConfig.addParameter("onyx.messaging.aeron/embedded-driver?", true);
peerConfig = peerConfig.addParameter("onyx.messaging/allow-short-circuit?", false);
peerConfig = peerConfig.addParameter("onyx.messaging/impl", "aeron");
peerConfig = peerConfig.addParameter("onyx.messaging/peer-port", 40199);
peerConfig = peerConfig.addParameter("onyx.messaging/bind-addr", "localhost");
Workflow workflow = new Workflow();
workflow = workflow.addEdge("read-input", "increment-number");
workflow = workflow.addEdge("increment-number", "write-output");
System.out.println(workflow);
Task task1 = new Task();
task1 = task1.addParameter("onyx/name", "read-input");
task1 = task1.addParameter("onyx/type", "input");
System.out.println(task1);
Task task2 = new Task();
task2 = task2.addParameter("onyx/name", "increment-number");
task2 = task2.addParameter("onyx/type", "function");
System.out.println(task2);
Task task3 = new Task();
task3 = task3.addParameter("onyx/name", "write-output");
task3 = task3.addParameter("onyx/type", "output");
System.out.println(task3);
Catalog catalog = new Catalog();
catalog = catalog.addTask(task1);
catalog = catalog.addTask(task2);
catalog = catalog.addTask(task3);
System.out.println(catalog);
LifecycleCalls inputInjectCalls = new LifecycleCalls();
inputInjectCalls = inputInjectCalls.addParameter("lifecycle/task", "read-input");
inputInjectCalls = inputInjectCalls.addParameter("lifecycle/calls", "onyx-java.test-ns/in-calls");
LifecycleCalls inputCASCalls = new LifecycleCalls();
inputCASCalls = inputCASCalls.addParameter("lifecycle/task", "read-input");
inputCASCalls = inputCASCalls.addParameter("lifecycle/calls", "onyx.plugin.core-async/reader-calls");
Lifecycle lifecycles = new Lifecycle();
lifecycles = lifecycles.addLifecycleCalls(inputInjectCalls);
lifecycles = lifecycles.addLifecycleCalls(inputCASCalls);
Job job = new Job();
job = job.addParameter("workflow", workflow);
job = job.addParameter("catalog", catalog);
job = job.addParameter("lifecycles", lifecycles);
API.submitJob(peerConfig, job);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment