You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2014/11/27 12:02:42 UTC
svn commit: r1642086 - in /sling/trunk/bundles/engine/src:
main/java/org/apache/sling/engine/impl/
main/java/org/apache/sling/engine/impl/filter/
test/java/org/apache/sling/engine/impl/filter/
Author: fmeschbe
Date: Thu Nov 27 11:02:42 2014
New Revision: 1642086
URL: http://svn.apache.org/r1642086
Log:
SLING-4204 Improve Filter handling and add usage tracking
Added:
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java (with props)
Modified:
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/WebConsoleConfigPrinter.java
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/RequestSlingFilterChain.java
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/ServletFilterManager.java
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingComponentFilterChain.java
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelper.java
sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelperTest.java
Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java?rev=1642086&r1=1642085&r2=1642086&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java (original)
+++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java Thu Nov 27 11:02:42 2014
@@ -27,7 +27,6 @@ import java.io.PrintWriter;
import java.io.Writer;
import java.security.AccessControlException;
-import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
@@ -49,6 +48,7 @@ import org.apache.sling.api.servlets.Ser
import org.apache.sling.api.wrappers.SlingHttpServletResponseWrapper;
import org.apache.sling.engine.SlingRequestProcessor;
import org.apache.sling.engine.impl.filter.AbstractSlingFilterChain;
+import org.apache.sling.engine.impl.filter.FilterHandle;
import org.apache.sling.engine.impl.filter.RequestSlingFilterChain;
import org.apache.sling.engine.impl.filter.ServletFilterManager;
import org.apache.sling.engine.impl.filter.ServletFilterManager.FilterChainType;
@@ -140,7 +140,7 @@ public class SlingRequestProcessorImpl i
Resource resource = requestData.initResource(resourceResolver);
requestData.initServlet(resource, sr);
- Filter[] filters = filterManager.getFilters(FilterChainType.REQUEST);
+ FilterHandle[] filters = filterManager.getFilters(FilterChainType.REQUEST);
if (filters != null) {
FilterChain processor = new RequestSlingFilterChain(this,
filters);
@@ -273,7 +273,7 @@ public class SlingRequestProcessorImpl i
final FilterChainType filterChainType) throws IOException,
ServletException {
- Filter filters[] = filterManager.getFilters(filterChainType);
+ FilterHandle filters[] = filterManager.getFilters(filterChainType);
if (filters != null) {
FilterChain processor = new SlingComponentFilterChain(filters);
@@ -335,7 +335,7 @@ public class SlingRequestProcessorImpl i
// the response output stream if reset does not reset this
response = new ErrorResponseWrapper(response);
- Filter[] filters = filterManager.getFilters(FilterChainType.ERROR);
+ FilterHandle[] filters = filterManager.getFilters(FilterChainType.ERROR);
if (filters != null && filters.length > 0) {
FilterChain processor = new AbstractSlingFilterChain(filters) {
@@ -367,7 +367,7 @@ public class SlingRequestProcessorImpl i
// the response output stream if reset does not reset this
response = new ErrorResponseWrapper(response);
- Filter[] filters = filterManager.getFilters(FilterChainType.ERROR);
+ FilterHandle[] filters = filterManager.getFilters(FilterChainType.ERROR);
if (filters != null && filters.length > 0) {
FilterChain processor = new AbstractSlingFilterChain(filters) {
Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/WebConsoleConfigPrinter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/WebConsoleConfigPrinter.java?rev=1642086&r1=1642085&r2=1642086&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/WebConsoleConfigPrinter.java (original)
+++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/WebConsoleConfigPrinter.java Thu Nov 27 11:02:42 2014
@@ -22,9 +22,9 @@ import java.io.PrintWriter;
import java.util.Dictionary;
import java.util.Hashtable;
+import org.apache.sling.engine.impl.filter.FilterHandle;
import org.apache.sling.engine.impl.filter.ServletFilterManager;
import org.apache.sling.engine.impl.filter.ServletFilterManager.FilterChainType;
-import org.apache.sling.engine.impl.filter.SlingFilterChainHelper;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceRegistration;
@@ -79,19 +79,14 @@ public class WebConsoleConfigPrinter {
/**
* Helper method for printing out a filter chain.
*/
- private void printFilterChain(final PrintWriter pw, final SlingFilterChainHelper.FilterListEntry[] entries) {
+ private void printFilterChain(final PrintWriter pw, final FilterHandle[] entries) {
if ( entries == null ) {
pw.println("---");
} else {
- for(final SlingFilterChainHelper.FilterListEntry entry : entries) {
- pw.print(entry.getOrder());
- pw.print(" : ");
- pw.print(entry.getFilter().getClass());
- pw.print(" (id: ");
- pw.print(entry.getFilterId());
- pw.print(", property: ");
- pw.print(entry.getOrderSource());
- pw.println(")");
+ for(final FilterHandle entry : entries) {
+ pw.printf("%d : %s (id: %d, property: %s); called: %d; time: %dms; time/call: %dµs%n",
+ entry.getOrder(), entry.getFilter().getClass(), entry.getFilterId(), entry.getOrderSource(),
+ entry.getCalls(), entry.getTime(), entry.getTimePerCall());
}
}
}
@@ -106,7 +101,7 @@ public class WebConsoleConfigPrinter {
pw.println();
pw.println(type + " Filters:");
printFilterChain(pw,
- filterManager.getFilterChain(type).getFilterListEntries());
+ filterManager.getFilterChain(type).getFilters());
}
}
}
Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java?rev=1642086&r1=1642085&r2=1642086&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java (original)
+++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java Thu Nov 27 11:02:42 2014
@@ -20,7 +20,6 @@ package org.apache.sling.engine.impl.fil
import java.io.IOException;
-import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
@@ -33,18 +32,23 @@ import org.apache.sling.engine.impl.requ
public abstract class AbstractSlingFilterChain implements FilterChain {
- private Filter[] filters;
+ private FilterHandle[] filters;
private int current;
- protected AbstractSlingFilterChain(Filter[] filters) {
+ private long[] times;
+
+ protected AbstractSlingFilterChain(FilterHandle[] filters) {
this.filters = filters;
this.current = -1;
+ this.times = (filters != null) ? new long[filters.length + 1] : null;
}
public void doFilter(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
- this.current++;
+
+ final int filterIdx = ++this.current;
+ final long start = System.currentTimeMillis();
// the previous filter may have wrapped non-Sling request and response
// wrappers (e.g. WebCastellum does this), so we have to make
@@ -52,17 +56,26 @@ public abstract class AbstractSlingFilte
SlingHttpServletRequest slingRequest = toSlingRequest(request);
SlingHttpServletResponse slingResponse = toSlingResponse(response);
- if (this.current < this.filters.length) {
+ try {
+
+ if (this.current < this.filters.length) {
+
+ // continue filtering with the next filter
+ FilterHandle filter = this.filters[this.current];
+ trackFilter(slingRequest, filter);
+ filter.getFilter().doFilter(slingRequest, slingResponse, this);
- // continue filtering with the next filter
- Filter filter = this.filters[this.current];
- trackFilter(slingRequest, filter);
- filter.doFilter(slingRequest, slingResponse, this);
+ } else {
- } else {
+ this.render(slingRequest, slingResponse);
- this.render(slingRequest, slingResponse);
+ }
+ } finally {
+ times[filterIdx] = System.currentTimeMillis() - start;
+ if (filterIdx == 0) {
+ consolidateFilterTimings(slingRequest);
+ }
}
}
@@ -72,12 +85,28 @@ public abstract class AbstractSlingFilte
// ---------- internal helper
- private void trackFilter(ServletRequest request, Filter filter) {
+ private void trackFilter(ServletRequest request, FilterHandle filter) {
RequestData data = RequestData.getRequestData(request);
if (data != null) {
RequestProgressTracker tracker = data.getRequestProgressTracker();
tracker.log("Calling filter: {0}",
- this.filters[this.current].getClass().getName());
+ filter.getFilter().getClass().getName());
+ }
+ filter.track();
+ }
+
+ private void consolidateFilterTimings(ServletRequest request) {
+ if (filters != null) {
+ RequestData data = RequestData.getRequestData(request);
+ RequestProgressTracker tracker = (data != null) ? data.getRequestProgressTracker() : null;
+
+ for (int i = filters.length - 1; i > 0; i--) {
+ filters[i].trackTime(times[i] - times[i + 1]);
+ if (tracker != null) {
+ tracker.log("Filter timing: filter={0}, inner={1}, total={2}, outer={3}",
+ filters[i].getFilter().getClass().getName(), times[i + 1], times[i], (times[i] - times[i + 1]));
+ }
+ }
}
}
Added: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java?rev=1642086&view=auto
==============================================================================
--- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java (added)
+++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java Thu Nov 27 11:02:42 2014
@@ -0,0 +1,130 @@
+/*************************************************************************
+*
+* ADOBE CONFIDENTIAL
+* ___________________
+*
+* Copyright 2014 Adobe Systems Incorporated
+* All Rights Reserved.
+*
+* NOTICE: All information contained herein is, and remains
+* the property of Adobe Systems Incorporated and its suppliers,
+* if any. The intellectual and technical concepts contained
+* herein are proprietary to Adobe Systems Incorporated and its
+* suppliers and are protected by trade secret or copyright law.
+* Dissemination of this information or reproduction of this material
+* is strictly forbidden unless prior written permission is obtained
+* from Adobe Systems Incorporated.
+**************************************************************************/
+package org.apache.sling.engine.impl.filter;
+
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.servlet.Filter;
+
+public class FilterHandle implements Comparable<FilterHandle> {
+
+ private final Filter filter;
+
+ private final Long filterId;
+
+ private final int order;
+
+ private final String orderSource;
+
+ private AtomicLong calls;
+
+ private AtomicLong time;
+
+ FilterHandle(Filter filter, Long filterId, int order, final String orderSource) {
+ this.filter = filter;
+ this.filterId = filterId;
+ this.order = order;
+ this.orderSource = orderSource;
+ this.calls = new AtomicLong();
+ this.time = new AtomicLong();
+ }
+
+ public Filter getFilter() {
+ return filter;
+ }
+
+ public Long getFilterId() {
+ return filterId;
+ }
+
+ public int getOrder() {
+ return order;
+ }
+
+ public String getOrderSource() {
+ return orderSource;
+ }
+
+ public long getCalls() {
+ return calls.get();
+ }
+
+ public long getTime() {
+ return time.get();
+ }
+
+ public long getTimePerCall() {
+ return (getCalls() > 0) ? (1000L * getTime() / getCalls()) : -1;
+ }
+
+ void track() {
+ calls.incrementAndGet();
+ }
+
+ void trackTime(long time) {
+ this.time.addAndGet(time);
+ }
+
+ /**
+ * Note: this class has a natural ordering that is inconsistent with
+ * equals.
+ */
+ public int compareTo(FilterHandle other) {
+ if (this == other || equals(other)) {
+ return 0;
+ }
+
+ if (order > other.order) {
+ return -1;
+ } else if (order < other.order) {
+ return 1;
+ }
+
+ // if the filterId is comparable and the other is of the same class
+ if (filterId != null && other.filterId != null) {
+ int comp = filterId.compareTo(other.filterId);
+ if (comp != 0) {
+ return comp;
+ }
+ }
+
+ // consider equal ranking
+ return 0;
+ }
+
+ @Override
+ public int hashCode() {
+ if ( filter == null ) {
+ return 0;
+ }
+ return filter.hashCode();
+ }
+
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+
+ if (obj instanceof FilterHandle) {
+ FilterHandle other = (FilterHandle) obj;
+ return getFilter().equals(other.getFilter());
+ }
+
+ return false;
+ }
+}
\ No newline at end of file
Propchange: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/RequestSlingFilterChain.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/RequestSlingFilterChain.java?rev=1642086&r1=1642085&r2=1642086&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/RequestSlingFilterChain.java (original)
+++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/RequestSlingFilterChain.java Thu Nov 27 11:02:42 2014
@@ -20,11 +20,11 @@ package org.apache.sling.engine.impl.fil
import java.io.IOException;
-import javax.servlet.Filter;
import javax.servlet.ServletException;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.engine.impl.SlingMainServlet;
import org.apache.sling.engine.impl.SlingRequestProcessorImpl;
import org.apache.sling.engine.impl.filter.ServletFilterManager.FilterChainType;
@@ -38,7 +38,7 @@ public class RequestSlingFilterChain ext
private final SlingRequestProcessorImpl handler;
- public RequestSlingFilterChain(SlingRequestProcessorImpl handler, Filter[] filters) {
+ public RequestSlingFilterChain(SlingRequestProcessorImpl handler, FilterHandle[] filters) {
super(filters);
this.handler = handler;
}
Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/ServletFilterManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/ServletFilterManager.java?rev=1642086&r1=1642085&r2=1642086&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/ServletFilterManager.java (original)
+++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/ServletFilterManager.java Thu Nov 27 11:02:42 2014
@@ -119,7 +119,7 @@ public class ServletFilterManager extend
return filterChains[chain.ordinal()];
}
- public Filter[] getFilters(final FilterChainType chain) {
+ public FilterHandle[] getFilters(final FilterChainType chain) {
return getFilterChain(chain).getFilters();
}
Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingComponentFilterChain.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingComponentFilterChain.java?rev=1642086&r1=1642085&r2=1642086&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingComponentFilterChain.java (original)
+++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingComponentFilterChain.java Thu Nov 27 11:02:42 2014
@@ -20,7 +20,6 @@ package org.apache.sling.engine.impl.fil
import java.io.IOException;
-import javax.servlet.Filter;
import javax.servlet.ServletException;
import org.apache.sling.api.SlingHttpServletRequest;
@@ -35,7 +34,7 @@ import org.apache.sling.engine.impl.requ
*/
public class SlingComponentFilterChain extends AbstractSlingFilterChain {
- public SlingComponentFilterChain(Filter[] filters) {
+ public SlingComponentFilterChain(FilterHandle[] filters) {
super(filters);
}
Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelper.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelper.java?rev=1642086&r1=1642085&r2=1642086&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelper.java (original)
+++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelper.java Thu Nov 27 11:02:42 2014
@@ -33,11 +33,11 @@ import javax.servlet.Filter;
*/
public class SlingFilterChainHelper {
- private static final Filter[] EMPTY_FILTER_ARRAY = new Filter[0];
+ private static final FilterHandle[] EMPTY_FILTER_ARRAY = new FilterHandle[0];
- private SortedSet<FilterListEntry> filterList;
+ private SortedSet<FilterHandle> filterList;
- private Filter[] filters = EMPTY_FILTER_ARRAY;
+ private FilterHandle[] filters = EMPTY_FILTER_ARRAY;
SlingFilterChainHelper() {
}
@@ -45,22 +45,22 @@ public class SlingFilterChainHelper {
public synchronized Filter addFilter(final Filter filter,
final Long filterId, final int order, final String orderSource) {
if (filterList == null) {
- filterList = new TreeSet<FilterListEntry>();
+ filterList = new TreeSet<FilterHandle>();
}
- filterList.add(new FilterListEntry(filter, filterId, order, orderSource));
- filters = this.getFilterArray();
+ filterList.add(new FilterHandle(filter, filterId, order, orderSource));
+ filters = getFiltersInternal();
return filter;
}
public synchronized boolean removeFilterById(final Object filterId) {
if (filterList != null) {
- for (Iterator<FilterListEntry> fi = filterList.iterator(); fi.hasNext();) {
- FilterListEntry test = fi.next();
+ for (Iterator<FilterHandle> fi = filterList.iterator(); fi.hasNext();) {
+ FilterHandle test = fi.next();
if (test.getFilterId() == filterId
|| (test.getFilterId() != null && test.getFilterId().equals(
filterId))) {
fi.remove();
- filters = this.getFilterArray();
+ filters = getFiltersInternal();
return true;
}
}
@@ -75,123 +75,14 @@ public class SlingFilterChainHelper {
* or <code>null</code> if no filters have been added.
* This method doesn't need to be synced as it is called from synced methods.
*/
- private Filter[] getFilterArray() {
- if (filterList != null && !filterList.isEmpty()) {
- final Filter[] tmp = new Filter[filterList.size()];
- int i = 0;
- for (FilterListEntry entry : filterList) {
- tmp[i] = entry.getFilter();
- i++;
- }
- return tmp;
- }
- return EMPTY_FILTER_ARRAY;
- }
-
- /**
- * Returns the list of <code>Filter</code>s added to this instance
- * or <code>null</code> if no filters have been added.
- * This method doesn't need to be synced as it is only
- * returned the current cached filter array.
- */
- public Filter[] getFilters() {
- return this.filters;
+ public FilterHandle[] getFilters() {
+ return filters;
}
- /**
- * Returns the list of <code>FilterListEntry</code>s added to this instance
- * or <code>null</code> if no filters have been added.
- */
- public synchronized FilterListEntry[] getFilterListEntries() {
- FilterListEntry[] result = null;
- if (filterList != null && !filterList.isEmpty()) {
- result = new FilterListEntry[filterList.size()];
- filterList.toArray(result);
- }
- return result;
- }
-
- public static class FilterListEntry implements Comparable<FilterListEntry> {
-
- private final Filter filter;
-
- private final Long filterId;
-
- private final int order;
-
- private final String orderSource;
-
- FilterListEntry(final Filter filter, final Long filterId, final int order, final String orderSource) {
- this.filter = filter;
- this.filterId = filterId;
- this.order = order;
- this.orderSource = orderSource;
- }
-
- public Filter getFilter() {
- return filter;
- }
-
- public Long getFilterId() {
- return filterId;
- }
-
- public int getOrder() {
- return order;
- }
-
- public String getOrderSource() {
- return orderSource;
- }
-
- /**
- * Note: this class has a natural ordering that is inconsistent with
- * equals.
- */
- public int compareTo(final FilterListEntry other) {
- if (this == other || equals(other)) {
- return 0;
- }
-
- // new service.ranking order (correct)
- if (order > other.order) {
- return -1;
- } else if (order < other.order) {
- return 1;
- }
-
- // compare filter id (service id)
- if (filterId != null && other.filterId != null) {
- int comp = filterId.compareTo(other.filterId);
- if (comp != 0) {
- return comp;
- }
- }
-
- // consider equal ranking
- return 0;
- }
-
- @Override
- public int hashCode() {
- if ( filter == null ) {
- return 0;
- }
- return filter.hashCode();
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
-
- if (obj instanceof FilterListEntry) {
- final FilterListEntry other = (FilterListEntry) obj;
- return getFilter().equals(other.getFilter());
- }
-
- return false;
+ private FilterHandle[] getFiltersInternal() {
+ if (filterList == null || filterList.isEmpty()) {
+ return EMPTY_FILTER_ARRAY;
}
+ return filterList.toArray(new FilterHandle[filterList.size()]);
}
-}
+}
\ No newline at end of file
Modified: sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelperTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelperTest.java?rev=1642086&r1=1642085&r2=1642086&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelperTest.java (original)
+++ sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/filter/SlingFilterChainHelperTest.java Thu Nov 27 11:02:42 2014
@@ -42,7 +42,7 @@ public class SlingFilterChainHelperTest
chain.addFilter(context.mock(Filter.class, "D"), 4L, -1000, "4:-1000");
chain.addFilter(context.mock(Filter.class, "E"), 5L, 1000, "5:1000");
- final SlingFilterChainHelper.FilterListEntry[] entries = chain.getFilterListEntries();
+ final FilterHandle[] entries = chain.getFilters();
assertEquals(5, entries.length);
assertEquals("5:1000", entries[0].getOrderSource());
assertEquals("1:100", entries[1].getOrderSource());