package com.xoom.oss.feathercon; /** * Jersey servlet builder. To use this, these Jersey dependencies need to be on the classpath * at runtime: * <ul> * <li>com.sun.jersey:jersey-core</li> * <li>com.sun.jersey:jersey-json</li> * <li>com.sun.jersey:jersey-server</li> * <li>com.sun.jersey:jersey-servlet</li> * </ul> * <p/> */ public class JerseyServerBuilder extends FeatherCon.Builder { /** * @param scanPackages Semicolon-separated list of packages to scan for JAX-RS resources. */ public JerseyServerBuilder(String scanPackages) { this(scanPackages, "/*"); } /** * @param scanPackages Semicolon-separated list of packages to scan for JAX-RS resources. * @param pathSpec Path prefix within the servlet context (e.g., "/api/*" */ public JerseyServerBuilder(String scanPackages, String pathSpec) { ServletConfiguration.Builder builder = new ServletConfiguration.Builder(); builder.withServletClassName("com.sun.jersey.spi.container.servlet.ServletContainer") .withServletName("REST Server") .withPathSpec(pathSpec) .withInitOrder(1) .withInitParameter("com.sun.jersey.config.property.packages", scanPackages) .withInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true"); ServletConfiguration build = builder.build(); withServletConfiguration(build); } }