package org.simpleframework.demo.rest;
import java.util.Collections;
import java.util.List;
public class MessageServer {
public static final String SUBSCRIBE_PREFIX = "subscribe";
public static final String RENEW_PREFIX = "renew";
private final List<RequestRegistration> registrations;
public MessageServer() {
this(Collections.EMPTY_LIST);
}
public MessageServer(List<RequestRegistration> registrations) {
this.registrations = registrations;
}
public MessagePublisher create(int port) throws Exception {
SubscriptionManager manager = new LeaseSubscriptionManager();
SubscribeRequestHandler subscriber = new SubscribeRequestHandler(manager);
RenewRequestHandler renewer = new RenewRequestHandler(manager);
RequestProcessor processor = new RequestProcessor(port);
processor.register(new RequestRegistration<SubscribeRequest>(SUBSCRIBE_PREFIX, subscriber, SubscribeRequest.class));
processor.register(new RequestRegistration<RenewRequest>(RENEW_PREFIX, renewer, RenewRequest.class));
for(RequestRegistration registration : registrations) {
processor.register(registration);
}
processor.start();
return new SubscriptionMessagePublisher(manager);
}
}