Package org.glassfish.jersey.server.model

Examples of org.glassfish.jersey.server.model.Resource


    }

    private List<Resource> createResources(Class<?>... resourceClass) {
        final ResourceBag.Builder builder = new ResourceBag.Builder();
        for (Class<?> clazz : resourceClass) {
            final Resource resource = Resource.from(clazz);
            builder.registerProgrammaticResource(resource);
        }
        final ResourceBag bag = builder.build();
        return bag.getRootResources();
    }
View Full Code Here


        @GET
        @Path("model")
        public String model() {
            final ResourceModel resourceModel = resourceContext.getResourceModel();
            final List<Resource> resources = resourceModel.getRootResources();
            final Resource a = getResource(resources, "a");
            ResourceTestUtils.containsMethod(a, "GET");
            ResourceTestUtils.containsMethod(a, "POST");

            final Resource b = getResource(resources, "b");
            ResourceTestUtils.containsMethod(b, "GET");

            final Resource q = getResource(resources, "b");
            ResourceTestUtils.containsMethod(q, "GET");


            assertEquals(3, resources.size());
View Full Code Here

            }

            // Introspecting classes & instances
            for (final Class<?> c : runtimeConfig.getClasses()) {
                try {
                    final Resource resource = Resource.from(c, disableValidation);
                    if (resource != null) {
                        resourceBagBuilder.registerResource(c, resource);
                    }
                } catch (final IllegalArgumentException ex) {
                    LOGGER.warning(ex.getMessage());
                }
            }

            for (final Object o : runtimeConfig.getSingletons()) {
                try {
                    final Resource resource = Resource.from(o.getClass(), disableValidation);
                    if (resource != null) {
                        resourceBagBuilder.registerResource(o, resource);
                    }
                } catch (final IllegalArgumentException ex) {
                    LOGGER.warning(ex.getMessage());
View Full Code Here

        }
        return newModelBuilder;
    }

    public static void enhanceResource(RuntimeResource resource, ResourceModel.Builder newModelBuilder, List<Method> methods) {
        final Resource firstResource = resource.getResources().get(0);

        if (methodsSuitableForResource(firstResource, methods)) {
            for (Method method : methods) {
                final Set<MediaType> produces = Sets.newHashSet(method.produces);

                for (ResourceMethod resourceMethod : resource.getResourceMethods()) {
                    for (final MediaType produce : method.produces) {
                        if (ModelProcessorUtil.isMethodOverridden(
                                resourceMethod,
                                method.httpMethod,
                                method.consumes.get(0),
                                produce)) {
                            produces.remove(produce);
                        }
                    }
                }

                if (!produces.isEmpty()) {
                    final Resource parentResource = resource.getParentResources().get(0);
                    if (parentResource != null && method.path != null) {
                        continue;
                    }

                    final Resource.Builder resourceBuilder = Resource.builder(firstResource.getPath());
                    final Resource.Builder builder = method.path != null
                            ? resourceBuilder.addChildResource(method.path) : resourceBuilder;
                    final ResourceMethod.Builder methodBuilder = builder
                            .addMethod(method.httpMethod)
                            .consumes(method.consumes)
                            .produces(produces);

                    if (method.inflector != null) {
                        methodBuilder.handledBy(method.inflector);
                    } else {
                        methodBuilder.handledBy(method.inflectorClass);
                    }

                    final Resource newResource = resourceBuilder.build();
                    if (parentResource != null) {
                        final Resource.Builder parentBuilder = Resource.builder(parentResource.getPath());
                        parentBuilder.addChildResource(newResource);
                        newModelBuilder.addResource(parentBuilder.build());
                    } else {
View Full Code Here

        Object subResourceInstance = getResource(routingCtx);
        if (subResourceInstance == null) {
            throw new NotFoundException();
        }

        Resource subResource;
        if (subResourceInstance.getClass().isAssignableFrom(Resource.class)) {
            subResource = (Resource) subResourceInstance;
        } else {
            if (subResourceInstance.getClass().isAssignableFrom(Class.class)) {
                final Class<?> clazz = (Class<?>) subResourceInstance;
                subResourceInstance = Injections.getOrCreate(locator, clazz);
            } else {
                routingCtx.pushMatchedResource(subResourceInstance);
                resourceContext.bindResourceIfSingleton(subResourceInstance);
            }

            Resource.Builder builder = Resource.builder(subResourceInstance.getClass());
            if (builder == null) {
                // resource is empty - do not throw 404, wait if ModelProcessors add any method
                builder = Resource.builder().name(subResourceInstance.getClass().getName());
            }
            subResource = builder.build();
        }

        ResourceModel resourceModel = new ResourceModel.Builder(true).addResource(subResource).build();
        resourceModel = processSubResource(resourceModel);
        if (!disableValidation) {
            validate(resourceModel, ignoreValidationErrors);
        }

        subResource = resourceModel.getResources().get(0);

        for (Class<?> handlerClass : subResource.getHandlerClasses()) {
            resourceContext.bindResource(handlerClass);
        }

        // TODO: implement generated sub-resource methodAcceptorPair caching
        Router subResourceAcceptor = runtimeModelBuilder.buildModel(resourceModel.getRuntimeResourceModel(), true);
View Full Code Here

        final ResourceModel.Builder builder = ModelProcessorUtil.enhanceResourceModel(resourceModel, false, methodList);

        // 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();
View Full Code Here

            }

            // Introspecting classes & instances
            for (Class<?> c : runtimeConfig.getClasses()) {
                try {
                    Resource resource = Resource.from(c, disableValidation);
                    if (resource != null) {
                        resourceBagBuilder.registerResource(c, resource);
                    }
                } catch (IllegalArgumentException ex) {
                    LOGGER.warning(ex.getMessage());
                }
            }

            for (Object o : runtimeConfig.getSingletons()) {
                try {
                    Resource resource = Resource.from(o.getClass(), disableValidation);
                    if (resource != null) {
                        resourceBagBuilder.registerResource(o, resource);
                    }
                } catch (IllegalArgumentException ex) {
                    LOGGER.warning(ex.getMessage());
View Full Code Here

    private List<MethodAcceptorPair> createAcceptors(RuntimeResource runtimeResource, boolean subResourceMode) {
        List<MethodAcceptorPair> acceptorPairList = Lists.newArrayList();
        int i = 0;
        for (Resource resource : runtimeResource.getResources()) {

            final Resource parentResource = runtimeResource.getParent() == null
                    ? null : runtimeResource.getParentResources().get(i++);
            final UriTemplate template = resource.getPathPattern().getTemplate();
            final PushMatchedTemplateRouter templateRouter = parentResource == null ?
                    getTemplateRouter(subResourceMode, template, null)
                    : getTemplateRouter(subResourceMode, parentResource.getPathPattern().getTemplate(), template);
            for (ResourceMethod resourceMethod : resource.getResourceMethods()) {
                acceptorPairList.add(new MethodAcceptorPair(resourceMethod,
                        templateRouter,
                        pushedMatchedMethodResourceBuilder.build(resource, resourceMethod),
                        createSingleMethodAcceptor(resourceMethod)));
View Full Code Here

        }

        private void registerModel(Resource resourceModel) {
            final String path = resourceModel.getPath();
            if (path != null) {
                Resource existing = rootResourceMap.get(path);
                if (existing != null) {
                    // merge resources
                    existing = Resource.builder(existing).mergeWith(resourceModel).build();
                    rootResourceMap.put(path, existing);
                } else {
View Full Code Here

TOP

Related Classes of org.glassfish.jersey.server.model.Resource

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.