![JAR search and dependency download from the Maven repository](/logo.png)
com.englishtown.vertx.jersey.features.swagger.SwaggerFeature Maven / Gradle / Ivy
package com.englishtown.vertx.jersey.features.swagger;
import com.englishtown.vertx.jersey.features.swagger.internal.SwaggerCorsFilter;
import io.swagger.config.ScannerFactory;
import io.swagger.jaxrs.config.DefaultJaxrsScanner;
import io.swagger.jaxrs.listing.ApiListingResource;
import io.swagger.jaxrs.listing.SwaggerSerializers;
import org.glassfish.jersey.internal.util.PropertiesHelper;
import javax.inject.Inject;
import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.Feature;
import javax.ws.rs.core.FeatureContext;
/**
* Jersey Swagger Feature
*/
public class SwaggerFeature implements Feature {
public static final String PROPERTY_DISABLE = "vertx.jersey.swagger.disable";
public static final String PROPERTY_CORS_DISABLE = "vertx.jersey.swagger.cors.disable";
/**
* {@inheritDoc}
*/
@Override
public boolean configure(FeatureContext context) {
Configuration config = context.getConfiguration();
if (PropertiesHelper.isProperty(config.getProperties(), PROPERTY_DISABLE)){
return false;
}
if (!PropertiesHelper.isProperty(config.getProperties(), PROPERTY_CORS_DISABLE)){
context.register(SwaggerCorsFilter.class);
}
if (!config.isRegistered(ApiListingResource.class)) {
context.register(ApiListingResource.class);
context.register(SwaggerSerializers.class);
}
if (ScannerFactory.getScanner() == null) {
ScannerFactory.setScanner(new DefaultJaxrsScanner());
}
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy