Examples of PathPattern


Examples of com.sun.jersey.server.impl.uri.PathPattern

                        new ResourceObjectRule(p.getTemplate(), o)));
        }
    }

    private PathPattern getPattern(String path, Class c) {
        PathPattern p = null;
        try {
            p = new PathPattern(new PathTemplate(path));
        } catch (IllegalArgumentException ex) {
            Errors.error("Illegal URI template for root resource class " + c.getName() +
                    ": "+ ex.getMessage());
        }
        return p;
View Full Code Here

Examples of com.sun.jersey.server.impl.uri.PathPattern

    private boolean isPatternValid(PathPattern p, Class c) {
        if (p == null)
            return false;

        final PathPattern conflict = rules.hasConflict(p);
        if (conflict != null) {
            Errors.error(String.format("Conflicting URI templates. "
                    + "The URI template %s for root resource class %s "
                    + "and the URI template %s transform to the same regular expression %s",
                    p.getTemplate().getTemplate(),
                    c.getName(),
                    conflict.getTemplate().getTemplate(),
                    p));
            return false;
        } else {
            return true;
        }
View Full Code Here

Examples of com.sun.jersey.server.impl.uri.PathPattern

    private void processSubResourceLocators(
            final AbstractResource resource,
            final RulesMap<UriRule> rulesMap) {
        for (final AbstractSubResourceLocator locator : resource.getSubResourceLocators()) {
            PathPattern p = null;
            try {
                p = new PathPattern(new PathTemplate(locator.getPath().getValue()));
            } catch (IllegalArgumentException ex) {
                Errors.error(String.format("Illegal URI template for sub-resource locator %s: %s",
                        locator.getMethod(), ex.getMessage()));
                continue;
            }

            final PathPattern conflict = rulesMap.hasConflict(p);
            if (conflict != null) {
                Errors.error(String.format("Conflicting URI templates. "
                        + "The URI template %s for sub-resource locator %s "
                        + "and the URI template %s transform to the same regular expression %s",
                        p.getTemplate().getTemplate(),
                        locator.getMethod(),
                        conflict.getTemplate().getTemplate(),
                        p));
                continue;
            }

            final List<Injectable> is = injectableContext.getInjectable(locator.getParameters(), ComponentScope.PerRequest);
View Full Code Here

Examples of com.sun.jersey.server.impl.uri.PathPattern

        final Map<PathPattern, ResourceMethodMap> patternMethodMap =
                new HashMap<PathPattern, ResourceMethodMap>();

        for (final AbstractSubResourceMethod method : resource.getSubResourceMethods()) {

            PathPattern p = null;
            try {
                p = new PathPattern(new PathTemplate(method.getPath().getValue()), "(/)?");
            } catch (IllegalArgumentException ex) {
                Errors.error(String.format("Illegal URI template for sub-resource method %s: %s",
                        method.getMethod(), ex.getMessage()));
                continue;
            }

            final ResourceMethod rm = new ResourceHttpMethod(df, ff, p.getTemplate(), method);
            ResourceMethodMap rmm = patternMethodMap.get(p);
            if (rmm == null) {
                rmm = new ResourceMethodMap();
                patternMethodMap.put(p, rmm);
            }

            if (isValidResourceMethod(rm, rmm)) {
                rmm.put(rm);
            }
        
            rmm.put(rm);
        }

        // Create the rules for the sub-resource HTTP methods
        for (final Map.Entry<PathPattern, ResourceMethodMap> e : patternMethodMap.entrySet()) {
            addImplicitMethod(implictProduces, e.getValue());

            final PathPattern p = e.getKey();
            final ResourceMethodMap rmm = e.getValue();

            processHead(rmm);
            processOptions(rmm, resource, p);

            rmm.sort();
           
            rulesMap.put(p,
                    new RightHandPathRule(
                    resourceConfig.getFeature(ResourceConfig.FEATURE_REDIRECT),
                    p.getTemplate().endsWithSlash(),
                    new HttpMethodRule(rmm, true)));
        }
    }
View Full Code Here

Examples of com.sun.jersey.server.impl.uri.PathPattern

    }

    public void processConflicts(ConflictClosure cc) {
        final List<PathPattern> ks = new ArrayList<PathPattern>(keySet());
        for (int i = 0; i < ks.size(); i++) {
            final PathPattern p1 = ks.get(i);
            for (int j = i + 1; j < ks.size(); j++) {
                final PathPattern p2 = ks.get(j);
                if (p1.equals(p2)) {
                    cc.onConflict(p1, p2);
                }
            }
        }
View Full Code Here

Examples of com.sun.jersey.server.impl.uri.PathPattern

     */
    private TrieNode<R> initTrie(List<PatternRulePair<R>> rules) {
        TrieNode<R> a = new TrieNode<R>();
        for (PatternRulePair<R> prp : rules) {
            if (prp.p instanceof PathPattern) {
                PathPattern p = (PathPattern)prp.p;           
                a.add(p.getTemplate().getTemplate(), prp.r, prp.p);
            } else {
                throw new IllegalArgumentException(
                        "The automata matching algorithm currently only works" +
                        "for UriPattern instance that are instances of " +
                        "PathPattern");
View Full Code Here

Examples of org.glassfish.jersey.uri.PathPattern

            PushMatchedRuntimeResourceRouter resourcePushingRouter = new PushMatchedRuntimeResourceRouter(resource);

            // resource methods
            if (!resource.getResourceMethods().isEmpty()) {
                final List<MethodAcceptorPair> methodAcceptors = createAcceptors(resource, subResourceMode);
                final PathPattern resourceClosedPattern =
                        (subResourceMode) ? PathPattern.END_OF_PATH_PATTERN : PathPattern.asClosed(resource.getPathPattern());

                lastRoutedBuilder = routeMethodAcceptor(
                        lastRoutedBuilder,
                        resourceClosedPattern,
                        uriPushingRouter,
                        resourcePushingRouter,
                        new MethodSelectingRouter(workers, methodAcceptors),
                        subResourceMode);
            }

            RouteToPathBuilder<PathPattern> srRoutedBuilder = null;
            if (!resource.getChildRuntimeResources().isEmpty()) {
                for (RuntimeResource child : resource.getChildRuntimeResources()) {
                    final PathPattern childOpenPattern = child.getPathPattern();
                    final PathPattern childClosedPattern = PathPattern.asClosed(childOpenPattern);
                    PushMatchedRuntimeResourceRouter childResourcePushingRouter =
                            new PushMatchedRuntimeResourceRouter(child);

                    // sub resource methods
                    if (!child.getResourceMethods().isEmpty()) {
                        final List<MethodAcceptorPair> childMethodAcceptors = createAcceptors(child, subResourceMode);

                        srRoutedBuilder = routedBuilder(srRoutedBuilder)
                                .route(childClosedPattern)
                                .to(uriPushingRouter)
                                .to(childResourcePushingRouter)
                                .to(new MethodSelectingRouter(workers, childMethodAcceptors));
                    }

                    // sub resource locator
                    if (child.getResourceLocator() != null) {
                        PushMatchedTemplateRouter locTemplateRouter = getTemplateRouterForChildLocator(subResourceMode, child);

                        srRoutedBuilder = routedBuilder(srRoutedBuilder)
                                .route(childOpenPattern)
                                .to(uriPushingRouter)
                                .to(locTemplateRouter)
                                .to(childResourcePushingRouter)
                                .to(new PushMatchedMethodRouter(child.getResourceLocator()))
                                .to(createMethodAcceptor(child.getResourceLocator()));
                    }
                }
            }

            // resource locator with empty path
            if (resource.getResourceLocator() != null) {
                final PushMatchedTemplateRouter resourceTemplateRouter = getTemplateRouter(subResourceMode,
                        getLocatorResource(resource).getPathPattern().getTemplate(),
                        PathPattern.OPEN_ROOT_PATH_PATTERN.getTemplate());

                srRoutedBuilder = routedBuilder(srRoutedBuilder)
                        .route(PathPattern.OPEN_ROOT_PATH_PATTERN)
                        .to(uriPushingRouter)
                        .to(resourceTemplateRouter)
                        .to(new PushMatchedMethodRouter(resource.getResourceLocator()))
                        .to(createMethodAcceptor(resource.getResourceLocator()));
            }

            if (srRoutedBuilder != null) {
                final PathPattern resourceOpenPattern =
                        (subResourceMode) ? PathPattern.OPEN_ROOT_PATH_PATTERN : resource.getPathPattern();

                lastRoutedBuilder = routeMethodAcceptor(
                        lastRoutedBuilder, resourceOpenPattern, uriPushingRouter, resourcePushingRouter,
                        srRoutedBuilder.build(), subResourceMode);
View Full Code Here

Examples of org.glassfish.jersey.uri.PathPattern

        Router.Continuation result = null;
        final Iterator<Route<PathPattern>> iterator = acceptedRoutes.iterator();
        while (iterator.hasNext()) {
            final Route<PathPattern> acceptedRoute = iterator.next();
            final PathPattern routePattern = acceptedRoute.routingPattern();
            final MatchResult m = routePattern.match(path);
            if (m != null) {
                // Push match result information and rest of path to match
                rc.pushMatchResult(m);
                result = Router.Continuation.of(context, acceptedRoute.next());

                //tracing
                tracingLogger.log(ServerTraceEvent.MATCH_PATH_SELECTED, routePattern.getRegex());
                break;
            } else {
                tracingLogger.log(ServerTraceEvent.MATCH_PATH_NOT_MATCHED, routePattern.getRegex());
            }
        }

        if (tracingLogger.isLogEnabled(ServerTraceEvent.MATCH_PATH_SKIPPED)) {
            while (iterator.hasNext()) {
View Full Code Here

Examples of org.glassfish.jersey.uri.PathPattern

        this.locator = locator;
    }

    @Override
    public RouteToBuilder<PathPattern> route(String pattern) {
        return route(new PathPattern(pattern));
    }
View Full Code Here

Examples of org.glassfish.jersey.uri.PathPattern

    public RouteToBuilder<PathPattern> route(PathPattern pattern) {
        return new AbstractRouteToPathBuilder<PathPattern>(locator, pattern) {

            @Override
            public RouteToBuilder<PathPattern> route(String pattern) {
                return super.route(new PathPattern(pattern));
            }

            @Override
            public Router build() {
                return new PathPatternRouter(acceptedRoutes());
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.