RestApplicationEntrypoint.java 2.32 KB
/*
 * Copyright Codecrew Ry
 * 
 * All rights reserved.
 * 
 * This license applies to any software containing a notice placed by the 
 * copyright holder. Such software is herein referred to as the Software. 
 * This license covers modification, distribution and use of the Software. 
 * 
 * Any distribution and use in source and binary forms, with or without 
 * modification is not permitted without explicit written permission from the 
 * copyright owner. 
 * 
 * A non-exclusive royalty-free right is granted to the copyright owner of the 
 * Software to use, modify and distribute all modifications to the Software in 
 * future versions of the Software. 
 * 
 */
package fi.codecrew.moya.rest;

import javax.ws.rs.ApplicationPath;

import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.glassfish.jersey.server.ResourceConfig;

import com.wordnik.swagger.jaxrs.config.BeanConfig;
import com.wordnik.swagger.jersey.listing.ApiListingResourceJSON;
import com.wordnik.swagger.jersey.listing.JerseyApiDeclarationProvider;
import com.wordnik.swagger.jersey.listing.JerseyResourceListingProvider;

@ApplicationPath(RestApplicationEntrypoint.REST_PATH)
public class RestApplicationEntrypoint extends ResourceConfig {

	public static final String REST_PATH = "/rest";
	private static final String BASE_URL = "/MoyaWeb";
	private static final String API_RESOURCE_PACKAGE = "fi.codecrew.moya.rest";

	public RestApplicationEntrypoint() {

		// swagger
		BeanConfig beanConfig = new BeanConfig();
		beanConfig.setVersion("1.0.0");
		beanConfig.setBasePath(BASE_URL + REST_PATH);
		beanConfig.setResourcePackage(API_RESOURCE_PACKAGE);
		beanConfig.setScan(true);
		register(beanConfig);

		//ReflectiveJaxrsScanner scanner = new ReflectiveJaxrsScanner();
		//scanner.setResourcePackage(API_RESOURCE_PACKAGE);
		//ScannerFactory.setScanner(scanner);
		//ClassReaders.setReader(new JerseyApiReader());
		//ClassReaders.setReader(new DefaultJaxrsApiReader());

		register(ApiListingResourceJSON.class);
		register(JerseyApiDeclarationProvider.class);
		register(JerseyResourceListingProvider.class);

		// mime multipart image uploads
		register(MultiPartFeature.class);

		// packages to scan
		packages("com.wordnik.swagger.jaxrs.json", "fi.codecrew.moya.rest");
		registerInstances(new LoggingFilter());
	}

}