package ameba.container.grizzly.server.http.websocket;
import ameba.websocket.WebSocket;
import ameba.websocket.WebSocketEndpointProvider;
import ameba.websocket.internal.EndpointMeta;
import org.glassfish.jersey.internal.inject.InjectionManager;
import org.glassfish.tyrus.core.ComponentProviderService;
import javax.inject.Inject;
import javax.inject.Singleton;
/**
* @author icode
*/
@Singleton
public class TyrusWebSocketEndpointProvider implements WebSocketEndpointProvider {
private ComponentProviderService componentProviderService = ComponentProviderService.create();
@Inject
private WebSocketServerContainer container;
private InjectionManager manager;
@Inject
public TyrusWebSocketEndpointProvider(InjectionManager manager) {
Hk2ComponentProvider.manager = manager;
this.manager = manager;
}
@Override
public EndpointMeta parseMeta(Class endpointClass, WebSocket webSocketConf) {
return new AnnotatedEndpointMeta(
endpointClass,
webSocketConf,
container.getIncomingBufferSize(),
manager,
componentProviderService
);
}
}