Skip to main content

First Java App

The following is a simple example of API usage and shows a Java application that connects to the platform, subscribes to a topic and publishes a message.

The example uses Flexible messaging so that it can send a Map without needing to define a schema.

Before Running

The application must already be created and permissioned in Key Access.

Example

FirstJavaApp.java
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

import trading.keysquare.api.message.Messages;
import trading.keysquare.api.session.KeySession;
import trading.keysquare.api.session.KeySessionContext;
import trading.keysquare.api.session.KeySessionFactory;
import trading.keysquare.api.topic.Topic;
import trading.keysquare.api.topic.Topics;
import trading.keysquare.model.core.SubscriptionType;
import trading.keysquare.model.core.TransportMode;

public final class FirstJavaApp {

public static void main(String[] args) {
KeySessionContext context = new KeySessionContext();
context.setApplicationName("sample");
context.setKeyAccessUrl("https://<key-access-host>:6800");
context.setApiKey("<api-key>");
context.setTransportMode(TransportMode.TCP);

KeySession session = KeySessionFactory.create(context);

session.routing().flexible(Map.class, message -> {
System.out.println(message.payload());
}, Optional.empty());

session.start();

Topic topic = Topics.create("sample", "hello", "first-message");
session.subscribe(SubscriptionType.LIVE, count -> {}, topic);

Map<String, Object> map = new HashMap<>();
map.put("text", "Hello from KeySquare");

session.publish(Messages.flexible(Map.class).topic(topic).payload(map));
}
}

This shows how flexible messages can be used for quick prototyping without the need for a formal schema.