Refine search
@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(); }
/** * Create a new builder and initialize it from resource model. * * @param resourceModel resource model. */ Builder(final ResourceModel resourceModel) { this(); for (final Resource resource : resourceModel.getRootResources()) { processResource(resource, ""); for (final Resource child : resource.getChildResources()) { final String path = resource.getPath(); processResource(child, path.startsWith("/") ? path : "/" + path); } } }
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)); }
final String path = resource.getPath(); if (path == null && !subResourceModel) { separateResources.add(resource); resourceMap.put(path, resource); } else { resourceMap.put(path, Resource.builder(fromMap).mergeWith(resource).build()); return new ResourceModel(rootResources, allResources);
final Resource.Builder resourceBuilder = Resource.builder(path); ResourceModel.Builder builder = new ResourceModel.Builder(false); builder.addResource(Resource.from(endpointDefinition.getImplementationClass())); final ResourceModel resourceModel = builder.build(); for (Resource c : resourceModel.getResources()) { if (CollectionUtils.isNotEmpty(c.getResourceMethods())) { for (ResourceMethod m : c.getResourceMethods()) { final Method handlingMethod = m.getInvocable().getHandlingMethod();
/** * Create new builder pre initialized with {@code resourceModel}. * * @param resourceModel Resource model. * @param subResourceModel {@code true} if resource model created by this builder will be sub resource model, * {@code false} if it is a application root resource model. */ public Builder(ResourceModel resourceModel, boolean subResourceModel) { this.resources = resourceModel.getResources(); this.subResourceModel = subResourceModel; }
@Override public void onEvent(final ApplicationEvent event) { if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) { event.getResourceModel().getResources().parallelStream() .filter(Objects::nonNull) .forEach(resource -> { this.registerCircuitBreakerAnnotations(resource.getAllMethods()); resource.getChildResources().parallelStream() .filter(Objects::nonNull) .forEach(childResource -> { this.registerCircuitBreakerAnnotations( childResource.getAllMethods()); }); }); } }
@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(); } }
private void bindEnhancingResourceClasses( InjectionManager injectionManager, ServerBootstrapBag bootstrapBag, ResourceModel resourceModel, ResourceBag resourceBag, ResourceConfig runtimeConfig) { Set<Class<?>> newClasses = new HashSet<>(); Set<Object> newInstances = new HashSet<>(); for (final Resource res : resourceModel.getRootResources()) { newClasses.addAll(res.getHandlerClasses()); newInstances.addAll(res.getHandlerInstances()); } newClasses.removeAll(resourceBag.classes); newInstances.removeAll(resourceBag.instances); ComponentBag emptyComponentBag = ComponentBag.newInstance(input -> false); bindProvidersAndResources(injectionManager, bootstrapBag, emptyComponentBag, newClasses, newInstances, runtimeConfig); }
/** * <p>getRoutes.</p> * * @return a {@link java.util.List} object. */ @GET public List<String> getRoutes() { List<Resource> resourceList = resourceContext.getResourceModel().getResources(); List<String> routeList = Lists.newArrayList(); for (Resource resource : resourceList) { String path = resource.getPath().startsWith("/") ? "" : "/" + resource.getPath(); if (resource.getAllMethods().size() > 0) { routeList.add(path); } routeList.addAll( resource.getChildResources() .stream() .map(res -> path + (res.getPath().startsWith("/") ? "" : "/") + res.getPath()) .collect(Collectors.toList()) ); } return routeList; }
@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(); }
Configuration configuration) { ResourceModel.Builder resourceModelBuilder = new ResourceModel.Builder(false); for (Resource rootResource: resourceModel.getResources()) { final Resource.Builder rootResourceBuilder = Resource.builder(rootResource); addOptions(rootResourceBuilder); addHead(rootResourceBuilder); for (Resource childResource: rootResource.getChildResources()) { final Resource.Builder childResourceBuilder = Resource.builder(childResource); addOptions(childResourceBuilder); rootResourceBuilder.addChildResource(childResourceBuilder.build()); resourceModelBuilder.addResource(rootResourceBuilder.build()); return resourceModelBuilder.build();
@Override public List<? extends ResourceModelComponent> getComponents() { List<ResourceModelComponent> components = new ArrayList<>(); components.addAll(resources); components.addAll(getRuntimeResourceModel().getRuntimeResources()); return components; }
final Resource resource = Resource.from(c, disableValidation); if (resource != null) { resourceBagBuilder.registerResource(c, resource); final Resource resource = Resource.from(o.getClass(), disableValidation); if (resource != null) { resourceBagBuilder.registerResource(o, resource); refProcessingProvider.set(processingProviders); resourceModel = new ResourceModel.Builder(resourceBag.getRootResources(), false).build(); resourceModel = processResourceModel(resourceModel); processingProviders.getPreMatchFilters(), processingProviders.getGlobalResponseFilters()); final ChainableStage<RequestProcessingContext> routingStage = Routing.forModel(resourceModel.getRuntimeResourceModel()) .locator(locator) .resourceContext(jerseyResourceContext)
@Override public ApplicationDescription getApplication(final UriInfo uriInfo, final boolean detailedWadl) { final ApplicationDescription applicationDescription = getWadlBuilder(detailedWadl, uriInfo) .generate(resourceContext.getResourceModel().getRootResources()); final Application application = applicationDescription.getApplication(); for (final Resources resources : application.getResources()) { if (resources.getBase() == null) { resources.setBase(uriInfo.getBaseUri().toString()); } } attachExternalGrammar(application, applicationDescription, uriInfo.getRequestUri()); return applicationDescription; }
final String path = resource.getPath(); if (path == null && !subResourceModel) { separateResources.add(resource); resourceMap.put(path, resource); } else { resourceMap.put(path, Resource.builder(fromMap).mergeWith(resource).build()); return new ResourceModel(rootResources, allResources);
/** * Create new builder pre initialized with {@code resourceModel}. * * @param resourceModel Resource model. * @param subResourceModel {@code true} if resource model created by this builder will be sub resource model, * {@code false} if it is a application root resource model. */ public Builder(ResourceModel resourceModel, boolean subResourceModel) { this.resources = resourceModel.getResources(); this.subResourceModel = subResourceModel; }
public void onEvent(ApplicationEvent event) { if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) { for (Resource resource : event.getResourceModel().getResources()) { for (ResourceMethod method : resource.getAllMethods()) { registerAuditedMethodAnnotations(method); } for (Resource childResource : resource.getChildResources()) { for (ResourceMethod method : childResource.getAllMethods()) { registerAuditedMethodAnnotations(method); } } } } }
private void bindEnhancingResourceClasses( InjectionManager injectionManager, ServerBootstrapBag bootstrapBag, ResourceModel resourceModel, ResourceBag resourceBag, ResourceConfig runtimeConfig) { Set<Class<?>> newClasses = new HashSet<>(); Set<Object> newInstances = new HashSet<>(); for (final Resource res : resourceModel.getRootResources()) { newClasses.addAll(res.getHandlerClasses()); newInstances.addAll(res.getHandlerInstances()); } newClasses.removeAll(resourceBag.classes); newInstances.removeAll(resourceBag.instances); ComponentBag emptyComponentBag = ComponentBag.newInstance(input -> false); bindProvidersAndResources(injectionManager, bootstrapBag, emptyComponentBag, newClasses, newInstances, runtimeConfig); }
@Override public List<? extends ResourceModelComponent> getComponents() { List<ResourceModelComponent> components = new ArrayList<>(); components.addAll(resources); components.addAll(getRuntimeResourceModel().getRuntimeResources()); return components; }