You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2016/10/04 12:45:33 UTC

[5/7] cayenne git commit: cleanup, refactoring

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/filters/FiltersConfigBuilderTest.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/filters/FiltersConfigBuilderTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/filters/FiltersConfigBuilderTest.java
new file mode 100644
index 0000000..aac5fe9
--- /dev/null
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/filters/FiltersConfigBuilderTest.java
@@ -0,0 +1,392 @@
+/*
+ * 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.cayenne.dbsync.reverse.filters;
+
+import org.apache.cayenne.dbimport.Catalog;
+import org.apache.cayenne.dbimport.ExcludeColumn;
+import org.apache.cayenne.dbimport.ExcludeProcedure;
+import org.apache.cayenne.dbimport.ExcludeTable;
+import org.apache.cayenne.dbimport.IncludeColumn;
+import org.apache.cayenne.dbimport.IncludeProcedure;
+import org.apache.cayenne.dbimport.IncludeTable;
+import org.apache.cayenne.dbimport.ReverseEngineering;
+import org.apache.cayenne.dbimport.Schema;
+import org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class FiltersConfigBuilderTest {
+
+    @Test
+    public void testCompact_01() {
+        ReverseEngineering engineering = new ReverseEngineering();
+        engineering.addIncludeTable(new IncludeTable("table1"));
+        engineering.addIncludeTable(new IncludeTable("table2"));
+        engineering.addIncludeTable(new IncludeTable("table3"));
+
+        engineering.addIncludeColumn(new IncludeColumn("includeColumn"));
+
+        FiltersConfigBuilder builder = new FiltersConfigBuilder(engineering);
+        builder.compact();
+        assertEquals(
+                "ReverseEngineering: \n" +
+                "  Catalog: null\n" +
+                "    Schema: null\n" +
+                "      IncludeTable: table1\n" +
+                "        IncludeColumn: includeColumn\n" +
+                "      IncludeTable: table2\n" +
+                "        IncludeColumn: includeColumn\n" +
+                "      IncludeTable: table3\n" +
+                "        IncludeColumn: includeColumn\n", engineering.toString());
+    }
+
+    @Test
+    public void testCompact_02() {
+        ReverseEngineering engineering = new ReverseEngineering();
+        engineering.addCatalog(new Catalog("catalogName"));
+        engineering.addSchema(new Schema("schemaName01"));
+        engineering.addSchema(new Schema("schemaName02"));
+
+        engineering.addIncludeTable(new IncludeTable("table1"));
+        engineering.addExcludeTable(new ExcludeTable("table2"));
+
+        engineering.addIncludeColumn(new IncludeColumn("includeColumn"));
+
+        FiltersConfigBuilder builder = new FiltersConfigBuilder(engineering);
+        builder.compact();
+        assertEquals(
+                "ReverseEngineering: \n" +
+                "  Catalog: catalogName\n" +
+                "    Schema: schemaName01\n" +
+                "      IncludeTable: table1\n" +
+                "        IncludeColumn: includeColumn\n" +
+                "      ExcludeTable: table2\n" +
+                "    Schema: schemaName02\n" +
+                "      IncludeTable: table1\n" +
+                "        IncludeColumn: includeColumn\n" +
+                "      ExcludeTable: table2\n", engineering.toString());
+    }
+
+    @Test
+    public void testCompact_03() {
+        ReverseEngineering engineering = new ReverseEngineering();
+        engineering.addCatalog(new Catalog("APP1"));
+        engineering.addCatalog(new Catalog("APP2"));
+
+        engineering.addExcludeTable(new ExcludeTable("SYS_.*"));
+        engineering.addExcludeColumn(new ExcludeColumn("calculated_.*"));
+
+        FiltersConfigBuilder builder = new FiltersConfigBuilder(engineering);
+        builder.compact();
+        assertEquals(
+                "ReverseEngineering: \n" +
+                "  Catalog: APP1\n" +
+                "    Schema: null\n" +
+                "      IncludeTable: null\n" +
+                "        ExcludeColumn: calculated_.*\n" +
+                "      ExcludeTable: SYS_.*\n" +
+                "  Catalog: APP2\n" +
+                "    Schema: null\n" +
+                "      IncludeTable: null\n" +
+                "        ExcludeColumn: calculated_.*\n" +
+                "      ExcludeTable: SYS_.*\n", engineering.toString());
+    }
+
+    @Test
+    public void testCompact_04() {
+        ReverseEngineering engineering = new ReverseEngineering();
+        engineering.addSchema(new Schema("s"));
+
+        FiltersConfigBuilder builder = new FiltersConfigBuilder(engineering);
+        builder.compact();
+        assertEquals(
+                "ReverseEngineering: \n" +
+                "  Catalog: null\n" +
+                "    Schema: s\n" +
+                "      IncludeTable: null\n", engineering.toString());
+    }
+
+    @Test
+    public void testCompact_full() {
+        ReverseEngineering engineering = new ReverseEngineering();
+        Catalog cat01 = new Catalog("cat_01");
+
+        Schema sch01 = new Schema("sch_01");
+
+        sch01.addIncludeTable(includeTable("t1", "c11", "c12"));
+        sch01.addExcludeTable(new ExcludeTable("t2"));
+        sch01.addIncludeProcedure(new IncludeProcedure("p1"));
+        sch01.addExcludeProcedure(new ExcludeProcedure("p2"));
+        sch01.addIncludeColumn(new IncludeColumn("c_x1"));
+        sch01.addExcludeColumn(new ExcludeColumn("c_x2"));
+
+        cat01.addSchema(sch01);
+
+        cat01.addIncludeTable(includeTable("t3", "c31", "c32"));
+        cat01.addExcludeTable(new ExcludeTable("t4"));
+        cat01.addIncludeProcedure(new IncludeProcedure("p3"));
+        cat01.addExcludeProcedure(new ExcludeProcedure("p4"));
+        cat01.addIncludeColumn(new IncludeColumn("c_xx1"));
+        cat01.addExcludeColumn(new ExcludeColumn("c_xx2"));
+
+        engineering.addCatalog(cat01);
+
+        Schema sch02 = new Schema("sch_02");
+
+        sch02.addIncludeTable(includeTable("t5", "c51", "c52"));
+        sch02.addExcludeTable(new ExcludeTable("t6"));
+        sch02.addIncludeProcedure(new IncludeProcedure("p5"));
+        sch02.addExcludeProcedure(new ExcludeProcedure("p6"));
+        sch02.addIncludeColumn(new IncludeColumn("c2_x1"));
+        sch02.addExcludeColumn(new ExcludeColumn("c2_x2"));
+
+        engineering.addSchema(sch02);
+
+        engineering.addIncludeTable(includeTable("t7", "c71", "c72"));
+        engineering.addExcludeTable(new ExcludeTable("t8"));
+        engineering.addIncludeProcedure(new IncludeProcedure("p7"));
+        engineering.addExcludeProcedure(new ExcludeProcedure("p8"));
+        engineering.addIncludeColumn(new IncludeColumn("c_xxx1"));
+        engineering.addExcludeColumn(new ExcludeColumn("c_xxx2"));
+
+        FiltersConfigBuilder builder = new FiltersConfigBuilder(engineering);
+        assertEquals("Original ReverseEngineering should be",
+                "ReverseEngineering: \n" +
+                "  Catalog: cat_01\n" +
+                "    Schema: sch_01\n" +
+                "      IncludeTable: t1\n" +
+                "        IncludeColumn: c11\n" +
+                "        ExcludeColumn: c12\n" +
+                "      ExcludeTable: t2\n" +
+                "      IncludeColumn: c_x1\n" +
+                "      ExcludeColumn: c_x2\n" +
+                "      IncludeProcedure: p1\n" +
+                "      ExcludeProcedure: p2\n" +
+                "    IncludeTable: t3\n" +
+                "      IncludeColumn: c31\n" +
+                "      ExcludeColumn: c32\n" +
+                "    ExcludeTable: t4\n" +
+                "    IncludeColumn: c_xx1\n" +
+                "    ExcludeColumn: c_xx2\n" +
+                "    IncludeProcedure: p3\n" +
+                "    ExcludeProcedure: p4\n" +
+                "  Schema: sch_02\n" +
+                "    IncludeTable: t5\n" +
+                "      IncludeColumn: c51\n" +
+                "      ExcludeColumn: c52\n" +
+                "    ExcludeTable: t6\n" +
+                "    IncludeColumn: c2_x1\n" +
+                "    ExcludeColumn: c2_x2\n" +
+                "    IncludeProcedure: p5\n" +
+                "    ExcludeProcedure: p6\n" +
+                "  IncludeTable: t7\n" +
+                "    IncludeColumn: c71\n" +
+                "    ExcludeColumn: c72\n" +
+                "  ExcludeTable: t8\n" +
+                "  IncludeColumn: c_xxx1\n" +
+                "  ExcludeColumn: c_xxx2\n" +
+                "  IncludeProcedure: p7\n" +
+                "  ExcludeProcedure: p8\n", engineering.toString());
+
+
+        builder.compact();
+        assertEquals(
+                "ReverseEngineering: \n" +
+                        "  Catalog: cat_01\n" +
+                        "    Schema: sch_01\n" +
+                        "      IncludeTable: t1\n" +
+                        "        IncludeColumn: c11\n" +
+                        "        IncludeColumn: c_xxx1\n" +
+                        "        IncludeColumn: c_xx1\n" +
+                        "        IncludeColumn: c_x1\n" +
+                        "        ExcludeColumn: c12\n" +
+                        "        ExcludeColumn: c_xxx2\n" +
+                        "        ExcludeColumn: c_xx2\n" +
+                        "        ExcludeColumn: c_x2\n" +
+                        "      IncludeTable: t7\n" +
+                        "        IncludeColumn: c71\n" +
+                        "        IncludeColumn: c_xxx1\n" +
+                        "        ExcludeColumn: c72\n" +
+                        "        ExcludeColumn: c_xxx2\n" +
+                        "      IncludeTable: t3\n" +
+                        "        IncludeColumn: c31\n" +
+                        "        IncludeColumn: c_xxx1\n" +
+                        "        IncludeColumn: c_xx1\n" +
+                        "        ExcludeColumn: c32\n" +
+                        "        ExcludeColumn: c_xxx2\n" +
+                        "        ExcludeColumn: c_xx2\n" +
+                        "      ExcludeTable: t2\n" +
+                        "      ExcludeTable: t8\n" +
+                        "      ExcludeTable: t4\n" +
+                        "      IncludeProcedure: p1\n" +
+                        "      IncludeProcedure: p7\n" +
+                        "      IncludeProcedure: p3\n" +
+                        "      ExcludeProcedure: p2\n" +
+                        "      ExcludeProcedure: p8\n" +
+                        "      ExcludeProcedure: p4\n" +
+                        "    Schema: sch_02\n" +
+                        "      IncludeTable: t5\n" +
+                        "        IncludeColumn: c51\n" +
+                        "        IncludeColumn: c_xxx1\n" +
+                        "        IncludeColumn: c2_x1\n" +
+                        "        ExcludeColumn: c52\n" +
+                        "        ExcludeColumn: c_xxx2\n" +
+                        "        ExcludeColumn: c2_x2\n" +
+                        "      IncludeTable: t7\n" +
+                        "        IncludeColumn: c71\n" +
+                        "        IncludeColumn: c_xxx1\n" +
+                        "        ExcludeColumn: c72\n" +
+                        "        ExcludeColumn: c_xxx2\n" +
+                        "      ExcludeTable: t6\n" +
+                        "      ExcludeTable: t8\n" +
+                        "      IncludeProcedure: p5\n" +
+                        "      IncludeProcedure: p7\n" +
+                        "      ExcludeProcedure: p6\n" +
+                        "      ExcludeProcedure: p8\n", engineering.toString());
+    }
+
+    protected IncludeTable includeTable(String name, String incCol, String excCol) {
+        IncludeTable incTable01 = new IncludeTable(name);
+        incTable01.addIncludeColumn(new IncludeColumn(incCol));
+        incTable01.addExcludeColumn(new ExcludeColumn(excCol));
+        return incTable01;
+    }
+
+    /*@Test
+    public void testEmptyDbEntitiesFilters() throws Exception {
+        ReverseEngineering engineering = new ReverseEngineering();
+        FiltersConfig executions = new FiltersConfigBuilder(engineering).build();
+
+        assertEquals("If nothing was configured we have to import everything. Filter %/%/% true/true/true",
+                new FiltersConfig(eFilters(path(), TRUE, TRUE, NULL)),
+                executions);
+    }
+
+    @Test
+    public void testOnlyOneCatalogDbEntitiesFilters() throws Exception {
+        ReverseEngineering engineering = new ReverseEngineering();
+        engineering.addCatalog(new Catalog("catalog_01"));
+        FiltersConfig executions = new FiltersConfigBuilder(engineering).build();
+
+
+        assertEquals(new FiltersConfig(eFilters(path("catalog_01", null), TRUE, TRUE, NULL)),
+                executions);
+    }
+
+    @Test
+    public void testCatalogDbEntitiesFilters() throws Exception {
+        ReverseEngineering engineering = new ReverseEngineering();
+        engineering.addCatalog(new Catalog("catalog_01"));
+        engineering.addCatalog(new Catalog("catalog_02").schema(new Schema("schema_01")));
+        engineering.addCatalog(new Catalog("catalog_02").schema(new Schema("schema_02")));
+        engineering.addCatalog(new Catalog("catalog_02").schema(new Schema("schema_03")));
+        engineering.addCatalog(new Catalog("catalog_03").schema(new Schema("schema_01")));
+        engineering.addCatalog(new Catalog("catalog_03").schema(new Schema("schema_01")));
+        engineering.addCatalog(new Catalog("catalog_03").schema(new Schema("schema_01")));
+        engineering.addCatalog(new Catalog("catalog_03").schema(new Schema("schema_01")));
+        FiltersConfig executions = new FiltersConfigBuilder(engineering).build();
+
+
+        assertEquals(new FiltersConfig(
+                        eFilters(path("catalog_01", null), TRUE, TRUE, NULL),
+                        eFilters(path("catalog_02", "schema_01"), TRUE, TRUE, NULL),
+                        eFilters(path("catalog_02", "schema_02"), TRUE, TRUE, NULL),
+                        eFilters(path("catalog_02", "schema_03"), TRUE, TRUE, NULL),
+                        eFilters(path("catalog_03", "schema_01"), TRUE, TRUE, NULL)
+                ),
+                executions);
+    }
+
+    @Test
+    public void testSchemaDbEntitiesFilters() throws Exception {
+        ReverseEngineering engineering = new ReverseEngineering();
+        engineering.addSchema(new Schema("schema_01"));
+        engineering.addSchema(new Schema("schema_02"));
+        engineering.addSchema(new Schema("schema_03"));
+        FiltersConfig executions = new FiltersConfigBuilder(engineering).build();
+
+
+        assertEquals(new FiltersConfig(
+                        eFilters(path(null, "schema_01"), TRUE, TRUE, NULL),
+                        eFilters(path(null, "schema_02"), TRUE, TRUE, NULL),
+                        eFilters(path(null, "schema_03"), TRUE, TRUE, NULL)
+                ),
+                executions);
+    }
+
+    @Test
+    public void testFiltersDbEntitiesFilters() throws Exception {
+        ReverseEngineering engineering = new ReverseEngineering();
+        engineering.addIncludeTable(new IncludeTable("IncludeTable"));
+        engineering.addIncludeColumn(new IncludeColumn("IncludeColumn"));
+        engineering.addIncludeProcedure(new IncludeProcedure("IncludeProcedure"));
+        engineering.addExcludeTable(new ExcludeTable("ExcludeTable"));
+        engineering.addExcludeColumn(new ExcludeColumn("ExcludeColumn"));
+        engineering.addExcludeProcedure(new ExcludeProcedure("ExcludeProcedure"));
+
+        FiltersConfig executions = new FiltersConfigBuilder(engineering).build();
+
+        assertEquals(new FiltersConfig(
+                        eFilters(path(),
+                            list(include("IncludeTable"), exclude("ExcludeTable")),
+                            list(include("IncludeColumn"), exclude("ExcludeColumn")),
+                            list(include("IncludeProcedure"), exclude("ExcludeProcedure"))),
+                        eFilters(path(null, null, "IncludeTable"), NULL, TRUE, NULL)
+                ),
+                executions);
+    }
+
+    @Test
+    public void testComplexConfiguration() throws Exception {
+        IncludeTable table = new IncludeTable("table");
+        table.addIncludeColumn(new IncludeColumn("column"));
+
+        Schema schema = new Schema("schema");
+        schema.addIncludeTable(table);
+
+        Catalog catalog = new Catalog("catalog");
+        catalog.addSchema(schema);
+
+        ReverseEngineering engineering = new ReverseEngineering();
+        engineering.addCatalog(catalog);
+
+        FiltersConfig executions = new FiltersConfigBuilder(engineering).build();
+
+        assertEquals(new FiltersConfig(
+                        eFilters(path("catalog", "schema"), include("table"), NULL, NULL),
+                        eFilters(path("catalog", "schema", "table"), NULL, include("column"), NULL)
+                        ),
+                executions);
+    }
+
+    @Test
+    public void testAddNull() throws Exception {
+        FiltersConfigBuilder builder = new FiltersConfigBuilder(new ReverseEngineering());
+        DbPath path = new DbPath();
+        builder.add(new EntityFilters(path, NULL, NULL, NULL));
+        builder.add(new EntityFilters(path, NULL, NULL, NULL));
+        builder.add(new EntityFilters(path, NULL, NULL, NULL));
+        builder.add(new EntityFilters(path, NULL, NULL, NULL));
+
+        EntityFilters filter = builder.build().filter(path);
+        assertFalse(filter.isEmpty());
+    }*/
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/filters/PatternFilterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/filters/PatternFilterTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/filters/PatternFilterTest.java
index 73739ec..5a44442 100644
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/filters/PatternFilterTest.java
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/filters/PatternFilterTest.java
@@ -27,17 +27,17 @@ public class PatternFilterTest extends TestCase {
                 .include("aaa")
                 .include("bbb");
 
-        assertTrue(filter.isInclude("aaa"));
-        assertTrue(filter.isInclude("bbb"));
-        assertFalse(filter.isInclude("aaaa"));
-        assertFalse(filter.isInclude("aa"));
-        assertFalse(filter.isInclude("abb"));
+        assertTrue(filter.isIncluded("aaa"));
+        assertTrue(filter.isIncluded("bbb"));
+        assertFalse(filter.isIncluded("aaaa"));
+        assertFalse(filter.isIncluded("aa"));
+        assertFalse(filter.isIncluded("abb"));
 
         filter = new PatternFilter().include("^v_.*$");
-        assertTrue(filter.isInclude("v_new_view"));
-        assertFalse(filter.isInclude("new_view"));
-        assertFalse(filter.isInclude("view"));
-        assertFalse(filter.isInclude("girl"));
+        assertTrue(filter.isIncluded("v_new_view"));
+        assertFalse(filter.isIncluded("new_view"));
+        assertFalse(filter.isIncluded("view"));
+        assertFalse(filter.isIncluded("girl"));
     }
 
     public void testExclude() throws Exception {
@@ -45,11 +45,11 @@ public class PatternFilterTest extends TestCase {
                 .exclude("aaa")
                 .exclude("bbb");
 
-        assertFalse(filter.isInclude("aaa"));
-        assertFalse(filter.isInclude("bbb"));
-        assertTrue(filter.isInclude("aaaa"));
-        assertTrue(filter.isInclude("aa"));
-        assertTrue(filter.isInclude("abb"));
+        assertFalse(filter.isIncluded("aaa"));
+        assertFalse(filter.isIncluded("bbb"));
+        assertTrue(filter.isIncluded("aaaa"));
+        assertTrue(filter.isIncluded("aa"));
+        assertTrue(filter.isIncluded("abb"));
     }
 
     public void testIncludeExclude() throws Exception {
@@ -57,22 +57,22 @@ public class PatternFilterTest extends TestCase {
                 .include("aa.*")
                 .exclude("aaa");
 
-        assertFalse(filter.isInclude("aaa"));
-        assertFalse(filter.isInclude("bbb"));
-        assertTrue(filter.isInclude("aaaa"));
-        assertTrue(filter.isInclude("aa"));
-        assertFalse(filter.isInclude("abb"));
+        assertFalse(filter.isIncluded("aaa"));
+        assertFalse(filter.isIncluded("bbb"));
+        assertTrue(filter.isIncluded("aaaa"));
+        assertTrue(filter.isIncluded("aa"));
+        assertFalse(filter.isIncluded("abb"));
     }
 
     public void testIncludeAllFilter() {
-        assertTrue(PatternFilter.INCLUDE_EVERYTHING.isInclude("qwe"));
-        assertTrue(PatternFilter.INCLUDE_EVERYTHING.isInclude(""));
-        assertTrue(PatternFilter.INCLUDE_EVERYTHING.isInclude(null));
+        assertTrue(PatternFilter.INCLUDE_EVERYTHING.isIncluded("qwe"));
+        assertTrue(PatternFilter.INCLUDE_EVERYTHING.isIncluded(""));
+        assertTrue(PatternFilter.INCLUDE_EVERYTHING.isIncluded(null));
     }
 
     public void testIncludeNoneFilter() {
-        assertFalse(PatternFilter.INCLUDE_NOTHING.isInclude("qwe"));
-        assertFalse(PatternFilter.INCLUDE_NOTHING.isInclude(""));
-        assertFalse(PatternFilter.INCLUDE_NOTHING.isInclude(null));
+        assertFalse(PatternFilter.INCLUDE_NOTHING.isIncluded("qwe"));
+        assertFalse(PatternFilter.INCLUDE_NOTHING.isIncluded(""));
+        assertFalse(PatternFilter.INCLUDE_NOTHING.isIncluded(null));
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/cayenne-tools/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java b/cayenne-tools/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
index e8b6b76..c8d43e4 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
@@ -19,7 +19,7 @@
 package org.apache.cayenne.gen;
 
 import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.dbsync.reverse.NamePatternMatcher;
+import org.apache.cayenne.dbsync.filter.NamePatternMatcher;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.Embeddable;
 import org.apache.cayenne.map.ObjEntity;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java
index 3e98829..de001bd 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.tools;
 
 import org.apache.cayenne.access.DataPort;
 import org.apache.cayenne.access.DataPortDelegate;
-import org.apache.cayenne.dbsync.reverse.NamePatternMatcher;
+import org.apache.cayenne.dbsync.filter.NamePatternMatcher;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.Query;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java
index 08a39df..f32b1d2 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java
@@ -18,7 +18,7 @@
  ****************************************************************/
 package org.apache.cayenne.tools;
 
-import org.apache.cayenne.dbsync.reverse.NameFilter;
+import org.apache.cayenne.dbsync.filter.NameFilter;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.Embeddable;
 import org.apache.cayenne.map.ObjEntity;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
index 6edcd6c..d57b350 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
@@ -19,7 +19,7 @@
 package org.apache.cayenne.tools;
 
 import foundrylogic.vpp.VPPConfig;
-import org.apache.cayenne.dbsync.reverse.NamePatternMatcher;
+import org.apache.cayenne.dbsync.filter.NamePatternMatcher;
 import org.apache.cayenne.gen.ArtifactsGenerationMode;
 import org.apache.cayenne.gen.ClassGenerationAction;
 import org.apache.cayenne.gen.ClientClassGenerationAction;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
index 921db3b..10c3d13 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
@@ -36,7 +36,7 @@ import org.apache.cayenne.dbimport.IncludeTable;
 import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.dbimport.Schema;
 import org.apache.cayenne.dbsync.CayenneDbSyncModule;
-import org.apache.cayenne.dbsync.reverse.FiltersConfigBuilder;
+import org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder;
 import org.apache.cayenne.di.DIBootstrap;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.map.DataMap;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/cayenne-tools/src/test/java/org/apache/cayenne/tools/NamePatternMatcherTest.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/tools/NamePatternMatcherTest.java b/cayenne-tools/src/test/java/org/apache/cayenne/tools/NamePatternMatcherTest.java
deleted file mode 100644
index 3482843..0000000
--- a/cayenne-tools/src/test/java/org/apache/cayenne/tools/NamePatternMatcherTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*****************************************************************
- *   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.cayenne.tools;
-
-import org.apache.cayenne.dbsync.reverse.NamePatternMatcher;
-import org.junit.Test;
-
-import static org.apache.cayenne.dbsync.reverse.NamePatternMatcher.replaceWildcardInStringWithString;
-import static org.junit.Assert.assertEquals;
-
-public class NamePatternMatcherTest {
-
-	/**
-	 * Test pattern expansion.
-	 */
-	@Test
-	public void testReplaceWildcardInStringWithString() throws Exception {
-		assertEquals(null, replaceWildcardInStringWithString("*", null, "Entity"));
-		assertEquals("*.java", replaceWildcardInStringWithString(null, "*.java", "Entity"));
-		assertEquals("Entity.java", replaceWildcardInStringWithString("*", "*.java", "Entity"));
-		assertEquals("java.Entity", replaceWildcardInStringWithString("*", "java.*", "Entity"));
-		assertEquals("Entity.Entity", replaceWildcardInStringWithString("*", "*.*", "Entity"));
-		assertEquals("EntityEntity", replaceWildcardInStringWithString("*", "**", "Entity"));
-		assertEquals("EditEntityReport.vm", replaceWildcardInStringWithString("*", "Edit*Report.vm", "Entity"));
-		assertEquals("Entity", replaceWildcardInStringWithString("*", "*", "Entity"));
-	}
-
-	/**
-	 * Test tokenizing
-	 */
-	@Test
-	public void testTokenizer() {
-
-		String[] nullFilters = NamePatternMatcher.tokenizePattern(null);
-		assertEquals(0, nullFilters.length);
-
-		String[] filters = NamePatternMatcher.tokenizePattern("billing_*,user?");
-		assertEquals(2, filters.length);
-		assertEquals("^billing_.*$", filters[0]);
-		assertEquals("^user.?$", filters[1]);
-	}
-
-	/**
-	 * Test tokenizing
-	 */
-	@Test
-	public void testTokenizerEntities() {
-
-		String includePattern = "Organization,SecGroup,SecIndividual";
-
-		String[] filters = NamePatternMatcher.tokenizePattern(includePattern);
-		assertEquals(3, filters.length);
-		assertEquals("^Organization$", filters[0]);
-		assertEquals("^SecGroup$", filters[1]);
-		assertEquals("^SecIndividual$", filters[2]);
-	}
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
index 5a3bbfb..58ef41b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
@@ -26,7 +26,7 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.dbsync.CayenneDbSyncModule;
 import org.apache.cayenne.dbsync.naming.NameBuilder;
-import org.apache.cayenne.dbsync.reverse.FiltersConfigBuilder;
+import org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder;
 import org.apache.cayenne.dbsync.reverse.db.DbLoader;
 import org.apache.cayenne.dbsync.reverse.db.DefaultDbLoaderDelegate;
 import org.apache.cayenne.di.DIBootstrap;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringController.java
index cbce494..38ac5f0 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringController.java
@@ -22,7 +22,7 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.dbsync.reverse.db.DbLoader;
 import org.apache.cayenne.dbsync.reverse.db.DbLoaderConfiguration;
-import org.apache.cayenne.dbsync.reverse.FiltersConfigBuilder;
+import org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.modeler.ClassLoadingService;
 import org.apache.cayenne.modeler.ProjectController;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
index ec990cc..4ef5013 100644
--- a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
+++ b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
@@ -19,7 +19,7 @@
 
 package org.apache.cayenne.tools;
 
-import org.apache.cayenne.dbsync.reverse.NamePatternMatcher;
+import org.apache.cayenne.dbsync.filter.NamePatternMatcher;
 import org.apache.cayenne.gen.ClassGenerationAction;
 import org.apache.cayenne.gen.ClientClassGenerationAction;
 import org.apache.cayenne.map.DataMap;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0ab79480/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
index 4714b97..d2123ce 100644
--- a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
+++ b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
@@ -27,7 +27,7 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dbimport.DefaultReverseEngineeringLoader;
 import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.dbsync.CayenneDbSyncModule;
-import org.apache.cayenne.dbsync.reverse.FiltersConfigBuilder;
+import org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder;
 import org.apache.cayenne.di.DIBootstrap;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.map.DataMap;