Class JerseyResourceContext

    • Constructor Detail

      • JerseyResourceContext

        public JerseyResourceContext​(Function<Class<?>,​?> getOrCreateInstance,
                                     Consumer<Object> injectInstance,
                                     Consumer<org.glassfish.jersey.internal.inject.Binding> registerBinding)
        Creates a new JerseyResourceContext.
        Parameters:
        getOrCreateInstance - function to create or get existing instance.
        injectInstance - consumer to inject instances into an unmanaged instance.
        registerBinding - consumer to register a new binding into injection manager.
    • Method Detail

      • getResource

        public <T> T getResource​(Class<T> resourceClass)
        Description copied from interface: ResourceContext
        Get a resolved instance of a resource or sub-resource class.

        The resolved resource instance is properly initialized in the context of the current request processing scope. The scope of the resolved resource instance depends on the managing container. For resources managed by JAX-RS container the default scope is per-request.

        Specified by:
        getResource in interface ResourceContext
        Type Parameters:
        T - the type of the resource class.
        Parameters:
        resourceClass - the resource class.
        Returns:
        an instance if it could be resolved, otherwise null.
      • initResource

        public <T> T initResource​(T resource)
        Description copied from interface: ResourceContext
        Initialize the resource or sub-resource instance. All JAX-RS injectable fields in the resource instance will be properly initialized in the context of the current request processing scope.
        Specified by:
        initResource in interface ResourceContext
        Type Parameters:
        T - resource instance type.
        Parameters:
        resource - resource instance.
        Returns:
        initialized (same) resource instance.
      • bindResource

        public <T> void bindResource​(Class<T> resourceClass)
        Binds resourceClass into HK2 context as singleton. The bound class is then cached internally so that any sub-sequent attempt to bind that class as a singleton is silently ignored.
        Type Parameters:
        T - type of the resource class.
        Parameters:
        resourceClass - resource class that should be bound. If the class is not annotated with Singleton annotation it will be ignored by this method.
      • bindResourceIfSingleton

        public <T> void bindResourceIfSingleton​(T resource)
        Binds resourceClass into HK2 context as singleton. The bound class is then cached internally so that any sub-sequent attempt to bind that class as a singleton is silently ignored.
        Parameters:
        resource - singleton resource instance that should be bound as singleton. If the class is not annotated with Singleton annotation it will be ignored by this method.
      • unsafeBindResource

        public void unsafeBindResource​(Object resource,
                                       ContractProvider providerModel)
        Bind a resource instance in a InjectionManager. The bound resource instance is internally cached to make sure any sub-sequent attempts to service the class are silently ignored.

        WARNING: This version of method is not synchronized as well as the cache is not checked for existing bindings before the resource is bound and cached.

        Parameters:
        resource - resource instance to be bound.
        providerModel - provider model for the resource class. If not null, the class wil be bound as a contract provider too.
      • unsafeBindResource

        public <T> void unsafeBindResource​(Class<T> resourceClass,
                                           ContractProvider providerModel)
        Bind a resource class in a HK2 context. The bound resource class is internally cached to make sure any sub-sequent attempts to bind the class are silently ignored.

        WARNING: This version of method is not synchronized as well as the cache is not checked for existing bindings before the resource is bound and cached.

        Type Parameters:
        T - resource class type.
        Parameters:
        resourceClass - resource class to be bound.
        providerModel - provider model for the class. If not null, the class wil be bound as a contract provider too.
      • setResourceModel

        public void setResourceModel​(ResourceModel resourceModel)
        Set the resource mode of the application associated with this context.
        Parameters:
        resourceModel - Resource model on which the application is based.