Class DefaultAsyncSupportResolver

  • All Implemented Interfaces:
    AsyncSupportResolver

    public class DefaultAsyncSupportResolver
    extends java.lang.Object
    implements AsyncSupportResolver
    This is the default implementation of @link {AsyncSupportResolver}.
    Author:
    Viktor Klang
    • Constructor Detail

      • DefaultAsyncSupportResolver

        public DefaultAsyncSupportResolver​(AtmosphereConfig config)
    • Method Detail

      • testClassExists

        protected boolean testClassExists​(java.lang.String testClass)
        Convenience method that tests if a class with the given FQN is present on the classpath.
        Parameters:
        testClass -
        Returns:
        true if the class is present
      • detectContainersPresent

        public java.util.List<java.lang.Class<? extends AsyncSupport>> detectContainersPresent()
        Returns a list of comet support by containers available on the classpath.
        Returns:
      • detectWebSocketPresent

        public java.util.List<java.lang.Class<? extends AsyncSupport>> detectWebSocketPresent​(boolean useNativeIfPossible,
                                                                                              boolean useServlet30Async)
      • defaultCometSupport

        public AsyncSupport defaultCometSupport​(boolean preferBlocking)
        This method is used to determine the default AsyncSupport if all else fails.
        Parameters:
        preferBlocking -
        Returns:
      • newCometSupport

        public AsyncSupport newCometSupport​(java.lang.Class<? extends AsyncSupport> targetClass)
        Given a Class of something that extends AsyncSupport, it tries to return an instance of that class.

        The class has to have a visible constructor with the signature (@link {AtmosphereConfig}).

        Parameters:
        targetClass -
        Returns:
        an instance of the specified class or null if the class cannot be instantiated
      • newCometSupport

        public AsyncSupport newCometSupport​(java.lang.String targetClassFQN)
      • resolve

        public AsyncSupport resolve​(boolean useNativeIfPossible,
                                    boolean defaultToBlocking)
        This method is the general interface to the outside world.
        Parameters:
        useNativeIfPossible - - should the resolver try to use a native container comet support if present?
        defaultToBlocking - - should the resolver default to blocking IO comet support?
        Returns:
        an instance of AsyncSupport
      • resolveWebSocket

        public AsyncSupport resolveWebSocket​(java.util.List<java.lang.Class<? extends AsyncSupport>> available)
      • resolveNativeCometSupport

        protected AsyncSupport resolveNativeCometSupport​(java.util.List<java.lang.Class<? extends AsyncSupport>> available)
        This method is called to determine which native comet support to the used.
        Parameters:
        available -
        Returns:
        the result of @link {resolveMultipleNativeSupportConflict} if there are more than 1 item in the list of available ontainers
      • resolveMultipleNativeSupportConflict

        protected AsyncSupport resolveMultipleNativeSupportConflict​(java.util.List<java.lang.Class<? extends AsyncSupport>> available)
        This method is called if there are more than one potential native container in scope.
        Returns:
        a AsyncSupport instance