@@ -30,15 +30,9 @@ public class GraphQLWebsocketServlet extends Endpoint {
3030 private static final CloseReason ERROR_CLOSE_REASON = new CloseReason (CloseReason .CloseCodes .UNEXPECTED_CONDITION , "Internal Server Error" );
3131 private static final CloseReason SHUTDOWN_CLOSE_REASON = new CloseReason (CloseReason .CloseCodes .UNEXPECTED_CONDITION , "Server Shut Down" );
3232
33- private static final List <SubscriptionProtocolFactory > subscriptionProtocolFactories = Collections .singletonList (new ApolloSubscriptionProtocolFactory ());
34- private static final SubscriptionProtocolFactory fallbackSubscriptionProtocolFactory = new FallbackSubscriptionProtocolFactory ();
35- private static final List <String > allSubscriptionProtocols ;
36-
37- static {
38- allSubscriptionProtocols = Stream .concat (subscriptionProtocolFactories .stream (), Stream .of (fallbackSubscriptionProtocolFactory ))
39- .map (SubscriptionProtocolFactory ::getProtocol )
40- .collect (Collectors .toList ());
41- }
33+ private final List <SubscriptionProtocolFactory > subscriptionProtocolFactories ;
34+ private final SubscriptionProtocolFactory fallbackSubscriptionProtocolFactory ;
35+ private final List <String > allSubscriptionProtocols ;
4236
4337 private final Map <Session , WsSessionSubscriptions > sessionSubscriptionCache = new HashMap <>();
4438 private final SubscriptionHandlerInput subscriptionHandlerInput ;
@@ -52,6 +46,12 @@ public GraphQLWebsocketServlet(GraphQLQueryInvoker queryInvoker, GraphQLInvocati
5246
5347 public GraphQLWebsocketServlet (GraphQLQueryInvoker queryInvoker , GraphQLInvocationInputFactory invocationInputFactory , GraphQLObjectMapper graphQLObjectMapper , SubscriptionConnectionListener subscriptionConnectionListener ) {
5448 this .subscriptionHandlerInput = new SubscriptionHandlerInput (invocationInputFactory , queryInvoker , graphQLObjectMapper , subscriptionConnectionListener );
49+
50+ subscriptionProtocolFactories = Collections .singletonList (new ApolloSubscriptionProtocolFactory (subscriptionHandlerInput ));
51+ fallbackSubscriptionProtocolFactory = new FallbackSubscriptionProtocolFactory (subscriptionHandlerInput );
52+ allSubscriptionProtocols = Stream .concat (subscriptionProtocolFactories .stream (), Stream .of (fallbackSubscriptionProtocolFactory ))
53+ .map (SubscriptionProtocolFactory ::getProtocol )
54+ .collect (Collectors .toList ());
5555 }
5656
5757 @ Override
@@ -119,7 +119,7 @@ public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request,
119119 }
120120
121121 SubscriptionProtocolFactory subscriptionProtocolFactory = getSubscriptionProtocolFactory (protocol );
122- sec .getUserProperties ().put (PROTOCOL_HANDLER_REQUEST_KEY , subscriptionProtocolFactory .createHandler (subscriptionHandlerInput ));
122+ sec .getUserProperties ().put (PROTOCOL_HANDLER_REQUEST_KEY , subscriptionProtocolFactory .createHandler ());
123123
124124 if (request .getHeaders ().get (HandshakeResponse .SEC_WEBSOCKET_ACCEPT ) != null ) {
125125 response .getHeaders ().put (HandshakeResponse .SEC_WEBSOCKET_ACCEPT , allSubscriptionProtocols );
@@ -165,7 +165,7 @@ public boolean isShutDown() {
165165 return isShutDown .get ();
166166 }
167167
168- private static SubscriptionProtocolFactory getSubscriptionProtocolFactory (List <String > accept ) {
168+ private SubscriptionProtocolFactory getSubscriptionProtocolFactory (List <String > accept ) {
169169 for (String protocol : accept ) {
170170 for (SubscriptionProtocolFactory subscriptionProtocolFactory : subscriptionProtocolFactories ) {
171171 if (subscriptionProtocolFactory .getProtocol ().equals (protocol )) {
0 commit comments