/** * Register a new programmatically created resource model. * * @param resourceModel programmatically created resource model. */ void registerProgrammaticResource(Resource resourceModel) { registerModel(resourceModel); classes.addAll(resourceModel.getHandlerClasses()); instances.addAll(resourceModel.getHandlerInstances()); }
/** * Register a new programmatically created resource model. * * @param resourceModel programmatically created resource model. */ void registerProgrammaticResource(Resource resourceModel) { registerModel(resourceModel); classes.addAll(resourceModel.getHandlerClasses()); instances.addAll(resourceModel.getHandlerInstances()); }
/** * @param ar abstract resource * @param path resources path * @return resource * @see org.glassfish.jersey.server.wadl.WadlGenerator#createResource(org.glassfish.jersey.server.model.Resource, String) */ public Resource createResource(final org.glassfish.jersey.server.model.Resource ar, final String path) { for (final Class<?> resClass : ar.getHandlerClasses()) { final XmlSeeAlso seeAlso = resClass.getAnnotation(XmlSeeAlso.class); if (seeAlso != null) { Collections.addAll(seeAlsoClasses, seeAlso.value()); } } return wadlGeneratorDelegate.createResource(ar, path); }
/** * @param ar abstract resource * @param path resources path * @return resource * @see org.glassfish.jersey.server.wadl.WadlGenerator#createResource(org.glassfish.jersey.server.model.Resource, String) */ public Resource createResource(final org.glassfish.jersey.server.model.Resource ar, final String path) { for (final Class<?> resClass : ar.getHandlerClasses()) { final XmlSeeAlso seeAlso = resClass.getAnnotation(XmlSeeAlso.class); if (seeAlso != null) { Collections.addAll(seeAlsoClasses, seeAlso.value()); } } return wadlGeneratorDelegate.createResource(ar, path); }
/** * Determines whether the given methods can enhance the resource. * * @param resource resource to add the methods to. * @param methods methods to add. * @return {@code true} if methods can enhance the resource, {@code false} otherwise. */ private static boolean methodsSuitableForResource(final Resource resource, final List<Method> methods) { if (!resource.getResourceMethods().isEmpty()) { return true; } // If there are no handler classes/instances we want to add only non-HEAD / non-OPTIONS methods. if (resource.getHandlerInstances().isEmpty() && resource.getHandlerClasses().isEmpty()) { for (final Method method : methods) { if (!HttpMethod.HEAD.equals(method.httpMethod) && !HttpMethod.OPTIONS.equals(method.httpMethod)) { return true; } } } return false; } }
/** * Determines whether the given methods can enhance the resource. * * @param resource resource to add the methods to. * @param methods methods to add. * @return {@code true} if methods can enhance the resource, {@code false} otherwise. */ private static boolean methodsSuitableForResource(final Resource resource, final List<Method> methods) { if (!resource.getResourceMethods().isEmpty()) { return true; } // If there are no handler classes/instances we want to add only non-HEAD / non-OPTIONS methods. if (resource.getHandlerInstances().isEmpty() && resource.getHandlerClasses().isEmpty()) { for (final Method method : methods) { if (!HttpMethod.HEAD.equals(method.httpMethod) && !HttpMethod.OPTIONS.equals(method.httpMethod)) { return true; } } } return false; } }
private void logResources(List<Resource> resources) { final List<ResourceDescription> resourceDescriptions = new ArrayList<>(); for (Resource resource : resources) { for (ResourceMethod resourceMethod : resource.getAllMethods()) { final String path = RestTools.getPathFromResource(resource); resourceDescriptions.add(new ResourceDescription(resourceMethod.getHttpMethod(), path, resource.getHandlerClasses())); } } Collections.sort(resourceDescriptions); for (ResourceDescription resource : resourceDescriptions) { LOG.debug(resource.toString()); } }
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); }
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 Void call() { for (final Object handlerInstance : resource.getHandlerInstances()) { final Class<?> handlerInstanceClass = handlerInstance.getClass(); if (!resource.getHandlerClasses().contains(handlerInstanceClass)) { createEnhancingMethods(handlerInstanceClass, handlerInstance, newMethods); } else { Errors.warning(resource, LocalizationMessages.TEMPLATE_HANDLER_ALREADY_ENHANCED(handlerInstanceClass)); } } return null; } });
private void visitResourceIntl(final Resource resource, final boolean isRoot) { try { stack.addLast(resource.getPathPattern()); processComponents(resource); if (isRoot) { Class likelyToBeRoot = null; for (final Class next : resource.getHandlerClasses()) { if (!(Inflector.class.isAssignableFrom(next))) { likelyToBeRoot = next; } } if (likelyToBeRoot != null) { mappings.put(likelyToBeRoot, getMapping(getTemplate())); } } } finally { stack.removeLast(); } }
@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(); }
for (final Class<?> handlerClass : resource.getHandlerClasses()) { createEnhancingMethods(handlerClass, null, newMethods); if (resource.getHandlerClasses().isEmpty() && resource.getHandlerInstances().isEmpty()) { for (String resourceName : resource.getNames()) { final Class<Object> resourceClass = AccessController
/** * @param r Jersey resource component for which the WADL reource is to be created. * @param path path where the resource is exposed. * @return the enhanced {@link com.sun.research.ws.wadl.Resource}. * @see org.glassfish.jersey.server.wadl.WadlGenerator#createResource(org.glassfish.jersey.server.model.Resource, String) */ public Resource createResource(final org.glassfish.jersey.server.model.Resource r, final String path) { final Resource result = delegate.createResource(r, path); for (final Class<?> resourceClass : r.getHandlerClasses()) { final ClassDocType classDoc = resourceDoc.getClassDoc(resourceClass); if (classDoc != null && !isEmpty(classDoc.getCommentText())) { final Doc doc = new Doc(); doc.getContent().add(classDoc.getCommentText()); result.getDoc().add(doc); } } return result; }
/** * @param r Jersey resource component for which the WADL reource is to be created. * @param path path where the resource is exposed. * @return the enhanced {@link com.sun.research.ws.wadl.Resource}. * @see org.glassfish.jersey.server.wadl.WadlGenerator#createResource(org.glassfish.jersey.server.model.Resource, String) */ public Resource createResource(final org.glassfish.jersey.server.model.Resource r, final String path) { final Resource result = delegate.createResource(r, path); for (final Class<?> resourceClass : r.getHandlerClasses()) { final ClassDocType classDoc = resourceDoc.getClassDoc(resourceClass); if (classDoc != null && !isEmpty(classDoc.getCommentText())) { final Doc doc = new Doc(); doc.getContent().add(classDoc.getCommentText()); result.getDoc().add(doc); } } return result; }
sb.append(LocalizationMessages.LOGGING_ROOT_RESOURCE_CLASSES()).append(":"); for (final Resource r : rootResourceClasses) { for (final Class clazz : r.getHandlerClasses()) { sb.append('\n').append(" ").append(clazz.getName());
sb.append(LocalizationMessages.LOGGING_ROOT_RESOURCE_CLASSES()).append(":"); for (final Resource r : rootResourceClasses) { for (final Class clazz : r.getHandlerClasses()) { sb.append('\n').append(" ").append(clazz.getName());
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)); }
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)); }
/** * Register a new programmatically created resource model. * * @param resourceModel programmatically created resource model. */ void registerProgrammaticResource(Resource resourceModel) { registerModel(resourceModel); classes.addAll(resourceModel.getHandlerClasses()); instances.addAll(resourceModel.getHandlerInstances()); }