package io.muoncore.example.event.guide;
import io.muoncore.Muon;
import io.muoncore.MuonBuilder;
import io.muoncore.config.AutoConfiguration;
import io.muoncore.config.MuonConfigBuilder;
import io.muoncore.protocol.event.ClientEvent;
import io.muoncore.protocol.event.client.DefaultEventClient;
import io.muoncore.protocol.event.client.EventClient;
public class EmitEvent {
public static void main(String[] args) {
AutoConfiguration config = MuonConfigBuilder.withServiceIdentifier("client").build();
Muon muon = MuonBuilder.withConfig(config).build();
muon.getDiscovery().blockUntilReady();
EventClient eventClient = new DefaultEventClient(muon);
eventClient.event(
ClientEvent.ofType("UserRegistered")
.stream("users")
.payload(new UserRegisteredEvent(
"regsanders",
"Reginald",
"Sanders")).build());
eventClient.event(
ClientEvent.ofType("UserRegistered")
.stream("users")
.payload(new UserRegisteredEvent(
"derek",
"Derek",
"Blimby")).build());
eventClient.event(
ClientEvent.ofType("UserRegistered")
.stream("users")
.payload(new UserDeletedEvent("regsanders")).build());
System.out.println("User data updated");
muon.shutdown();
}
static class UserRegisteredEvent {
private String username;
private String firstname;
private String lastname;
public UserRegisteredEvent(String username, String firstname, String lastname) {
this.username = username;
this.firstname = firstname;
this.lastname = lastname;
}
public String getUsername() {
return username;
}
public String getFirstname() {
return firstname;
}
public String getLastname() {
return lastname;
}
}
static class UserDeletedEvent {
private String username;
public UserDeletedEvent(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
}
}