Package org.emrys.webosgi.core.jeeres

Examples of org.emrys.webosgi.core.jeeres.FilterDelegate


          else
            targetServletNames = targetServletNames
                + FilterDelegate.MULTI_MAP_SEG_SEPERATOR + s;
        }
      }
      FilterDelegate info = new FilterDelegate(filter);
      info.targetServletNames = targetServletNames;
      info.setRawURLPatterns(urlParttern);
      info.setBundleContext(servletContext);
      servletContext.getFilters().add(info);
      // Do not init filter, we init them later before servelts.
      // info.init(null);
    }
  }
View Full Code Here


        if (!it.hasNext()) {
          delegate.service(request, response);
          return;
        }

        FilterDelegate i = it.next();
        while (i != null
            && !(i.isSameBundled(delegate)
                && i.targetServletNames != null && (checkMatched(
                i, servletName) || checkMatched(i,
                delegate.className)))) {
          if (it.hasNext())
            i = it.next();
          else {
            i = null;
          }
        }
        if (i != null) {
          i.doFilter(request, response, this);
        } else if (!it.hasNext()) {
          delegate.service(request, response);
        }
      }
View Full Code Here

          else
            targetServletNames = targetServletNames
                + FilterDelegate.MULTI_MAP_SEG_SEPERATOR + s;
        }
      }
      FilterDelegate info = new FilterDelegate(filter);
      info.targetServletNames = targetServletNames;
      info.setRawURLPatterns(urlParttern);
      info.setBundleContext(this.getBundleServletContext());
      getBundleServletContext().getFilters().add(info);
      // We init filter here before servelts.
      info.init(null);
    }
  }
View Full Code Here

        // Iterate to do filter matching the current request servlet
        // path. Remove bundle's web prefix from servlet path
        // temporarily before filter invoke.
        ClonedExecutableServletObject<FilterDelegate> clonedFilterInstance = it
            .next();
        FilterDelegate filterDelegate = clonedFilterInstance
            .getOriginalObj();
        String urlPattern = filterDelegate.getURLPatterns()[clonedFilterInstance
            .getId()];

        // Notes: decide the url pattern according to the dispatchers
        // set if any. If dispatcher type check failed, a null url
        // pattern returned. So do the next while iterate.
        urlPattern = decideUrlPattern(req, urlPattern);

        while (clonedFilterInstance != null
            && (clonedFilterInstance.isExecuted() || !(!StringUtils
                .isEmpty(urlPattern) && fwkContainerHelper
                .checkNeedFilter((HttpServletRequest) request,
                    urlPattern)))) {
          if (it.hasNext()) {
            clonedFilterInstance = it.next();
            filterDelegate = clonedFilterInstance.getOriginalObj();
            urlPattern = filterDelegate.getURLPatterns()[clonedFilterInstance
                .getId()];
            urlPattern = decideUrlPattern(req, urlPattern);
          } else {
            clonedFilterInstance = null;
          }
        }

        // If any filter matched in the chain, do it.
        if (clonedFilterInstance != null) {
          try {
            // Switch request's current bundle to the filter's
            // bundle. And modify the servlet path of the request
            // delivering to the filter.
            fwkContainerHelper
                .switchReqBundleContext(filterDelegate
                    .getBundleContext().getBundle());
            switchReqPath(filterDelegate.getBundleContext());
            // set the executed mark early.
            clonedFilterInstance.setExecuted();
            filterDelegate.doFilter(request, response, this);
          } finally {
            // revert to the former bundle.
            clonedFilterInstance.refresh();
            // revertReqPath(); // no need to revert req path at
            // last for it is not be used later.
View Full Code Here

TOP

Related Classes of org.emrys.webosgi.core.jeeres.FilterDelegate

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.