Basic configuration for SE FT commands. No configuration support for Async or Fallback.
What should be configurable:
- Bulkhead:
- limit (int)
- queue-length (int)
- name (string)
- cancel-source (boolean)
- Circuit breaker:
Basic configuration for SE FT commands. No configuration support for Async or Fallback.
What should be configurable:
| @Path("/greet1") // CDI bean-defining annotation | |
| @RequestScoped // implied by default | |
| public class SampleResource1 { | |
| private final GreetBean greetBean; | |
| // Use @Inject instead of @Context | |
| @Inject | |
| private UriInfo uriInfo; |
| <dependency> | |
| <groupId>io.helidon.webserver</groupId> | |
| <artifactId>helidon-webserver-tyrus</artifactId> | |
| </dependency> |
| <dependency> | |
| <groupId>io.helidon.microprofile.websocket</groupId> | |
| <artifactId>helidon-microprofile-websocket</artifactId> | |
| </dependency> |
| List<Class<? extends Encoder>> encoders = | |
| Collections.singletonList(UppercaseEncoder.class); | |
| Routing.builder() | |
| .register("/rest", new MessageQueueService()) | |
| .register("/websocket", | |
| TyrusSupport.builder().register( | |
| ServerEndpointConfig.Builder.create( | |
| MessageBoardEndpoint.class, "/").encoders( | |
| encoders).build()).build()) | |
| .build(); |
| public class MessageBoardEndpoint extends Endpoint { | |
| private final MessageQueue messageQueue = MessageQueue.instance(); | |
| @Override | |
| public void onOpen(Session session, EndpointConfig endpointConfig) { | |
| session.addMessageHandler(new MessageHandler.Whole<String>() { | |
| @Override | |
| public void onMessage(String message) { | |
| try { |
| public class MessageQueueService implements Service { | |
| private final MessageQueue messageQueue = MessageQueue.instance(); | |
| @Override | |
| public void update(Routing.Rules routingRules) { | |
| routingRules.post("/board", this::handlePost); | |
| } | |
| private void handlePost(ServerRequest request, ServerResponse response) { |
| public class UppercaseEncoder implements Encoder.Text<String> { | |
| @Override | |
| public String encode(String s) { | |
| return s.toUpperCase(); | |
| } | |
| @Override | |
| public void init(EndpointConfig config) { | |
| } |
| @ServerEndpoint( | |
| value = "/websocket", | |
| encoders = { UppercaseEncoder.class }) | |
| public class MessageBoardEndpoint { | |
| @Inject | |
| private MessageQueue messageQueue; | |
| @OnMessage | |
| public void onMessage(Session session, String message) { |
| @Path("rest") | |
| public class MessageQueueResource { | |
| @Inject | |
| private MessageQueue messageQueue; | |
| @POST | |
| @Consumes("text/plain") | |
| public void push(String s) { | |
| messageQueue.push(s); |