@Override public ResourceModel processResourceModel(ResourceModel model, Configuration config) { // Create new resource model. final ResourceModel.Builder resourceModelBuilder = new ResourceModel.Builder(false); for (final Resource resource : model.getResources()) { for (Class handlerClass : resource.getHandlerClasses()) { final String packageName = handlerClass.getPackage().getName(); final Optional<String> packagePrefix = packagePrefixes.entrySet().stream() .filter(entry -> packageName.startsWith(entry.getKey())) .sorted((o1, o2) -> -o1.getKey().compareTo(o2.getKey())) .map(Map.Entry::getValue) .findFirst(); if (packagePrefix.isPresent()) { final String prefixedPath = prefixPath(packagePrefix.get(), resource.getPath()); final Resource newResource = Resource.builder(resource) .path(prefixedPath) .build(); resourceModelBuilder.addResource(newResource); } else { resourceModelBuilder.addResource(resource); } } } return resourceModelBuilder.build(); }
@Override public ResourceModel processResourceModel(final ResourceModel resourceModel, final Configuration configuration) { final boolean disabled = PropertiesHelper.isProperty(configuration.getProperty(ServerProperties.WADL_FEATURE_DISABLE)); if (disabled) { return resourceModel; } final ResourceModel.Builder builder = ModelProcessorUtil.enhanceResourceModel(resourceModel, false, methodList, true); // Do not add WadlResource if already present in the classes (i.e. added during scanning). if (!configuration.getClasses().contains(WadlResource.class)) { final Resource wadlResource = Resource.builder(WadlResource.class).build(); builder.addResource(wadlResource); } return builder.build(); }
@Override public ResourceModel processResourceModel(final ResourceModel resourceModel, final Configuration configuration) { final boolean disabled = PropertiesHelper.isProperty(configuration.getProperty(ServerProperties.WADL_FEATURE_DISABLE)); if (disabled) { return resourceModel; } final ResourceModel.Builder builder = ModelProcessorUtil.enhanceResourceModel(resourceModel, false, methodList, true); // Do not add WadlResource if already present in the classes (i.e. added during scanning). if (!configuration.getClasses().contains(WadlResource.class)) { final Resource wadlResource = Resource.builder(WadlResource.class).build(); builder.addResource(wadlResource); } return builder.build(); }
private LocatorRouting buildRouting(final Resource subResource) { final ResourceModel model = new ResourceModel.Builder(true).addResource(subResource).build(); final ResourceModel enhancedModel = enhance(model); if (!disableValidation) { validateResource(enhancedModel); } final Resource enhancedLocator = enhancedModel.getResources().get(0); for (final Class<?> handlerClass : enhancedLocator.getHandlerClasses()) { resourceContext.bindResource(handlerClass); } return new LocatorRouting(enhancedModel, runtimeModelBuilder.buildModel(enhancedModel.getRuntimeResourceModel(), true)); }
@Override public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) { return ModelProcessorUtil.enhanceResourceModel(subResourceModel, true, methodList, true).build(); } }
@Override public ResourceModel processSubResource(ResourceModel resourceModel, Configuration configuration) { final boolean disabled = PropertiesHelper.isProperty(configuration.getProperty(ServerProperties.WADL_FEATURE_DISABLE)); if (disabled) { return resourceModel; } return ModelProcessorUtil.enhanceResourceModel(resourceModel, true, methodList, true).build(); } }
@Override public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) { ResourceModel.Builder builder = new ResourceModel.Builder(resourceModel.getRootResources(), false); final Resource singletonResource = Resource.from(SingletonResource.class); builder.addResource(singletonResource); final Resource requestScopeResource = Resource.from(RequestScopeResource.class); builder.addResource(requestScopeResource); final Resource.Builder resourceBuilder = Resource.builder("instance"); resourceBuilder.addMethod("GET").handledBy(new Inflector<ContainerRequestContext, String>() { private int counter = 0; @Override public String apply(ContainerRequestContext containerRequestContext) { return String.valueOf("Inflector:" + counter++); } }); final Resource instanceResource = resourceBuilder.build(); builder.addResource(instanceResource); return builder.build(); }
@Override public void init(InjectionManager injectionManager, BootstrapBag bootstrapBag) { ServerBootstrapBag serverBag = (ServerBootstrapBag) bootstrapBag; Collection<ModelProcessor> modelProcessors = serverBag.getModelProcessors(); ResourceConfig runtimeConfig = serverBag.getRuntimeConfig(); ResourceBag resourceBag = serverBag.getResourceBag(); ComponentBag componentBag = runtimeConfig.getComponentBag(); // Adds all providers from resource config to InjectionManager -> BootstrapConfigurators are able to work with these // services and get them. bindProvidersAndResources( injectionManager, serverBag, componentBag, resourceBag.classes, resourceBag.instances, runtimeConfig); ResourceModel resourceModel = new ResourceModel.Builder(resourceBag.getRootResources(), false).build(); resourceModel = processResourceModel(modelProcessors, resourceModel, runtimeConfig); bindEnhancingResourceClasses(injectionManager, serverBag, resourceModel, resourceBag, runtimeConfig); serverBag.setResourceModel(resourceModel); // Add newly created resource model in ResourceContext. serverBag.getResourceContext().setResourceModel(resourceModel); }
@Override public void init(InjectionManager injectionManager, BootstrapBag bootstrapBag) { ServerBootstrapBag serverBag = (ServerBootstrapBag) bootstrapBag; Collection<ModelProcessor> modelProcessors = serverBag.getModelProcessors(); ResourceConfig runtimeConfig = serverBag.getRuntimeConfig(); ResourceBag resourceBag = serverBag.getResourceBag(); ComponentBag componentBag = runtimeConfig.getComponentBag(); // Adds all providers from resource config to InjectionManager -> BootstrapConfigurators are able to work with these // services and get them. bindProvidersAndResources( injectionManager, serverBag, componentBag, resourceBag.classes, resourceBag.instances, runtimeConfig); ResourceModel resourceModel = new ResourceModel.Builder(resourceBag.getRootResources(), false).build(); resourceModel = processResourceModel(modelProcessors, resourceModel, runtimeConfig); bindEnhancingResourceClasses(injectionManager, serverBag, resourceModel, resourceBag, runtimeConfig); serverBag.setResourceModel(resourceModel); // Add newly created resource model in ResourceContext. serverBag.getResourceContext().setResourceModel(resourceModel); }
/** * Enhance {@link org.glassfish.jersey.server.model.RuntimeResource runtime resources} from the given * {@link org.glassfish.jersey.server.model.ResourceModel resource model} with methods obtained via * {@link #getEnhancingMethods(org.glassfish.jersey.server.model.RuntimeResource)}. * * @param resourceModel resource model with runtime resources to enhance. * @param subResourceModel determines whether the resource model represents sub-resource. * @return enhanced resource model. */ private ResourceModel processModel(final ResourceModel resourceModel, final boolean subResourceModel) { ResourceModel.Builder newModelBuilder = processTemplateAnnotatedInvocables(resourceModel, subResourceModel); for (RuntimeResource resource : resourceModel.getRuntimeResourceModel().getRuntimeResources()) { ModelProcessorUtil.enhanceResource(resource, newModelBuilder, getEnhancingMethods(resource), false); } return newModelBuilder.build(); }
private LocatorRouting buildRouting(final Resource subResource) { final ResourceModel model = new ResourceModel.Builder(true).addResource(subResource).build(); final ResourceModel enhancedModel = enhance(model); if (!disableValidation) { validateResource(enhancedModel); } final Resource enhancedLocator = enhancedModel.getResources().get(0); for (final Class<?> handlerClass : enhancedLocator.getHandlerClasses()) { resourceContext.bindResource(handlerClass); } return new LocatorRouting(enhancedModel, runtimeModelBuilder.buildModel(enhancedModel.getRuntimeResourceModel(), true)); }
@Override public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) { return ModelProcessorUtil.enhanceResourceModel(resourceModel, false, methodList, true).build(); }
private LocatorRouting buildRouting(final Resource subResource) { final ResourceModel model = new ResourceModel.Builder(true).addResource(subResource).build(); final ResourceModel enhancedModel = enhance(model); if (!disableValidation) { validateResource(enhancedModel); } final Resource enhancedLocator = enhancedModel.getResources().get(0); for (final Class<?> handlerClass : enhancedLocator.getHandlerClasses()) { resourceContext.bindResource(handlerClass); } return new LocatorRouting(enhancedModel, runtimeModelBuilder.buildModel(enhancedModel.getRuntimeResourceModel(), true)); }
@Override public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) { return ModelProcessorUtil.enhanceResourceModel(resourceModel, false, methodList, true).build(); }
@Override public ResourceModel processSubResource(ResourceModel resourceModel, Configuration configuration) { final boolean disabled = PropertiesHelper.isProperty(configuration.getProperty(ServerProperties.WADL_FEATURE_DISABLE)); if (disabled) { return resourceModel; } return ModelProcessorUtil.enhanceResourceModel(resourceModel, true, methodList, true).build(); } }
@Override public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) { return ModelProcessorUtil.enhanceResourceModel(subResourceModel, true, methodList, true).build(); } }
@Override public ResourceModel processSubResource(ResourceModel resourceModel, Configuration configuration) { final boolean disabled = PropertiesHelper.isProperty(configuration.getProperty(ServerProperties.WADL_FEATURE_DISABLE)); if (disabled) { return resourceModel; } return ModelProcessorUtil.enhanceResourceModel(resourceModel, true, methodList, true).build(); } }
@Override public ResourceModel processSubResource(ResourceModel subResource, Configuration configuration) { final Resource resource = Resource.builder() .mergeWith(Resource.from(EnhancedSubResourceSingleton.class)) .mergeWith(Resource.from(EnhancedSubResource.class)) .mergeWith(subResource.getResources().get(0)).build(); return new ResourceModel.Builder(true).addResource(resource).build(); } }
@Override public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) { final ResourceModel.Builder builder = new ResourceModel.Builder(resourceModel, false); for (Resource resource : resources) { builder.addResource(resource); } return builder.build(); }
@Override public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) { return ModelProcessorUtil.enhanceResourceModel(subResourceModel, true, methodList, true).build(); } }