72 lines
2.5 KiB
Java
72 lines
2.5 KiB
Java
|
package ${package}.web;
|
||
|
|
||
|
import static ${package}.web.StartupListener.APP_NAME;
|
||
|
|
||
|
import javax.ws.rs.ApplicationPath;
|
||
|
import javax.ws.rs.Priorities;
|
||
|
import java.util.logging.Level;
|
||
|
|
||
|
import ${package}.rest.BooksResource;
|
||
|
import li.strolch.rest.RestfulStrolchComponent;
|
||
|
import li.strolch.rest.StrolchRestfulExceptionMapper;
|
||
|
import li.strolch.rest.endpoint.*;
|
||
|
import li.strolch.rest.filters.*;
|
||
|
import org.glassfish.jersey.logging.LoggingFeature;
|
||
|
import org.glassfish.jersey.server.ResourceConfig;
|
||
|
import org.glassfish.jersey.server.ServerProperties;
|
||
|
import org.slf4j.Logger;
|
||
|
import org.slf4j.LoggerFactory;
|
||
|
|
||
|
@ApplicationPath("rest")
|
||
|
public class RestfulApplication extends ResourceConfig {
|
||
|
|
||
|
private static final Logger logger = LoggerFactory.getLogger(RestfulApplication.class);
|
||
|
|
||
|
public RestfulApplication() {
|
||
|
setApplicationName(APP_NAME);
|
||
|
|
||
|
// add project resources by package name
|
||
|
packages(BooksResource.class.getPackage().getName());
|
||
|
|
||
|
// strolch services
|
||
|
register(AuthenticationService.class);
|
||
|
register(StrolchJobsResource.class);
|
||
|
register(ReportResource.class);
|
||
|
register(ControlResource.class);
|
||
|
register(EnumQuery.class);
|
||
|
register(Inspector.class);
|
||
|
register(UserSessionsService.class);
|
||
|
register(PrivilegeUsersService.class);
|
||
|
register(PrivilegeRolesService.class);
|
||
|
register(PrivilegePoliciesService.class);
|
||
|
register(OperationsLogResource.class);
|
||
|
register(VersionQuery.class);
|
||
|
|
||
|
// filters
|
||
|
register(AuthenticationRequestFilter.class, Priorities.AUTHENTICATION);
|
||
|
register(AccessControlResponseFilter.class);
|
||
|
register(AuthenticationResponseFilter.class);
|
||
|
register(HttpCacheResponseFilter.class);
|
||
|
|
||
|
// log exceptions and return them as plain text to the caller
|
||
|
register(StrolchRestfulExceptionMapper.class);
|
||
|
|
||
|
// the JSON generated is in UTF-8
|
||
|
register(CharsetResponseFilter.class);
|
||
|
|
||
|
RestfulStrolchComponent restfulComponent = RestfulStrolchComponent.getInstance();
|
||
|
if (restfulComponent.isRestLogging()) {
|
||
|
register(new LoggingFeature(java.util.logging.Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME),
|
||
|
Level.SEVERE, LoggingFeature.Verbosity.PAYLOAD_ANY, Integer.MAX_VALUE));
|
||
|
|
||
|
property(ServerProperties.TRACING, "ALL");
|
||
|
property(ServerProperties.TRACING_THRESHOLD, "TRACE");
|
||
|
}
|
||
|
|
||
|
logger.info(
|
||
|
"Initialized REST application " + getApplicationName() + " with " + getClasses().size() + " classes, "
|
||
|
+ getInstances().size() + " instances, " + getResources().size() + " resources and "
|
||
|
+ getProperties().size() + " properties");
|
||
|
}
|
||
|
}
|