Skip to content

Instantly share code, notes, and snippets.

@zachlendon
Created September 3, 2014 02:14
Show Gist options
  • Select an option

  • Save zachlendon/c3eb4bb168dc7d99fe24 to your computer and use it in GitHub Desktop.

Select an option

Save zachlendon/c3eb4bb168dc7d99fe24 to your computer and use it in GitHub Desktop.
Overriding SpringService
package com.hotelone.api.service
import com.codahale.metrics.*
import com.codahale.metrics.graphite.Graphite
import com.codahale.metrics.graphite.GraphiteReporter
import com.hotelone.api.adapters.TimedResourceMethodDispatchAdapter
import com.hotelone.api.auth.ExampleAuthenticator
import com.hotelone.api.auth.User
import com.hotelone.api.bundles.SwaggerBundle
import com.hmsonline.dropwizard.spring.SpringService
import com.hmsonline.dropwizard.spring.SpringServiceConfiguration
import com.sun.jersey.api.core.ResourceConfig
import com.yammer.dropwizard.auth.oauth.OAuthProvider
import com.yammer.dropwizard.config.Bootstrap
import com.yammer.dropwizard.config.Environment
import com.wordnik.swagger.config.ConfigFactory
import com.wordnik.swagger.config.ScannerFactory
import com.wordnik.swagger.config.SwaggerConfig
import com.wordnik.swagger.jaxrs.config.DefaultJaxrsScanner
import com.wordnik.swagger.jaxrs.reader.DefaultJaxrsApiReader
import com.wordnik.swagger.reader.ClassReaders
import com.yammer.metrics.Metrics
import com.yammer.metrics.core.MetricsRegistry
import org.eclipse.jetty.servlets.CrossOriginFilter
import java.util.concurrent.TimeUnit
class HotelOneService extends SpringService {
@Override
public static void main(String[] args) throws Exception {
new HotelOneService().run(args)
}
@Override
public void initialize(Bootstrap<SpringServiceConfiguration> bootstrap) {
bootstrap.addBundle(new SwaggerBundle());
}
@Override
public void run(SpringServiceConfiguration configuration, Environment environment) throws ClassNotFoundException {
environment.addFilter(CrossOriginFilter.class, "/*");
environment.addProvider(new OAuthProvider<User>(new ExampleAuthenticator(),
"HotelOneAPI"))
ResourceConfig config = environment.getJerseyResourceConfig();
config.getFeatures().put(ResourceConfig.FEATURE_TRACE, Boolean.TRUE);
super.run(configuration, environment)
// Swagger Scanner, which finds all the resources for @Api Annotations
ScannerFactory.setScanner(new DefaultJaxrsScanner())
// Add the reader, which scans the resources and extracts the resource information
ClassReaders.setReader(new DefaultJaxrsApiReader())
// Set the swagger config options
SwaggerConfig swaggerConfig = ConfigFactory.config()
swaggerConfig.setApiVersion("1.0.1");
swaggerConfig.setBasePath("http://localhost:8180")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment