You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ko...@apache.org on 2015/04/24 00:13:02 UTC
[17/17] cayenne git commit: Merge remote-tracking branch
'apache/master'
Merge remote-tracking branch 'apache/master'
Conflicts:
cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
cayenne-server/src/main/java/org/apache/cayenne/access/loader/BooleanNameFilter.java
cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/DbPath.java
cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/EntityFilters.java
cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/FilterFactory.java
cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
cayenne-server/src/test/java/org/apache/cayenne/access/loader/filters/DbPathTest.java
cayenne-server/src/test/java/org/apache/cayenne/access/loader/filters/FiltersFactory.java
cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/Catalog.java
cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/FilterContainer.java
cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilder.java
cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/ReverseEngineering.java
cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/Schema.java
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerOptions.java
plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
pom.xml
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/09c6da92
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/09c6da92
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/09c6da92
Branch: refs/heads/master
Commit: 09c6da925df7ea651394e6cc33251b4c20a93aa3
Parents: cd4e9ee
Author: Alex Kolonitsky <Al...@gmail.com>
Authored: Fri Apr 24 01:12:01 2015 +0300
Committer: Alex Kolonitsky <Al...@gmail.com>
Committed: Fri Apr 24 01:12:01 2015 +0300
----------------------------------------------------------------------
cayenne-server/pom.xml | 5 +
.../org/apache/cayenne/access/DbLoader.java | 200 ++++++++++---------
.../access/loader/filters/TableFilter.java | 24 +++
.../java/org/apache/cayenne/merge/DbMerger.java | 3 +-
.../org/apache/cayenne/access/DbLoaderIT.java | 30 +--
.../org/apache/cayenne/merge/MergeCase.java | 9 +-
.../apache/cayenne/tools/DbImporterTask.java | 4 +-
.../dbimport/config/FiltersConfigBuilder.java | 2 +-
.../config/FiltersConfigBuilderTest.java | 11 +-
.../modeler/dialog/db/DbLoaderHelper.java | 1 +
.../tools/DbImporterMojoConfigurationTest.java | 20 +-
11 files changed, 182 insertions(+), 127 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/pom.xml b/cayenne-server/pom.xml
index d00cd8c..ee4e3c7 100644
--- a/cayenne-server/pom.xml
+++ b/cayenne-server/pom.xml
@@ -48,6 +48,11 @@
<artifactId>commons-logging</artifactId>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.0</version>
+ </dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
index c1622b8..1a2e24a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
@@ -19,24 +19,13 @@
package org.apache.cayenne.access;
import java.sql.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
+import java.util.*;
+import java.util.regex.Pattern;
import org.apache.cayenne.access.loader.DbLoaderConfiguration;
import org.apache.cayenne.access.loader.DefaultDbLoaderDelegate;
import org.apache.cayenne.access.loader.ManyToManyCandidateEntity;
import org.apache.cayenne.access.loader.filters.*;
-import org.apache.cayenne.access.loader.filters.CatalogFilter;
-import org.apache.cayenne.access.loader.filters.SchemaFilter;
-import org.apache.cayenne.access.loader.filters.TableFilter;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.TypesMapping;
import org.apache.cayenne.map.DataMap;
@@ -46,7 +35,6 @@ import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.DbRelationshipDetected;
import org.apache.cayenne.map.DetectedDbEntity;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.Procedure;
import org.apache.cayenne.map.ProcedureParameter;
@@ -57,6 +45,7 @@ import org.apache.cayenne.map.naming.NameCheckers;
import org.apache.cayenne.map.naming.ObjectNameGenerator;
import org.apache.cayenne.util.EntityMergeSupport;
import org.apache.cayenne.util.EqualsBuilder;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -211,32 +200,43 @@ public class DbLoader {
* @return
* @since 4.0
*/
- public Map<DbEntity, PatternFilter> getTables(DbLoaderConfiguration config, String[] types)
+ public Map<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> getTables(DbLoaderConfiguration config, String[] types)
throws SQLException {
if (types == null || types.length == 0) {
types = getDefaultTableTypes();
}
- Map<DbEntity, PatternFilter> tables = new HashMap<DbEntity, PatternFilter>();
+ Map<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> tables = new HashMap<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>>();
FiltersConfig filters = config.getFiltersConfig();
- for (CatalogFilter o : filters.catalogs) {
- for (SchemaFilter schema : o.schemas) {
- tables.putAll(getDbEntities(filters, o.name, schema.name, types));
+ for (CatalogFilter catalog : filters.catalogs) {
+ for (SchemaFilter schema : catalog.schemas) {
+ Pair<String, String> path = Pair.of(catalog.name, schema.name);
+ Map<String, Pair<DbEntity, PatternFilter>> dbEntities = getDbEntities(filters, path, types);
+ if (!dbEntities.isEmpty()) {
+ tables.put(path, dbEntities);
+ }
}
}
return tables;
}
- private Map<DbEntity, PatternFilter> getDbEntities(FiltersConfig filters, String catalog, String schema, String[] types) throws SQLException {
+ /**
+ * @param filters
+ * @param dbPath
+ * @param types
+ * @return Map<TableName, DbEntity>
+ * @throws SQLException
+ */
+ private Map<String, Pair<DbEntity, PatternFilter>> getDbEntities(FiltersConfig filters, Pair<String, String> dbPath, String[] types) throws SQLException {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Read tables: catalog=" + catalog + ", schema=" + schema + ", types="
+ LOGGER.debug("Read tables: catalog=" + dbPath.getKey() + ", schema=" + dbPath.getValue() + ", types="
+ Arrays.toString(types));
}
- ResultSet rs = getMetaData().getTables(catalog, schema, WILDCARD, types);
+ ResultSet rs = getMetaData().getTables(dbPath.getKey(), dbPath.getValue(), WILDCARD, types);
- Map<DbEntity, PatternFilter> tables = new HashMap<DbEntity, PatternFilter>();
+ Map<String, Pair<DbEntity, PatternFilter>> tables = new HashMap<String, Pair<DbEntity, PatternFilter>>();
try {
while (rs.next()) {
// Oracle 9i and newer has a nifty recycle bin feature... but we don't
@@ -251,15 +251,15 @@ public class DbLoader {
DbEntity table = new DetectedDbEntity(name);
- String c = rs.getString("TABLE_CAT");
- table.setCatalog(c);
+ String catalog = rs.getString("TABLE_CAT");
+ table.setCatalog(catalog);
- String s = rs.getString("TABLE_SCHEM");
- table.setSchema(s);
+ String schema = rs.getString("TABLE_SCHEM");
+ table.setSchema(schema);
- PatternFilter filter = filters.tableFilter(c, s).isIncludeTable(table.getName());
- if (filter != null) {
- tables.put(table, filter);
+ PatternFilter includeTable = filters.tableFilter(catalog, schema).isIncludeTable(table.getName());
+ if (includeTable != null) {
+ tables.put(name, Pair.of(table, includeTable));
}
}
} finally {
@@ -270,22 +270,20 @@ public class DbLoader {
/**
* Loads dbEntities for the specified tables.
- *
- * @param map DataMap to be populated with DbEntities.
+ * @param map DataMap to be populated with DbEntities.
* @param config
* @param tables The list of org.apache.cayenne.ashwood.dbutil.Table objects
- * for which DbEntities must be created. @return false if loading must be immediately aborted.
*/
- public List<DbEntity> loadDbEntities(DataMap map, Map<DbEntity, PatternFilter> tables, DbLoaderConfiguration config) throws SQLException {
+ public List<DbEntity> loadDbEntities(DataMap map, DbLoaderConfiguration config, Map<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> tables) throws SQLException {
/** List of db entities to process. */
+
List<DbEntity> dbEntityList = new ArrayList<DbEntity>();
- for (Entry<DbEntity, PatternFilter> entry : tables.entrySet()) {
- DbEntity dbEntity = entry.getKey();
- PatternFilter tableFilter = entry.getValue();
+ for (Map.Entry<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> tablesMap : tables.entrySet()) {
+ for (Pair<DbEntity, PatternFilter> dbEntity : tablesMap.getValue().values()) {
// Check if there already is a DbEntity under such name
// if so, consult the delegate what to do
- DbEntity oldEnt = map.getDbEntity(dbEntity.getName());
+ DbEntity oldEnt = map.getDbEntity(dbEntity.getKey().getName());
if (oldEnt != null) {
Collection<ObjEntity> oldObjEnt = map.getMappedEntities(oldEnt);
if (!oldObjEnt.isEmpty()) {
@@ -301,14 +299,14 @@ public class DbLoader {
delegate.dbEntityRemoved(oldEnt);
}
- map.addDbEntity(dbEntity);
+ map.addDbEntity(dbEntity.getKey());
- delegate.dbEntityAdded(dbEntity);
+ delegate.dbEntityAdded(dbEntity.getKey());
// delegate might have thrown this entity out... so check if it is still
// around before continuing processing
- if (map.getDbEntity(dbEntity.getName()) == dbEntity) {
- dbEntityList.add(dbEntity);
+ if (map.getDbEntity(dbEntity.getKey().getName()) == dbEntity.getKey()) {
+ dbEntityList.add(dbEntity.getKey());
}
}
@@ -317,12 +315,14 @@ public class DbLoader {
if (!config.isSkipPrimaryKeyLoading()) {
getPrimaryKeyForTable(tablesMap.getValue());
}
+ }
return dbEntityList;
}
- private void getPrimaryKeyForTable(Map<String, DbEntity> tables) throws SQLException {
- for (DbEntity dbEntity : tables.values()) {
+ private void getPrimaryKeyForTable(Map<String, Pair<DbEntity, PatternFilter>> tables) throws SQLException {
+ for (Pair<DbEntity, PatternFilter> pair : tables.values()) {
+ DbEntity dbEntity = pair.getKey();
ResultSet rs = getMetaData().getPrimaryKeys(dbEntity.getCatalog(), dbEntity.getSchema(), dbEntity.getName());
try {
while (rs.next()) {
@@ -342,6 +342,7 @@ public class DbLoader {
if (pkName != null && dbEntity instanceof DetectedDbEntity) {
((DetectedDbEntity) dbEntity).setPrimaryKeyName(pkName);
}
+
}
} finally {
rs.close();
@@ -349,8 +350,8 @@ public class DbLoader {
}
}
- private void loadDbAttributes(DbEntity dbEntity, PatternFilter columnFilter) throws SQLException {
- ResultSet rs = getMetaData().getColumns(dbEntity.getCatalog(), dbEntity.getSchema(), dbEntity.getName(), "%");
+ private void loadDbAttributes(FiltersConfig filters, Pair<String, String> path, Map<String, Pair<DbEntity, PatternFilter>> entities) throws SQLException {
+ ResultSet rs = getMetaData().getColumns(path.getKey(), path.getValue(), WILDCARD, WILDCARD);
try {
Set<String> columns = new HashSet<String>();
@@ -361,22 +362,21 @@ public class DbLoader {
// names. E.g. for the system table "WK$_ATTR_MAPPING" columns are
// returned twice - as "WK$_ATTR_MAPPING" and "WK$$_ATTR_MAPPING"... Go figure
String tableName = rs.getString("TABLE_NAME");
- DbEntity dbEntity = entities.get(tableName);
- if (dbEntity == null) {
+ Pair<DbEntity, PatternFilter> pair = entities.get(tableName);
+ if (pair == null) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Skip column for '" + tableName + "." + rs.getString("COLUMN_NAME") + ".");
}
continue;
}
+ DbEntity dbEntity = pair.getKey();
DbAttribute attr = loadDbAttribute(columns, rs);
attr.setEntity(dbEntity);
-
- if (!columnFilter.isInclude(attr.getName())) {
+ if (!pair.getValue().isInclude(attr.getName())) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Importing: attribute '" + attr.getEntity().getName() + "." + attr.getName()
- + "' is skipped (Path: " + dbEntity.getCatalog() + "/" + dbEntity.getSchema() + "/"
- + dbEntity.getName() + "; Filter: " + columnFilter + ")");
+ LOGGER.debug("Skip column for '" + attr.getEntity().getName() + "." + attr.getName()
+ + "' (Path: " + path + "; Filter: " + pair.getValue() + ")");
}
continue;
}
@@ -483,14 +483,14 @@ public class DbLoader {
return new EntityMergeSupport(map, nameGenerator, !creatingMeaningfulPK);
}
- protected void loadDbRelationships(DbLoaderConfiguration config, Map<DbPath, Map<String, DbEntity>> tables) throws SQLException {
+ protected void loadDbRelationships(DbLoaderConfiguration config, Map<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> tables) throws SQLException {
if (config.isSkipRelationshipsLoading()) {
return;
}
// Get all the foreign keys referencing this table
- for (Map.Entry<DbPath, Map<String, DbEntity>> pathEntry : tables.entrySet()) {
+ for (Map.Entry<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> pathEntry : tables.entrySet()) {
Map<String, Set<ExportedKey>> keys = loadExportedKeys(config, pathEntry.getKey(), pathEntry.getValue());
for (Map.Entry<String, Set<ExportedKey>> entry : keys.entrySet()) {
if (LOGGER.isDebugEnabled()) {
@@ -503,13 +503,13 @@ public class DbLoader {
throw new IllegalStateException();
}
- DbEntity pkEntity = pathEntry.getValue().get(key.getPKTableName());
+ DbEntity pkEntity = pathEntry.getValue().get(key.getPKTableName()).getKey();
if (pkEntity == null) {
skipRelationLog(key, key.getPKTableName());
continue;
}
- DbEntity fkEntity = pathEntry.getValue().get(key.getFKTableName());
+ DbEntity fkEntity = pathEntry.getValue().get(key.getFKTableName()).getKey();
if (fkEntity == null) {
skipRelationLog(key, key.getFKTableName());
continue;
@@ -596,17 +596,18 @@ public class DbLoader {
}
}
- private Map<String, Set<ExportedKey>> loadExportedKeys(DbLoaderConfiguration config, DbPath dbPath, Map<String, DbEntity> tables) throws SQLException {
+ private Map<String, Set<ExportedKey>> loadExportedKeys(DbLoaderConfiguration config, Pair<String, String> dbPath, Map<String, Pair<DbEntity, PatternFilter>> tables) throws SQLException {
Map<String, Set<ExportedKey>> keys = new HashMap<String, Set<ExportedKey>>();
- for (DbEntity dbEntity : tables.values()) {
+ for (Pair<DbEntity, PatternFilter> pair : tables.values()) {
+ DbEntity dbEntity = pair.getKey();
if (!delegate.dbRelationship(dbEntity)) {
continue;
}
ResultSet rs;
try {
- rs = getMetaData().getExportedKeys(dbPath.catalog, dbPath.schema, dbEntity.getName());
+ rs = getMetaData().getExportedKeys(dbPath.getKey(), dbPath.getValue(), dbEntity.getName());
} catch (SQLException cay182Ex) {
// Sybase-specific - the line above blows on VIEWS, see CAY-182.
LOGGER.info("Error getting relationships for '" + dbPath + "', ignoring. "
@@ -618,13 +619,14 @@ public class DbLoader {
while (rs.next()) {
ExportedKey key = ExportedKey.extractData(rs);
- DbEntity fkEntity = tables.get(key.getFKTableName());
- if (fkEntity == null) {
+ Pair<DbEntity, PatternFilter> p = tables.get(key.getFKTableName());
+ if (p == null) {
skipRelationLog(key, key.getFKTableName());
continue;
}
- DbPath path = new DbPath(fkEntity.getCatalog(), fkEntity.getSchema(), fkEntity.getName());
- if (!config.getFiltersConfig().filter(path).tableFilter().isInclude(fkEntity)) {
+
+ DbEntity fkEntity = p.getKey();
+ if (config.getFiltersConfig().tableFilter(fkEntity.getCatalog(), fkEntity.getSchema()).isIncludeTable(fkEntity.getName()) == null) {
continue;
}
@@ -727,13 +729,15 @@ public class DbLoader {
*
* @since 1.0.7
* @deprecated since 4.0 use
+ * {@link #load(org.apache.cayenne.map.DataMap, DbLoaderConfiguration)}
+ * method that supports catalogs.
*/
@Deprecated
public DataMap loadDataMapFromDB(String schemaPattern, String tablePattern, DataMap dataMap) throws SQLException {
DbLoaderConfiguration configuration = new DbLoaderConfiguration();
configuration.setFiltersConfig(FiltersConfig.create(null, schemaPattern,
- TableFilter.include(tablePattern), PatternFilter.INCLUDE_NOTHING));
+ TableFilter.include(tablePattern), PatternFilter.INCLUDE_NOTHING));
load(dataMap, configuration);
return dataMap;
@@ -745,8 +749,8 @@ public class DbLoader {
* of tables to read.
*
* @deprecated since 4.0 use
- * {@link #load(org.apache.cayenne.map.DataMap, DbLoaderConfiguration, String...)}
- * method that supports catalogs.
+ * {@link #load(org.apache.cayenne.map.DataMap, DbLoaderConfiguration)}
+ * method that supports catalogs.
*/
@Deprecated
public DataMap loadDataMapFromDB(String schemaPattern, String tablePattern, String[] tableTypes, DataMap dataMap)
@@ -772,8 +776,8 @@ public class DbLoader {
public void load(DataMap dataMap, DbLoaderConfiguration config) throws SQLException {
LOGGER.info("Schema loading...");
- String[] tableTypes = config.getTableTypes() == null ? this.getDefaultTableTypes() : config.getTableTypes();
- List<DbEntity> entities = loadDbEntities(dataMap, getTables(config, tableTypes), config);
+ Map<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> tables = getTables(config, config.getTableTypes());
+ List<DbEntity> entities = loadDbEntities(dataMap, config, tables);
if (entities != null) {
loadDbRelationships(config, tables);
@@ -820,7 +824,7 @@ public class DbLoader {
public void loadProceduresFromDB(String schemaPattern, String namePattern, DataMap dataMap) throws SQLException {
DbLoaderConfiguration configuration = new DbLoaderConfiguration();
configuration.setFiltersConfig(FiltersConfig.create(null, schemaPattern,
- TableFilter.include(null), new PatternFilter().include(namePattern)));
+ TableFilter.everything(), new PatternFilter().include(namePattern)));
loadProcedures(dataMap, configuration);
}
@@ -854,28 +858,35 @@ public class DbLoader {
}
private void loadProceduresColumns(DbLoaderConfiguration config, Map<String, Procedure> procedures) throws SQLException {
- for (DbPath dbPath : config.getFiltersConfig().pathsForQueries()) {
- ResultSet columnsRS = getMetaData().getProcedureColumns(dbPath.catalog, dbPath.schema, null, null);
- try {
- while (columnsRS.next()) {
- String schema = columnsRS.getString("PROCEDURE_SCHEM");
- String name = columnsRS.getString("PROCEDURE_NAME");
- String key = (schema == null ? "" : schema + '.') + name;
- Procedure procedure = procedures.get(key);
- if (procedure == null) {
- continue;
- }
+ for (CatalogFilter catalog : config.getFiltersConfig().catalogs) {
+ for (SchemaFilter schema : catalog.schemas) {
+ loadProceduresColumns(procedures, catalog.name, schema.name);
+ }
+ }
+ }
- ProcedureParameter column = loadProcedureParams(columnsRS, key, procedure);
- if (column == null) {
- continue;
- }
- procedure.addCallParameter(column);
+ private void loadProceduresColumns(Map<String, Procedure> procedures, String catalog, String schema) throws SQLException {
+ ResultSet columnsRS = getMetaData().getProcedureColumns(catalog, schema, null, null);
+ try {
+ while (columnsRS.next()) {
+
+ String s = columnsRS.getString("PROCEDURE_SCHEM");
+ String name = columnsRS.getString("PROCEDURE_NAME");
+ String key = (s == null ? "" : s + '.') + name;
+ Procedure procedure = procedures.get(key);
+ if (procedure == null) {
+ continue;
}
- } finally {
- columnsRS.close();
+
+ ProcedureParameter column = loadProcedureParams(columnsRS, key, procedure);
+ if (column == null) {
+ continue;
+ }
+ procedure.addCallParameter(column);
}
+ } finally {
+ columnsRS.close();
}
}
@@ -941,13 +952,13 @@ public class DbLoader {
Map<String, Procedure> procedures = new HashMap<String, Procedure>();
FiltersConfig filters = config.getFiltersConfig();
- for (CatalogFilter catalogFilter : filters.catalogs) {
- for (SchemaFilter schema : catalogFilter.schemas) {
- if (filters.proceduresFilter(catalogFilter.name, schema.name) == null) {
+ for (CatalogFilter catalog : filters.catalogs) {
+ for (SchemaFilter schema : catalog.schemas) {
+ if (filters.proceduresFilter(catalog.name, schema.name).isEmpty()) {
continue;
}
- procedures.putAll(loadProcedures(filters, catalogFilter.name, schema.name));
+ procedures.putAll(loadProcedures(filters, catalog.name, schema.name));
}
}
@@ -966,7 +977,8 @@ public class DbLoader {
procedure.setCatalog(rs.getString("PROCEDURE_CAT"));
procedure.setSchema(rs.getString("PROCEDURE_SCHEM"));
- if (filters.proceduresFilter(procedure.getCatalog(), procedure.getSchema()).isInclude(name)) {
+ if (filters.proceduresFilter(procedure.getCatalog(), procedure.getSchema())
+ .isInclude(procedure.getName())) {
LOGGER.info("skipping Cayenne PK procedure: " + name);
continue;
}
@@ -1010,4 +1022,4 @@ public class DbLoader {
public ObjectNameGenerator getNameGenerator() {
return nameGenerator;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/TableFilter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/TableFilter.java b/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/TableFilter.java
index fa0ad2f..640c0a8 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/TableFilter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/TableFilter.java
@@ -109,4 +109,28 @@ public class TableFilter {
return res;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+
+ if (!(o instanceof TableFilter)) {
+ return false;
+ }
+
+ TableFilter that = (TableFilter) o;
+
+ return excludes.equals(that.excludes)
+ && includes.equals(that.includes);
+
+ }
+
+ @Override
+ public int hashCode() {
+ int result = includes.hashCode();
+ result = 31 * result + excludes.hashCode();
+ return result;
+ }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java b/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java
index 6cc1fa3..d9cf154 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java
@@ -23,7 +23,6 @@ import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.DbLoader;
import org.apache.cayenne.access.loader.DbLoaderConfiguration;
import org.apache.cayenne.access.loader.LoggingDbLoaderDelegate;
-import org.apache.cayenne.access.loader.filters.DbPath;
import org.apache.cayenne.access.loader.filters.FiltersConfig;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.map.Attribute;
@@ -113,7 +112,7 @@ public class DbMerger {
private Collection<DbEntity> filter(DataMap existing, FiltersConfig filtersConfig) {
Collection<DbEntity> existingFiltered = new LinkedList<DbEntity>();
for (DbEntity entity : existing.getDbEntities()) {
- if (filtersConfig.filter(DbPath.build(entity)).tableFilter().isInclude(entity)) {
+ if (filtersConfig.tableFilter(entity.getCatalog(), entity.getSchema()).isIncludeTable(entity.getName()) != null) {
existingFiltered.add(entity);
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
index 7355740..e002db5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.access;
import java.sql.Types;
import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -43,6 +44,7 @@ import org.apache.cayenne.unit.di.server.CayenneProjects;
import org.apache.cayenne.unit.di.server.ServerCase;
import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.apache.commons.lang3.tuple.Pair;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -104,15 +106,15 @@ public class DbLoaderIT extends ServerCase {
String tableLabel = adapter.tableTypeForTable();
- Collection<DbEntity> tables = loader.getTables(new DbLoaderConfiguration(), new String[] { tableLabel })
+ Collection<Pair<DbEntity, PatternFilter>> tables = loader.getTables(new DbLoaderConfiguration(), new String[] { tableLabel })
.values().iterator().next().values();
assertNotNull(tables);
boolean foundArtist = false;
- for (DbEntity table : tables) {
- if ("ARTIST".equalsIgnoreCase(table.getName())) {
+ for (Pair<DbEntity, PatternFilter> table : tables) {
+ if ("ARTIST".equalsIgnoreCase(table.getKey().getName())) {
foundArtist = true;
break;
}
@@ -127,9 +129,9 @@ public class DbLoaderIT extends ServerCase {
DbLoaderConfiguration config = new DbLoaderConfiguration();
config.setFiltersConfig(
FiltersConfig.create("WRONG", null, TableFilter.everything(), PatternFilter.INCLUDE_NOTHING));
- Map<DbEntity, PatternFilter> tables = loader.getTables(
+ Map<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> tables = loader.getTables(
config,
- new String[]{ adapter.tableTypeForTable()});
+ new String[]{adapter.tableTypeForTable()});
assertNotNull(tables);
assertTrue(tables.isEmpty());
@@ -141,9 +143,9 @@ public class DbLoaderIT extends ServerCase {
DbLoaderConfiguration config = new DbLoaderConfiguration();
config.setFiltersConfig(
FiltersConfig.create(null, "WRONG", TableFilter.everything(), PatternFilter.INCLUDE_NOTHING));
- Map<DbEntity, PatternFilter> tables = loader.getTables(
+ Map<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> tables = loader.getTables(
config,
- new String[]{ adapter.tableTypeForTable()});
+ new String[]{adapter.tableTypeForTable()});
assertNotNull(tables);
assertTrue(tables.isEmpty());
@@ -157,7 +159,7 @@ public class DbLoaderIT extends ServerCase {
loader.setCreatingMeaningfulPK(true);
- Map<DbEntity, PatternFilter> testLoader = loader.getTables(CONFIG, tableLabel);
+ Map<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> testLoader = loader.getTables(CONFIG, tableLabel);
if (testLoader.isEmpty()) {
testLoader = loader.getTables(CONFIG, tableLabel);
}
@@ -191,7 +193,7 @@ public class DbLoaderIT extends ServerCase {
String tableLabel = adapter.tableTypeForTable();
// *** TESTING THIS ***
- List<DbEntity> entities = loader.loadDbEntities(map, loader.getTables(CONFIG, new String[]{tableLabel}), CONFIG);
+ List<DbEntity> entities = loader.loadDbEntities(map, CONFIG, loader.getTables(CONFIG, new String[]{tableLabel}));
assertDbEntities(map);
@@ -200,12 +202,14 @@ public class DbLoaderIT extends ServerCase {
}
// *** TESTING THIS ***
- HashMap<DbPath, Map<String, DbEntity>> tables = new HashMap<DbPath, Map<String, DbEntity>>();
- HashMap<String, DbEntity> value = new HashMap<String, DbEntity>();
+ Map<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>> tables =
+ new HashMap<Pair<String, String>, Map<String, Pair<DbEntity, PatternFilter>>>();
+
+ Map<String, Pair<DbEntity, PatternFilter>> value = new HashMap<String, Pair<DbEntity, PatternFilter>>();
for (DbEntity e : entities) {
- value.put(e.getName(), e);
+ value.put(e.getName(), Pair.of(e, PatternFilter.INCLUDE_EVERYTHING));
}
- tables.put(new DbPath(), value);
+ tables.put(Pair.of((String) null, (String) null), value);
loader.loadDbRelationships(CONFIG, tables);
if (supportsFK) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
index f7a2d21..266bb69 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
@@ -18,21 +18,19 @@
****************************************************************/
package org.apache.cayenne.merge;
-import static org.apache.cayenne.access.loader.filters.FilterFactory.*;
import static org.junit.Assert.assertEquals;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.loader.DbLoaderConfiguration;
-import org.apache.cayenne.access.loader.filters.DbPath;
-import org.apache.cayenne.access.loader.filters.EntityFilters;
import org.apache.cayenne.access.loader.filters.FiltersConfig;
+import org.apache.cayenne.access.loader.filters.PatternFilter;
+import org.apache.cayenne.access.loader.filters.TableFilter;
import org.apache.cayenne.configuration.server.ServerRuntime;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.di.Inject;
@@ -107,7 +105,8 @@ public abstract class MergeCase extends ServerCase {
protected List<MergerToken> createMergeTokens() {
DbLoaderConfiguration loaderConfiguration = new DbLoaderConfiguration();
- loaderConfiguration.setFiltersConfig(new FiltersConfig(new EntityFilters(DbPath.EMPTY, include("ARTIST|GALLERY|PAINTING|NEW_TABLE2?"), TRUE, NULL)));
+ loaderConfiguration.setFiltersConfig(FiltersConfig.create(null, null,
+ TableFilter.include("ARTIST|GALLERY|PAINTING|NEW_TABLE2?"), PatternFilter.INCLUDE_NOTHING));
return createMerger(node.getAdapter().mergerFactory())
.createMergeTokens(node.getDataSource(), node.getAdapter(), map, loaderConfiguration);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/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 7ff45ea..ebbb7e8 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
@@ -21,6 +21,9 @@ package org.apache.cayenne.tools;
import java.io.File;
import org.apache.cayenne.access.loader.filters.OldFilterConfigBridge;
+import org.apache.cayenne.configuration.DataNodeDescriptor;
+import org.apache.cayenne.configuration.server.DataSourceFactory;
+import org.apache.cayenne.configuration.server.DbAdapterFactory;
import org.apache.cayenne.conn.DataSourceInfo;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.di.DIBootstrap;
@@ -47,7 +50,6 @@ import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import javax.sql.DataSource;
-import java.io.File;
public class DbImporterTask extends Task {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilder.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilder.java
index ac16fb3..b26c9e6 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilder.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilder.java
@@ -175,8 +175,8 @@ public final class FiltersConfigBuilder {
private void compactSchemas() {
for (Catalog catalog : engineering.getCatalogs()) {
catalog.getSchemas().addAll(engineering.getSchemas());
- engineering.setSchemas(null);
}
+ engineering.setSchemas(null);
}
private void compactProcedureFilter() {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilderTest.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilderTest.java b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilderTest.java
index 0e723e0..e3086a7 100644
--- a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilderTest.java
+++ b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/config/FiltersConfigBuilderTest.java
@@ -76,11 +76,11 @@ public class FiltersConfigBuilderTest {
" ExcludeTable: table2\n", engineering.toString());
}
-
@Test
public void testCompact_03() {
ReverseEngineering engineering = new ReverseEngineering();
- engineering.addCatalog(new Catalog("APP"));
+ engineering.addCatalog(new Catalog("APP1"));
+ engineering.addCatalog(new Catalog("APP2"));
engineering.addExcludeTable(new ExcludeTable("SYS_.*"));
engineering.addExcludeColumn(new ExcludeColumn("calculated_.*"));
@@ -89,7 +89,12 @@ public class FiltersConfigBuilderTest {
builder.compact();
assertEquals(
"ReverseEngineering: \n" +
- " Catalog: APP\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" +
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/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 caf0e4d..5d24a59 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
@@ -31,6 +31,7 @@ import org.apache.cayenne.configuration.event.DataMapEvent;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.event.EntityEvent;
import org.apache.cayenne.map.event.MapEvent;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java
index 8a195a6..4ca2190 100644
--- a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java
+++ b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java
@@ -18,19 +18,20 @@
****************************************************************/
package org.apache.cayenne.tools;
-import static org.apache.cayenne.access.loader.filters.FilterFactory.NULL;
-import static org.apache.cayenne.access.loader.filters.FilterFactory.exclude;
import static org.apache.cayenne.tools.dbimport.config.DefaultReverseEngineeringLoaderTest.*;
-import org.apache.cayenne.access.loader.filters.DbPath;
-import org.apache.cayenne.access.loader.filters.EntityFilters;
import org.apache.cayenne.access.loader.filters.FiltersConfig;
+import org.apache.cayenne.access.loader.filters.IncludeTableFilter;
+import org.apache.cayenne.access.loader.filters.PatternFilter;
+import org.apache.cayenne.access.loader.filters.TableFilter;
import org.apache.cayenne.tools.dbimport.DbImportConfiguration;
import org.apache.cayenne.tools.dbimport.config.Schema;
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
import org.junit.Test;
import java.util.Collections;
+import java.util.TreeSet;
+import java.util.regex.Pattern;
public class DbImporterMojoConfigurationTest extends AbstractMojoTestCase {
@@ -52,11 +53,14 @@ public class DbImporterMojoConfigurationTest extends AbstractMojoTestCase {
FiltersConfig filters = getCdbImport("pom-schema-2.xml").toParameters()
.getDbLoaderConfig().getFiltersConfig();
- DbPath path = new DbPath(null, "NHL_STATS");
- assertEquals(Collections.singletonList(path), filters.getDbPaths());
+ TreeSet<IncludeTableFilter> includes = new TreeSet<IncludeTableFilter>();
+ includes.add(new IncludeTableFilter(null, new PatternFilter().exclude("^ETL_.*")));
- EntityFilters filter = filters.filter(path);
- assertEquals(filter, new EntityFilters(path, exclude("^ETL_.*"), exclude("^ETL_.*"), NULL));
+ TreeSet<Pattern> excludes = new TreeSet<Pattern>(PatternFilter.PATTERN_COMPARATOR);
+ excludes.add(PatternFilter.pattern("^ETL_.*"));
+
+ assertEquals(filters.tableFilter(null, "NHL_STATS"),
+ new TableFilter(includes, excludes));
}
@Test
Re: [17/17] cayenne git commit: Merge remote-tracking branch 'apache/master'
Posted by Michael Gentry <mg...@masslight.net>.
No rush, Alex. :-)
One of the limitations of building a framework is we can't rely on nice
things like Apache Commons because we don't want to introduce
version/dependency conflicts in applications that use Cayenne. (I know
I've wanted to plug in a few StringUtils calls several times.)
Thanks,
mrg
On Fri, Apr 24, 2015 at 9:10 AM, Alex Kolonitsky <
akolonitsky@objectstyle.com> wrote:
> I will remove this dependency today.
>
> > On Apr 24, 2015, at 3:27 PM, Michael Gentry <mg...@masslight.net>
> wrote:
> >
> > Looks like org.apache.commons.lang3.tuple.Pair is used in multiple places
> > now, such as in DbLoader:
> >
> > - public Map<DbEntity, PatternFilter> getTables(DbLoaderConfiguration
> > config, String[] types)
> > + public Map<Pair<String, String>, Map<String, Pair<DbEntity,
> > PatternFilter>>> getTables(DbLoaderConfiguration config, String[] types)
> >
> > mrg
> >
> >
> > On Fri, Apr 24, 2015 at 3:52 AM, Andrus Adamchik <andrus@objectstyle.org
> >
> > wrote:
> >
> >> Alex, this change looks suspect. Was it intentional?
> >>
> >>
> >>> On Apr 24, 2015, at 1:13 AM, kolonitsky@apache.org wrote:
> >>>
> >>>
> >>
> http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/pom.xml
> >>> ----------------------------------------------------------------------
> >>> diff --git a/cayenne-server/pom.xml b/cayenne-server/pom.xml
> >>> index d00cd8c..ee4e3c7 100644
> >>> --- a/cayenne-server/pom.xml
> >>> +++ b/cayenne-server/pom.xml
> >>> @@ -48,6 +48,11 @@
> >>> <artifactId>commons-logging</artifactId>
> >>> <scope>compile</scope>
> >>> </dependency>
> >>> + <dependency>
> >>> + <groupId>org.apache.commons</groupId>
> >>> + <artifactId>commons-lang3</artifactId>
> >>> + <version>3.0</version>
> >>> + </dependency>
> >>> <dependency>
> >>> <groupId>org.apache.velocity</groupId>
> >>> <artifactId>velocity</artifactId>
> >>
> >>
>
>
Re: [17/17] cayenne git commit: Merge remote-tracking branch 'apache/master'
Posted by Alex Kolonitsky <ak...@objectstyle.com>.
I will remove this dependency today.
> On Apr 24, 2015, at 3:27 PM, Michael Gentry <mg...@masslight.net> wrote:
>
> Looks like org.apache.commons.lang3.tuple.Pair is used in multiple places
> now, such as in DbLoader:
>
> - public Map<DbEntity, PatternFilter> getTables(DbLoaderConfiguration
> config, String[] types)
> + public Map<Pair<String, String>, Map<String, Pair<DbEntity,
> PatternFilter>>> getTables(DbLoaderConfiguration config, String[] types)
>
> mrg
>
>
> On Fri, Apr 24, 2015 at 3:52 AM, Andrus Adamchik <an...@objectstyle.org>
> wrote:
>
>> Alex, this change looks suspect. Was it intentional?
>>
>>
>>> On Apr 24, 2015, at 1:13 AM, kolonitsky@apache.org wrote:
>>>
>>>
>> http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/pom.xml
>>> ----------------------------------------------------------------------
>>> diff --git a/cayenne-server/pom.xml b/cayenne-server/pom.xml
>>> index d00cd8c..ee4e3c7 100644
>>> --- a/cayenne-server/pom.xml
>>> +++ b/cayenne-server/pom.xml
>>> @@ -48,6 +48,11 @@
>>> <artifactId>commons-logging</artifactId>
>>> <scope>compile</scope>
>>> </dependency>
>>> + <dependency>
>>> + <groupId>org.apache.commons</groupId>
>>> + <artifactId>commons-lang3</artifactId>
>>> + <version>3.0</version>
>>> + </dependency>
>>> <dependency>
>>> <groupId>org.apache.velocity</groupId>
>>> <artifactId>velocity</artifactId>
>>
>>
Re: [17/17] cayenne git commit: Merge remote-tracking branch 'apache/master'
Posted by Michael Gentry <mg...@masslight.net>.
Looks like org.apache.commons.lang3.tuple.Pair is used in multiple places
now, such as in DbLoader:
- public Map<DbEntity, PatternFilter> getTables(DbLoaderConfiguration
config, String[] types)
+ public Map<Pair<String, String>, Map<String, Pair<DbEntity,
PatternFilter>>> getTables(DbLoaderConfiguration config, String[] types)
mrg
On Fri, Apr 24, 2015 at 3:52 AM, Andrus Adamchik <an...@objectstyle.org>
wrote:
> Alex, this change looks suspect. Was it intentional?
>
>
> > On Apr 24, 2015, at 1:13 AM, kolonitsky@apache.org wrote:
> >
> >
> http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/pom.xml
> > ----------------------------------------------------------------------
> > diff --git a/cayenne-server/pom.xml b/cayenne-server/pom.xml
> > index d00cd8c..ee4e3c7 100644
> > --- a/cayenne-server/pom.xml
> > +++ b/cayenne-server/pom.xml
> > @@ -48,6 +48,11 @@
> > <artifactId>commons-logging</artifactId>
> > <scope>compile</scope>
> > </dependency>
> > + <dependency>
> > + <groupId>org.apache.commons</groupId>
> > + <artifactId>commons-lang3</artifactId>
> > + <version>3.0</version>
> > + </dependency>
> > <dependency>
> > <groupId>org.apache.velocity</groupId>
> > <artifactId>velocity</artifactId>
>
>
Re: [17/17] cayenne git commit: Merge remote-tracking branch 'apache/master'
Posted by Andrus Adamchik <an...@objectstyle.org>.
Alex, this change looks suspect. Was it intentional?
> On Apr 24, 2015, at 1:13 AM, kolonitsky@apache.org wrote:
>
> http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c6da92/cayenne-server/pom.xml
> ----------------------------------------------------------------------
> diff --git a/cayenne-server/pom.xml b/cayenne-server/pom.xml
> index d00cd8c..ee4e3c7 100644
> --- a/cayenne-server/pom.xml
> +++ b/cayenne-server/pom.xml
> @@ -48,6 +48,11 @@
> <artifactId>commons-logging</artifactId>
> <scope>compile</scope>
> </dependency>
> + <dependency>
> + <groupId>org.apache.commons</groupId>
> + <artifactId>commons-lang3</artifactId>
> + <version>3.0</version>
> + </dependency>
> <dependency>
> <groupId>org.apache.velocity</groupId>
> <artifactId>velocity</artifactId>