diff --git a/pom.xml b/pom.xml
index 2371defed..8cb843ff6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,7 +101,7 @@
io.dropwizard
- dropwizard-client
+ dropwizard-assets
${dropwizard.version}
@@ -114,11 +114,6 @@
vertica-jdbc
6.1.0
-
- com.palominolabs.metrics
- metrics-guice
- 3.0.1
-
mysql
mysql-connector-java
@@ -164,7 +159,11 @@
-
+
+ com.wordnik
+ swagger-jaxrs_2.9.1
+ 1.3.1
+
@@ -186,11 +185,6 @@
${dropwizard.version}
test
-
- com.wordnik
- swagger-jaxrs_2.9.1
- 1.3.1
-
diff --git a/src/main/java/com/hpcloud/mon/MonApiApplication.java b/src/main/java/com/hpcloud/mon/MonApiApplication.java
index 3b78f6dc9..87ed1d548 100644
--- a/src/main/java/com/hpcloud/mon/MonApiApplication.java
+++ b/src/main/java/com/hpcloud/mon/MonApiApplication.java
@@ -1,35 +1,42 @@
package com.hpcloud.mon;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.PropertyNamingStrategy;
-import com.hp.csbu.cc.middleware.TokenAuth;
-import com.hpcloud.messaging.kafka.KafkaHealthCheck;
-import com.hpcloud.mon.infrastructure.servlet.PostAuthenticationFilter;
-import com.hpcloud.mon.infrastructure.servlet.PreAuthenticationFilter;
-import com.hpcloud.mon.resource.*;
-import com.hpcloud.mon.resource.exception.*;
-import com.hpcloud.util.Injector;
-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.listing.ApiDeclarationProvider;
-import com.wordnik.swagger.jaxrs.listing.ApiListingResourceJSON;
-import com.wordnik.swagger.jaxrs.listing.ResourceListingProvider;
-import com.wordnik.swagger.jaxrs.reader.DefaultJaxrsApiReader;
-import com.wordnik.swagger.reader.ClassReaders;
import io.dropwizard.Application;
import io.dropwizard.jdbi.bundles.DBIExceptionsBundle;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
-import javax.servlet.FilterRegistration.Dynamic;
-import javax.ws.rs.ext.ExceptionMapper;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import javax.servlet.FilterRegistration.Dynamic;
+import javax.ws.rs.ext.ExceptionMapper;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.hp.csbu.cc.middleware.TokenAuth;
+import com.hpcloud.messaging.kafka.KafkaHealthCheck;
+import com.hpcloud.mon.bundle.SwaggerBundle;
+import com.hpcloud.mon.infrastructure.servlet.PostAuthenticationFilter;
+import com.hpcloud.mon.infrastructure.servlet.PreAuthenticationFilter;
+import com.hpcloud.mon.resource.AlarmResource;
+import com.hpcloud.mon.resource.MeasurementResource;
+import com.hpcloud.mon.resource.MetricResource;
+import com.hpcloud.mon.resource.NotificationMethodResource;
+import com.hpcloud.mon.resource.StatisticResource;
+import com.hpcloud.mon.resource.VersionResource;
+import com.hpcloud.mon.resource.exception.ConstraintViolationExceptionMapper;
+import com.hpcloud.mon.resource.exception.EntityExistsExceptionMapper;
+import com.hpcloud.mon.resource.exception.EntityNotFoundExceptionMapper;
+import com.hpcloud.mon.resource.exception.IllegalArgumentExceptionMapper;
+import com.hpcloud.mon.resource.exception.InvalidEntityExceptionMapper;
+import com.hpcloud.mon.resource.exception.JsonMappingExceptionManager;
+import com.hpcloud.mon.resource.exception.JsonProcessingExceptionMapper;
+import com.hpcloud.mon.resource.exception.ResourceNotFoundExceptionMapper;
+import com.hpcloud.mon.resource.exception.ThrowableExceptionMapper;
+import com.hpcloud.util.Injector;
+
/**
* Monitoring API application.
*
@@ -44,6 +51,7 @@ public class MonApiApplication extends Application {
public void initialize(Bootstrap bootstrap) {
/** Configure bundles */
bootstrap.addBundle(new DBIExceptionsBundle());
+ bootstrap.addBundle(new SwaggerBundle());
}
@Override
@@ -116,22 +124,8 @@ public class MonApiApplication extends Application {
.addMappingForUrlPatterns(null, true, "/*");
}
- environment.jersey().register(new ApiListingResourceJSON());
-
- // Swagger providers
- environment.jersey().register(new ApiDeclarationProvider());
- environment.jersey().register(new ResourceListingProvider());
-
- // 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:8000");
+ /** Configure swagger */
+ SwaggerBundle.configure(config);
}
private void removeExceptionMappers(Set