Package org.apache.abdera.protocol.server.context

Examples of org.apache.abdera.protocol.server.context.RequestContextWrapper


  public class SimpleFilter
    implements Filter {
      public ResponseContext filter(
        RequestContext request,
        FilterChain chain) {
          RequestContextWrapper rcw = new RequestContextWrapper(request);
          rcw.setAttribute("offset", 10);
          rcw.setAttribute("count", 10);
          return chain.next(rcw);
      }   
View Full Code Here


        return adapter;
    }

    public class SimpleFilter implements Filter {
        public ResponseContext filter(RequestContext request, FilterChain chain) {
            RequestContextWrapper rcw = new RequestContextWrapper(request);
            rcw.setAttribute("offset", 10);
            rcw.setAttribute("count", 10);
            return chain.next(rcw);
        }
View Full Code Here

        return adapter;
    }

    public class SimpleFilter implements Filter {
        public ResponseContext filter(RequestContext request, FilterChain chain) {
            RequestContextWrapper rcw = new RequestContextWrapper(request);
            rcw.setAttribute("offset", 10);
            rcw.setAttribute("count", 10);
            return chain.next(rcw);
        }
View Full Code Here

        }
    }

    public class PaginationFilter implements Filter {
        public ResponseContext filter(RequestContext request, FilterChain chain) {
            RequestContextWrapper rcw = new RequestContextWrapper(request);
            rcw.setAttribute("offset", 10);
            rcw.setAttribute("count", 10);
            return chain.next(rcw);
        }
View Full Code Here

     * current request, from local storage, or from remote peers as needed.
     */
    protected Feed currentFeed(RequestContext request) throws ParseException,
            FileNotFoundException, IOException {
        Feed feed = null;
        RequestContextWrapper wrapper = new RequestContextWrapper(request);
        // System.err.println(new Date().toString() + " "
        // + wrapper.getTargetPath());

        // fetch from request context
        feed = (Feed) wrapper.getAttribute(Scope.REQUEST, "com.trsst.Feed");
        if (feed != null) {
            // shortcut for very common case
            return feed;
        }

        feed = Abdera.getInstance().newFeed();
        feed.setId(canonicalFeedIdForQuery(request));

        // build a title string from query params
        List<String> values;
        String title = "";
        values = request.getParameters("tag");
        if (values != null) {
            for (String value : values) {
                title = title + '#' + value + ' ';
            }
        }
        values = request.getParameters("mention");
        if (values != null) {
            for (String value : values) {
                title = title + '@' + value + ' ';
            }
        }
        String query = request.getParameter("q");
        if (query != null) {
            title = title + query;
        }
        title = title.trim();
        if (title.length() == 0) {
            title = "Search Results";
        }
        feed.setTitle(title);

        // default to one month ago in case of zero results
        feed.setUpdated(new Date(System.currentTimeMillis() - 1000 * 60 * 60
                * 24 * 30));

        if (feed != null) {
            if (feed.getEntries().size() == 0
                    || wrapper.getParameter("sync") != null) {
                // no local results: check the relays now
                pullFromRelay(feedId, request);
            } else {
                // we have some results: return these and check relays later
                pullLaterFromRelay(feedId, request);
            }
        }

        // store in request context
        wrapper.setAttribute(Scope.REQUEST, "com.trsst.Feed", feed);
        return feed;
    }
View Full Code Here

     * current request, from local storage, or from remote peers as needed.
     */
    protected Feed currentFeed(RequestContext request) throws ParseException,
            FileNotFoundException, IOException {
        Feed feed = null;
        RequestContextWrapper wrapper = new RequestContextWrapper(request);

        // fetch from request context
        feed = (Feed) wrapper.getAttribute(Scope.REQUEST, "com.trsst.Feed");
        if (feed != null) {
            // shortcut for very common case
            return feed;
        }

        System.err.println(new Date().toString() + " "
                + wrapper.getTargetPath());

        // if async fetch is allowed
        if (wrapper.getParameter("sync") == null) {
            // return latest from local storage
            feed = fetchFeedFromStorage(feedId, persistence);
            if (feed != null) {
                // trigger async fetch in case we're stale
                pullLaterFromRelay(feedId, request);
                // pullFromRelay(request);
            }
        }

        // otherwise fetch synchronously
        if (feed == null) {
            // attempt to fetch from relay peer
            feed = pullFromRelay(feedId, request);
        }

        if (feed != null) {
            // ensure it's a naked feed:
            // entries matching query params will get added later
            for (Entry e : feed.getEntries()) {
                e.discard();
            }

            // store in request context
            wrapper.setAttribute(Scope.REQUEST, "com.trsst.Feed", feed);
            return feed;
        }

        throw new FileNotFoundException("Not found: " + feedId);
    }
View Full Code Here

    public static Timer TASK_QUEUE;
    private static Map<String, TimerTask> COALESCING_TIMERS = new Hashtable<String, TimerTask>();

    protected Feed pullFromRelay(String feedIdentifier, RequestContext request) {
        Feed result = null;
        RequestContextWrapper wrapper = new RequestContextWrapper(request);
        int limit = 5; // arbitrary
        try {
            if (wrapper.getParameter("relayLimit") != null) {
                limit = Integer.parseInt(wrapper.getParameter("relayLimit"));
                if (limit > 10) {
                    log.warn("Arbitrarily capping specified limit to 10: "
                            + limit);
                    limit = 10; // arbitrary
                }
            }
        } catch (Throwable t) {
            log.warn("Could not parse relayLimit; defaulting to: " + limit);
        }

        // if relay peer count is less than search limit
        List<String> relays = wrapper.getParameters("relay");
        URL relayPeer = null;
        if (relays == null || relays.size() <= limit) {
            relayPeer = getRelayPeer(relays);
            if (relayPeer != null) {
                log.debug("Using relay peer: " + relayPeer);
View Full Code Here

  public class SimpleFilter
    implements Filter {
      public ResponseContext filter(
        RequestContext request,
        FilterChain chain) {
          RequestContextWrapper rcw = new RequestContextWrapper(request);
          rcw.setAttribute("offset", 10);
          rcw.setAttribute("count", 10);
          return chain.next(rcw);
      }   
View Full Code Here

  public class SimpleFilter
    implements Filter {
      public ResponseContext filter(
        RequestContext request,
        FilterChain chain) {
          RequestContextWrapper rcw = new RequestContextWrapper(request);
          rcw.setAttribute("offset", 10);
          rcw.setAttribute("count", 10);
          return chain.next(rcw);
      }   
View Full Code Here

TOP

Related Classes of org.apache.abdera.protocol.server.context.RequestContextWrapper

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.