All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.englishtown.vertx.jersey.features.swagger.internal.SwaggerAutoDiscoverable Maven / Gradle / Ivy

package com.englishtown.vertx.jersey.features.swagger.internal;

import com.englishtown.vertx.jersey.features.swagger.SwaggerFeature;
import org.glassfish.hk2.utilities.binding.AbstractBinder;
import org.glassfish.jersey.internal.spi.AutoDiscoverable;

import javax.annotation.Priority;
import javax.inject.Singleton;
import javax.servlet.ServletContext;
import javax.ws.rs.core.FeatureContext;

/**
 * Swagger auto discoverable feature
 */
@Priority(AutoDiscoverable.DEFAULT_PRIORITY)
public class SwaggerAutoDiscoverable implements AutoDiscoverable {

    /**
     * {@inheritDoc}
     */
    @Override
    public void configure(FeatureContext context) {

        if (!context.getConfiguration().isRegistered(SwaggerFeature.class)) {
            context.register(SwaggerFeature.class);
            context.register(new Binder());
        }

    }

    private static class Binder extends AbstractBinder {

        /**
         * Implement to provide binding definitions using the exposed binding
         * methods.
         */
        @Override
        protected void configure() {
            bind(SwaggerServletContext.class).to(ServletContext.class).in(Singleton.class);
        }

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy