Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/FilterFactory.java
===================================================================
--- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/FilterFactory.java	(revision 0)
+++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/FilterFactory.java	(working copy)
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.jackrabbit.oak.jcr.observation.filter;
+
+import org.apache.jackrabbit.api.observation.JackrabbitEventFilter;
+import org.apache.jackrabbit.oak.jcr.observation.OakEventFilterImpl;
+import org.apache.jackrabbit.oak.jcr.observation.ObservationManagerImpl;
+
+/**
+ * Static factory that allows wrapping a JackrabbitEventFilter 
+ * into an OakEventFilter that contains some oak specific
+ * extensions.
+ * <p>
+ * The resulting filter can subsequently be used in
+ * ObservationManagerImpl.addEventListener as usual.
+ * @see ObservationManagerImpl#addEventListener(javax.jcr.observation.EventListener, JackrabbitEventFilter)
+ */
+public class FilterFactory {
+
+    /**
+     * Wrap a JackrabbitEventFilter into its corresponding
+     * oak extension, OakEventFilter, on which some Oak
+     * specific observation filter extensions can then
+     * be used.
+     * @param baseFilter the base filter which contains other
+     * properties. Changes to the resulting oak filter "write-through"
+     * to the underlying baseFilter and similarly changes to the baseFilter
+     * are seen by the resulting oak filter.
+     * @return an OakEventFilter upon which Oak specific observation
+     * filtering extensions can be activated and then used
+     * when adding an EventListener with the ObservationManagerImpl.
+     */
+    public static OakEventFilter wrap(JackrabbitEventFilter baseFilter) {
+        return new OakEventFilterImpl(baseFilter);
+    }
+}

Property changes on: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/FilterFactory.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/OakEventFilter.java
===================================================================
--- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/OakEventFilter.java	(revision 0)
+++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/OakEventFilter.java	(working copy)
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.jackrabbit.oak.jcr.observation.filter;
+
+import org.apache.jackrabbit.api.observation.JackrabbitEventFilter;
+
+public abstract class OakEventFilter extends JackrabbitEventFilter {
+
+    public abstract OakEventFilter withNodeTypeAggregate(final String[] nodeTypes, final String[] relativeGlobPaths);
+    
+    public abstract OakEventFilter withGlobIncludePath(String... globPaths);
+    
+    public abstract OakEventFilter withAncestorRemovals();
+    
+    public abstract OakEventFilter withIncludeSubtreeOnRemove();
+    
+    public abstract OakEventFilter withApplyOnSelf();
+}

Property changes on: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/OakEventFilter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/package-info.java
===================================================================
--- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/package-info.java	(revision 0)
+++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/package-info.java	(working copy)
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+@Version("1.0.0")
+@Export(optional = "provide:=true")
+package org.apache.jackrabbit.oak.jcr.observation.filter;
+
+import aQute.bnd.annotation.Version;
+import aQute.bnd.annotation.Export;
\ No newline at end of file

Property changes on: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/filter/package-info.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
