Java源码示例:org.glassfish.jersey.server.mvc.freemarker.FreemarkerMvcFeature
示例1
public WebApplicationResourceConfig() {
packages("com.giorgiosironi.gameoflife.web");
property(MvcFeature.TEMPLATE_BASE_PATH, "templates");
register(FreemarkerMvcFeature.class);
register(new AbstractBinder() {
@Override
protected void configure() {
InMemoryGenerationRepository repository = new InMemoryGenerationRepository();
Generation original = Generation.withAliveCells(
Cell.onXAndY(1, 1),
Cell.onXAndY(1, 2),
Cell.onXAndY(2, 1),
Cell.onXAndY(2, 2),
Cell.onXAndY(7, 1),
Cell.onXAndY(7, 2),
Cell.onXAndY(7, 3),
Cell.onXAndY(7, 8)
);
repository.add("a-block-and-a-bar", 0, original);
bind(repository).to(GenerationRepository.class);
}
});
}
示例2
public MotdApplication() {
// scan com.gluonhq package for jax-rs classes
packages(true, "com.gluonhq");
// everything inside /webjars should not be handled by the jax-rs application
property(ServletProperties.FILTER_STATIC_CONTENT_REGEX, "/webjars/.*");
// use freemarker for web templating
register(FreemarkerMvcFeature.class);
property(FreemarkerMvcFeature.TEMPLATE_BASE_PATH, "freemarker");
}
示例3
public DrillRestServer(final WorkManager workManager, final ServletContext servletContext, final Drillbit drillbit) {
register(DrillRoot.class);
register(StatusResources.class);
register(StorageResources.class);
register(ProfileResources.class);
register(QueryResources.class);
register(MetricsResources.class);
register(ThreadsResources.class);
register(LogsResources.class);
property(FreemarkerMvcFeature.TEMPLATE_OBJECT_FACTORY, getFreemarkerConfiguration(servletContext));
register(FreemarkerMvcFeature.class);
register(MultiPartFeature.class);
property(ServerProperties.METAINF_SERVICES_LOOKUP_DISABLE, true);
final boolean isAuthEnabled =
workManager.getContext().getConfig().getBoolean(ExecConstants.USER_AUTHENTICATION_ENABLED);
if (isAuthEnabled) {
register(LogInLogOutResources.class);
register(AuthDynamicFeature.class);
register(RolesAllowedDynamicFeature.class);
}
//disable moxy so it doesn't conflict with jackson.
final String disableMoxy = PropertiesHelper.getPropertyNameForRuntime(CommonProperties.MOXY_JSON_FEATURE_DISABLE,
getConfiguration().getRuntimeType());
property(disableMoxy, true);
register(JsonParseExceptionMapper.class);
register(JsonMappingExceptionMapper.class);
register(GenericExceptionMapper.class);
JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider();
provider.setMapper(workManager.getContext().getLpPersistence().getMapper());
register(provider);
// Get an EventExecutor out of the BitServer EventLoopGroup to notify listeners for WebUserConnection. For
// actual connections between Drillbits this EventLoopGroup is used to handle network related events. Though
// there is no actual network connection associated with WebUserConnection but we need a CloseFuture in
// WebSessionResources, so we are using EvenExecutor from network EventLoopGroup pool.
final EventExecutor executor = workManager.getContext().getBitLoopGroup().next();
register(new AbstractBinder() {
@Override
protected void configure() {
bind(drillbit).to(Drillbit.class);
bind(workManager).to(WorkManager.class);
bind(executor).to(EventExecutor.class);
bind(workManager.getContext().getLpPersistence().getMapper()).to(ObjectMapper.class);
bind(workManager.getContext().getStoreProvider()).to(PersistentStoreProvider.class);
bind(workManager.getContext().getStorage()).to(StoragePluginRegistry.class);
bind(new UserAuthEnabled(isAuthEnabled)).to(UserAuthEnabled.class);
if (isAuthEnabled) {
bindFactory(DrillUserPrincipalProvider.class).to(DrillUserPrincipal.class);
bindFactory(AuthWebUserConnectionProvider.class).to(WebUserConnection.class);
} else {
bindFactory(AnonDrillUserPrincipalProvider.class).to(DrillUserPrincipal.class);
bindFactory(AnonWebUserConnectionProvider.class).to(WebUserConnection.class);
}
}
});
}
示例4
protected void init(ScanResult result) {
// FILTERS //
register(JSONPrettyPrintFilter.class);
register(MediaTypeFilter.class);
// RESOURCES //
for (Class<?> resource : result.getAnnotatedClasses(RestResource.class)) {
register(resource);
}
// FEATURES
property(FreemarkerMvcFeature.TEMPLATE_OBJECT_FACTORY, getFreemarkerConfiguration());
register(FreemarkerMvcFeature.class);
register(MultiPartFeature.class);
register(FirstTimeFeature.class);
register(DACAuthFilterFeature.class);
register(DACExceptionMapperFeature.class);
register(DACJacksonJaxbJsonFeature.class);
register(JSONJobDataFilter.class);
register(TestResourcesFeature.class);
// LISTENERS //
register(TimingApplicationEventListener.class);
// EXCEPTION MAPPERS //
register(JsonParseExceptionMapper.class);
register(JsonMappingExceptionMapper.class);
// BODY WRITERS //
register(QlikAppMessageBodyGenerator.class);
register(TableauMessageBodyGenerator.class);
// PROPERTIES //
property(ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR, "true");
final String disableMoxy = PropertiesHelper.getPropertyNameForRuntime(CommonProperties.MOXY_JSON_FEATURE_DISABLE,
getConfiguration().getRuntimeType());
property(disableMoxy, true);
property(TableauMessageBodyGenerator.CUSTOMIZATION_ENABLED, false);
}
示例5
@Override
public InitState init(InitContext initContext) {
RestPlugin restPlugin = initContext.dependency(RestPlugin.class);
if (restPlugin.isEnabled()) {
RestConfig restConfig = restPlugin.getRestConfig();
Set<Class<?>> resources = new HashSet<>();
Set<Class<?>> providers = new HashSet<>();
List<RestProvider> restProviders = initContext.dependencies(RestProvider.class);
for (RestProvider restProvider : restProviders) {
resources.addAll(restProvider.resources());
providers.addAll(filterClasses(restProvider.providers()));
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("{} JAX-RS resource(s) detected: {}", resources.size(), resources);
} else {
LOGGER.info("{} JAX-RS resource(s) detected (set logger to DEBUG to see them)", resources.size());
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("{} JAX-RS provider(s) detected: {}", providers.size(), providers);
} else {
LOGGER.info("{} JAX-RS provider(s) detected (set logger to DEBUG to see them)", providers.size());
}
Set<Class<?>> enabledFeatures = new HashSet<>();
if (isMultipartFeaturePresent()) {
enabledFeatures.add(MultiPartFeature.class);
LOGGER.debug("Multipart feature is enabled");
}
if (isFreemarkerFeaturePresent()) {
enabledFeatures.add(FreemarkerMvcFeature.class);
LOGGER.debug("FreeMarker feature is enabled");
}
if (isJspFeaturePresent()) {
enabledFeatures.add(JspMvcFeature.class);
LOGGER.debug("JSP feature is enabled");
}
for (Class<?> featureClass : filterClasses(restConfig.getFeatures())) {
enabledFeatures.add(featureClass);
LOGGER.debug("Feature {} is enabled", featureClass.getCanonicalName());
}
Map<String, Object> jersey2Properties = buildJerseyProperties(restConfig);
if (LOGGER.isTraceEnabled()) {
for (Map.Entry<String, Object> entry : jersey2Properties.entrySet()) {
LOGGER.debug("Jersey property {} = {}", entry.getKey(), entry.getValue());
}
}
jersey2filterDefinition = new FilterDefinition("jersey2", SeedServletContainer.class);
jersey2filterDefinition.setPriority(SeedFilterPriority.JERSEY);
jersey2filterDefinition.setAsyncSupported(true);
jersey2filterDefinition.addMappings(new FilterDefinition.Mapping(restConfig.getPath() + "/*"));
jersey2filterDefinition.addInitParameters(buildInitParams(jersey2Properties));
seedServletContainer = new SeedServletContainer(resources, providers, enabledFeatures, jersey2Properties);
LOGGER.info("Jersey 2 serving JAX-RS resources on {}/*", restConfig.getPath());
}
return InitState.INITIALIZED;
}
示例6
public ViewApplicationConfig() {
packages("com.baeldung.jersey.server");
property(ServerProperties.BV_SEND_ERROR_IN_RESPONSE, true);
property(FreemarkerMvcFeature.TEMPLATE_BASE_PATH, "templates/freemarker");
register(FreemarkerMvcFeature.class);;
}