You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2015/02/01 18:24:04 UTC
svn commit: r1656333 - in
/felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker:
AbstractTracker.java FilterTracker.java ServletTracker.java
Author: cziegeler
Date: Sun Feb 1 17:24:04 2015
New Revision: 1656333
URL: http://svn.apache.org/r1656333
Log:
Only track services for the Felix whiteboard extensions
Modified:
felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/AbstractTracker.java
felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/FilterTracker.java
felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/ServletTracker.java
Modified: felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/AbstractTracker.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/AbstractTracker.java?rev=1656333&r1=1656332&r2=1656333&view=diff
==============================================================================
--- felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/AbstractTracker.java (original)
+++ felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/AbstractTracker.java Sun Feb 1 17:24:04 2015
@@ -17,15 +17,21 @@
package org.apache.felix.http.whiteboard.internal.tracker;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.Filter;
import org.osgi.framework.ServiceReference;
import org.osgi.util.tracker.ServiceTracker;
public abstract class AbstractTracker<T>
extends ServiceTracker
{
- public AbstractTracker(BundleContext context, Class<T> clz)
+ public AbstractTracker(BundleContext context, Filter filter)
{
- super(context, clz.getName(), null);
+ super(context, filter, null);
+ }
+
+ public AbstractTracker(BundleContext context, Class clazz)
+ {
+ super(context, clazz.getName(), null);
}
@Override
Modified: felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/FilterTracker.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/FilterTracker.java?rev=1656333&r1=1656332&r2=1656333&view=diff
==============================================================================
--- felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/FilterTracker.java (original)
+++ felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/FilterTracker.java Sun Feb 1 17:24:04 2015
@@ -18,8 +18,10 @@ package org.apache.felix.http.whiteboard
import javax.servlet.Filter;
+import org.apache.felix.http.whiteboard.HttpWhiteboardConstants;
import org.apache.felix.http.whiteboard.internal.manager.ExtenderManager;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
public final class FilterTracker
@@ -27,9 +29,24 @@ public final class FilterTracker
{
private final ExtenderManager manager;
+ private static org.osgi.framework.Filter createFilter(final BundleContext btx)
+ {
+ try
+ {
+ return btx.createFilter(String.format("(&(objectClass=%s)(%s=*))",
+ Filter.class.getName(),
+ HttpWhiteboardConstants.PATTERN));
+ }
+ catch ( final InvalidSyntaxException ise)
+ {
+ // we can safely ignore it as the above filter is a constant
+ }
+ return null; // we never get here - and if we get an NPE which is fine
+ }
+
public FilterTracker(BundleContext context, ExtenderManager manager)
{
- super(context, Filter.class);
+ super(context, createFilter(context));
this.manager = manager;
}
Modified: felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/ServletTracker.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/ServletTracker.java?rev=1656333&r1=1656332&r2=1656333&view=diff
==============================================================================
--- felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/ServletTracker.java (original)
+++ felix/trunk/http/whiteboard/src/main/java/org/apache/felix/http/whiteboard/internal/tracker/ServletTracker.java Sun Feb 1 17:24:04 2015
@@ -18,8 +18,10 @@ package org.apache.felix.http.whiteboard
import javax.servlet.Servlet;
+import org.apache.felix.http.whiteboard.HttpWhiteboardConstants;
import org.apache.felix.http.whiteboard.internal.manager.ExtenderManager;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
public final class ServletTracker
@@ -27,9 +29,24 @@ public final class ServletTracker
{
private final ExtenderManager manager;
+ private static org.osgi.framework.Filter createFilter(final BundleContext btx)
+ {
+ try
+ {
+ return btx.createFilter(String.format("(&(objectClass=%s)(%s=*))",
+ Servlet.class.getName(),
+ HttpWhiteboardConstants.ALIAS));
+ }
+ catch ( final InvalidSyntaxException ise)
+ {
+ // we can safely ignore it as the above filter is a constant
+ }
+ return null; // we never get here - and if we get an NPE which is fine
+ }
+
public ServletTracker(BundleContext context, ExtenderManager manager)
{
- super(context, Servlet.class);
+ super(context, createFilter(context));
this.manager = manager;
}