You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by sk...@apache.org on 2016/10/20 14:49:36 UTC

[1/7] cayenne git commit: Revert to the old Reverse Engineering UI style

Repository: cayenne
Updated Branches:
  refs/heads/master f7ad0cc17 -> f72210ccb


http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ModelerDbLoader.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ModelerDbLoader.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ModelerDbLoader.java
deleted file mode 100644
index a6d6d93..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ModelerDbLoader.java
+++ /dev/null
@@ -1,258 +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.modeler.dialog.db;
-
-import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
-import org.apache.cayenne.dbsync.reverse.db.DbLoader;
-import org.apache.cayenne.dbsync.reverse.db.DbLoaderConfiguration;
-import org.apache.cayenne.dbsync.reverse.db.DefaultDbLoaderDelegate;
-import org.apache.cayenne.dbsync.reverse.filters.CatalogFilter;
-import org.apache.cayenne.dbsync.reverse.filters.SchemaFilter;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.Procedure;
-import org.apache.cayenne.modeler.dialog.db.model.DbCatalog;
-import org.apache.cayenne.modeler.dialog.db.model.DbColumn;
-import org.apache.cayenne.modeler.dialog.db.model.DbElement;
-import org.apache.cayenne.modeler.dialog.db.model.DbEntity;
-import org.apache.cayenne.modeler.dialog.db.model.DbModel;
-import org.apache.cayenne.modeler.dialog.db.model.DbProcedure;
-import org.apache.cayenne.modeler.dialog.db.model.DbSchema;
-import org.apache.cayenne.modeler.dialog.pref.TreeEditor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.List;
-import java.util.Map;
-
-// TODO: rewrite this whole thing...
-class ModelerDbLoader extends DbLoader {
-
-    private static final Log LOGGER = LogFactory.getLog(ModelerDbLoader.class);
-
-    private TreeEditor treeEditor;
-    private ReverseEngineeringController reverseEngineeringController;
-
-    public ModelerDbLoader(ReverseEngineeringController reverseEngineeringController, TreeEditor treeEditor, Connection connection) {
-        super(connection,
-                reverseEngineeringController.adapter,
-                new DefaultDbLoaderDelegate(),
-                new DefaultObjectNameGenerator());
-        this.treeEditor = treeEditor;
-        this.reverseEngineeringController = reverseEngineeringController;
-    }
-
-    @Override
-    protected Map<String, Procedure> loadProcedures(DataMap dataMap, DbLoaderConfiguration config) throws SQLException {
-        Map<String, Procedure>  procedures = super.loadProcedures(dataMap, config);
-        addProcedures(procedures);
-        return procedures;
-    }
-
-    @Override
-    protected void loadDbEntities(DataMap dataMap, DbLoaderConfiguration config) throws SQLException {
-
-        LOGGER.info("Schema loading...");
-
-        String[] types = getTableTypes(config);
-
-        boolean isNullDetected = false;
-        for (CatalogFilter catalog : config.getFiltersConfig().getCatalogs()) {
-            for (SchemaFilter schema : catalog.schemas) {
-                if (schema.name == null && catalog.name == null) {
-                    isNullDetected = true;
-                }
-            }
-        }
-        if (isNullDetected) {
-            createIfNull(dataMap, config, types);
-        } else {
-            createIfNotNull(dataMap, config, types);
-        }
-    }
-
-    private void addProcedures(Map<String, Procedure> procedureMap) throws SQLException {
-        DbElement currentDBCatalog;
-        DbElement currentDBSchema;
-        for (Map.Entry<String, Procedure> procedure : procedureMap.entrySet()) {
-            if (supportCatalogs()) {
-                String dbCatalogName = procedure.getValue().getCatalog();
-                DbElement dbCatalog = reverseEngineeringController.dbModel.getExistingElement(dbCatalogName);
-                if (dbCatalog != null) {
-                    currentDBCatalog = dbCatalog;
-                } else {
-                    currentDBCatalog = new DbCatalog(dbCatalogName);
-                    reverseEngineeringController.dbModel.addElement(currentDBCatalog);
-                }
-                if (supportSchemas()) {
-                    String dbSchemaName = procedure.getValue().getSchema();
-                    DbElement dbSchema = currentDBCatalog.getExistingElement(dbSchemaName);
-                    if (dbSchema != null) {
-                        currentDBSchema = dbSchema;
-                    } else {
-                        currentDBSchema = new DbSchema(dbSchemaName);
-                        currentDBCatalog.addElement(currentDBSchema);
-                    }
-                    DbProcedure currentProcedure = new DbProcedure(procedure.getValue().getName());
-                    currentDBSchema.addElement(currentProcedure);
-                } else {
-                    DbProcedure currentProcedure = new DbProcedure(procedure.getValue().getName());
-                    currentDBCatalog.addElement(currentProcedure);
-                }
-            } else if (supportSchemas()) {
-                String dbSchemaName = procedure.getValue().getSchema();
-                DbElement dbSchema = reverseEngineeringController.dbModel.getExistingElement(dbSchemaName);
-                if (dbSchema != null) {
-                    currentDBSchema = dbSchema;
-                } else {
-                    currentDBSchema = new DbSchema(dbSchemaName);
-                    reverseEngineeringController.dbModel.addElement(currentDBSchema);
-                }
-                DbProcedure currentProcedure = new DbProcedure(procedure.getValue().getName());
-                currentDBSchema.addElement(currentProcedure);
-            }
-        }
-    }
-
-    private void createIfNotNull(DataMap dataMap, DbLoaderConfiguration config,
-                                 String[] types) throws SQLException {
-        treeEditor.setRoot(reverseEngineeringController.dataSourceKey);
-        reverseEngineeringController.dbModel = new DbModel(reverseEngineeringController.dataSourceKey);
-        boolean catalogSetted = false;
-        DbElement currentDBCatalog = null;
-        DbElement currentDBSchema = null;
-
-        for (CatalogFilter catalog : config.getFiltersConfig().getCatalogs()) {
-            for (SchemaFilter schema : catalog.schemas) {
-                List<org.apache.cayenne.map.DbEntity> entityList =
-                        createTableLoader(catalog.name, schema.name, schema.tables)
-                                .loadDbEntities(dataMap, config, types);
-                org.apache.cayenne.map.DbEntity entityFromLoader = entityList.get(0);
-
-                if (entityFromLoader != null) {
-                    if (!catalogSetted && entityFromLoader.getCatalog() != null) {
-                        currentDBCatalog = new DbCatalog(entityFromLoader.getCatalog());
-                        reverseEngineeringController.dbModel.addElement(currentDBCatalog);
-                        catalogSetted = true;
-                    }
-
-                    if (entityFromLoader.getSchema() != null) {
-                        currentDBSchema = new DbSchema(entityFromLoader.getSchema());
-                        if (currentDBCatalog != null) {
-                            currentDBCatalog.addElement(currentDBSchema);
-                        } else {
-                            reverseEngineeringController.dbModel.addElement(currentDBSchema);
-                        }
-                    }
-                }
-
-                DbEntity currentDBEntity;
-                if (currentDBSchema != null) {
-                    for (org.apache.cayenne.map.DbEntity dbEntity : entityList) {
-                        currentDBEntity = new DbEntity(dbEntity.getName());
-                        currentDBSchema.addElement(currentDBEntity);
-                        for (DbAttribute dbColumn : dbEntity.getAttributes()) {
-                            currentDBEntity.addElement(new DbColumn(dbColumn.getName()));
-                        }
-                    }
-                } else {
-                    for (org.apache.cayenne.map.DbEntity dbEntity : entityList) {
-                        currentDBEntity = new DbEntity(dbEntity.getName());
-                        for (DbAttribute dbColumn : dbEntity.getAttributes()) {
-                            currentDBEntity.addElement(new DbColumn(dbColumn.getName()));
-                        }
-                        currentDBCatalog.addElement(currentDBEntity);
-                    }
-                }
-                currentDBSchema = null;
-            }
-            catalogSetted = false;
-            currentDBCatalog = null;
-        }
-    }
-
-    private void createIfNull(DataMap dataMap, DbLoaderConfiguration config,
-                              String[] types) throws SQLException {
-
-        treeEditor.setRoot(reverseEngineeringController.dataSourceKey);
-        reverseEngineeringController.dbModel = new DbModel(reverseEngineeringController.dataSourceKey);
-        DbElement currentDBCatalog;
-        DbElement currentDBSchema;
-
-        for (CatalogFilter catalog : config.getFiltersConfig().getCatalogs()) {
-            for (SchemaFilter schema : catalog.schemas) {
-                List<org.apache.cayenne.map.DbEntity> entityList =
-                        createTableLoader(catalog.name, schema.name, schema.tables)
-                                .loadDbEntities(dataMap, config, types);
-
-                for (org.apache.cayenne.map.DbEntity dbEntity : entityList) {
-                    if (supportCatalogs()) {
-                        String dbCatalogName = dbEntity.getCatalog();
-                        DbElement dbCatalog = reverseEngineeringController.dbModel.getExistingElement(dbCatalogName);
-                        if (dbCatalog != null) {
-                            currentDBCatalog = dbCatalog;
-                        } else {
-                            currentDBCatalog = new DbCatalog(dbCatalogName);
-                            reverseEngineeringController.dbModel.addElement(currentDBCatalog);
-                        }
-                        if (supportSchemas()) {
-                            String dbSchemaName = dbEntity.getSchema();
-                            DbElement dbSchema = currentDBCatalog.getExistingElement(dbSchemaName);
-                            if (dbSchema != null) {
-                                currentDBSchema = dbSchema;
-                            } else {
-                                currentDBSchema = new DbSchema(dbSchemaName);
-                                currentDBCatalog.addElement(currentDBSchema);
-                            }
-                            DbEntity currentDBEntity = new DbEntity(dbEntity.getName());
-                            currentDBSchema.addElement(currentDBEntity);
-                            for (DbAttribute dbColumn : dbEntity.getAttributes()) {
-                                currentDBEntity.addElement(new DbColumn(dbColumn.getName()));
-                            }
-                        } else {
-                            DbEntity currentDBEntity = new DbEntity(dbEntity.getName());
-                            currentDBCatalog.addElement(currentDBEntity);
-                            for (DbAttribute dbColumn : dbEntity.getAttributes()) {
-                                currentDBEntity.addElement(new DbColumn(dbColumn.getName()));
-                            }
-                        }
-                    } else {
-                        if (supportSchemas()) {
-                            String dbSchemaName = dbEntity.getSchema();
-                            DbElement dbSchema = reverseEngineeringController.dbModel.getExistingElement(dbSchemaName);
-                            if (dbSchema != null) {
-                                currentDBSchema = dbSchema;
-                            } else {
-                                currentDBSchema = new DbSchema(dbSchemaName);
-                                reverseEngineeringController.dbModel.addElement(currentDBSchema);
-                            }
-                            DbEntity currentDBEntity = new DbEntity(dbEntity.getName());
-                            currentDBSchema.addElement(currentDBEntity);
-                            for (DbAttribute dbColumn : dbEntity.getAttributes()) {
-                                currentDBEntity.addElement(new DbColumn(dbColumn.getName()));
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/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
deleted file mode 100644
index 38ac5f0..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringController.java
+++ /dev/null
@@ -1,243 +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.modeler.dialog.db;
-
-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.filters.FiltersConfigBuilder;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.modeler.ClassLoadingService;
-import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.dialog.db.model.DbModel;
-import org.apache.cayenne.modeler.dialog.pref.PreferenceDialog;
-import org.apache.cayenne.modeler.dialog.pref.TreeEditor;
-import org.apache.cayenne.modeler.dialog.pref.XMLFileEditor;
-import org.apache.cayenne.modeler.pref.DBConnectionInfo;
-import org.apache.cayenne.modeler.util.CayenneController;
-import org.apache.cayenne.swing.BindingBuilder;
-import org.apache.cayenne.swing.ObjectBinding;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.sql.DataSource;
-import javax.swing.*;
-import java.awt.*;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * A component for performing reverse engineering. Users can choose required dataMap and execute
- * reverse engineering. Also they can see tree view of db objects clicking on sync button.
- */
-public class ReverseEngineeringController extends CayenneController {
-
-    private static Log LOGGER = LogFactory.getLog(ReverseEngineeringController.class);
-
-    protected ProjectController projectController;
-    protected ReverseEngineeringView view;
-    protected Map<String, DataMapViewModel> reverseEngineeringMap;
-    protected DbModel dbModel;
-
-    protected DataSource dataSource;
-    protected DbAdapter adapter;
-
-    protected DBConnectionInfo connectionInfo;
-    protected ObjectBinding dataSourceBinding;
-    protected Map dataSources;
-    protected String dataSourceKey;
-    protected boolean canceled;
-
-    public ReverseEngineeringController(ProjectController controller,
-                                        ReverseEngineeringView source) {
-        super(controller);
-        this.projectController = controller;
-        this.view = source;
-
-        this.connectionInfo = new DBConnectionInfo();
-        this.reverseEngineeringMap = view.getReverseEngineeringViewMap();
-        initBindings();
-        refreshDataSources();
-    }
-
-    protected void initBindings() {
-        BindingBuilder builder = new BindingBuilder(getApplication().getBindingFactory(), this);
-
-        dataSourceBinding = builder.bindToComboSelection(view.getDataSources(), "dataSourceKey");
-
-        builder.bindToAction(view.getSyncButton(), "syncAction()");
-        builder.bindToAction(view.getExecuteButton(), "executeAction()");
-        builder.bindToAction(view.getConfigButton(), "dataSourceConfigAction()");
-    }
-
-    private void buildDBProperties() throws Exception {
-        ClassLoadingService classLoader = getApplication().getClassLoadingService();
-
-        this.dataSource = connectionInfo.makeDataSource(classLoader);
-        this.adapter = connectionInfo.makeAdapter(classLoader);
-    }
-
-    public void syncAction() throws SQLException {
-        final TreeEditor treeEditor = view.getTreeEditor();
-        XMLFileEditor xmlFileEditor = view.getXmlFileEditor();
-        xmlFileEditor.removeAlertMessage();
-        try {
-            buildDBProperties();
-
-            ReverseEngineering reverseEngineering = xmlFileEditor.convertTextIntoReverseEngineering();
-
-            FiltersConfigBuilder filtersConfigBuilder = new FiltersConfigBuilder(reverseEngineering);
-            DbLoaderConfiguration dbLoaderConfiguration = new DbLoaderConfiguration();
-            dbLoaderConfiguration.setFiltersConfig(filtersConfigBuilder.build());
-
-            try(Connection connection = dataSource.getConnection()) {
-                DbLoader dbLoader = new ModelerDbLoader(this, treeEditor, connection);
-
-                // TODO: counterintuitive... we never use the DataMap that we loaded...
-                dbLoader.load(new DataMap(), dbLoaderConfiguration);
-            }
-
-            String mapName = projectController.getCurrentDataMap().getName();
-
-            DataMapViewModel dataMapViewModel = new DataMapViewModel();
-            dataMapViewModel.setReverseEngineeringTree(dbModel);
-            dataMapViewModel.setReverseEngineeringText(xmlFileEditor.getView().getEditorPane().getText());
-            reverseEngineeringMap.put(mapName, dataMapViewModel);
-            treeEditor.convertTreeViewIntoTreeNode(dbModel);
-        } catch (Exception e) {
-            xmlFileEditor.addAlertMessage(e.getMessage());
-        }
-    }
-
-    public void executeAction() {
-        XMLFileEditor xmlFileEditor = view.getXmlFileEditor();
-        xmlFileEditor.removeAlertMessage();
-        try {
-            buildDBProperties();
-
-            final ReverseEngineering reverseEngineering = xmlFileEditor.convertTextIntoReverseEngineering();
-
-            Thread th = new Thread(new Runnable() {
-
-                public void run() {
-
-                    try(Connection connection = dataSource.getConnection()) {
-                        new DbLoaderHelper(
-                                projectController,
-                                connection,
-                                adapter,
-                                connectionInfo, reverseEngineering).execute();
-                    }
-                    catch (SQLException e) {
-                        LOGGER.warn("Error on execute", e);
-                    }
-
-                    SwingUtilities.invokeLater(new Runnable() {
-
-                        public void run() {
-                            application.getUndoManager().discardAllEdits();
-                        }
-                    });
-                }
-            });
-
-            th.start();
-            view.setTempDataMap(projectController.getCurrentDataMap());
-        } catch (Exception e) {
-            xmlFileEditor.addAlertMessage(e.getMessage());
-        }
-    }
-
-    /**
-     * Returns configured DbAdapter.
-     */
-    public DbAdapter getAdapter() {
-        return adapter;
-    }
-
-
-    public String getDataSourceKey() {
-        return dataSourceKey;
-    }
-
-    public void setDataSourceKey(String dataSourceKey) {
-        XMLFileEditor xmlFileEditor = view.getXmlFileEditor();
-        xmlFileEditor.removeAlertMessage();
-
-        this.dataSourceKey = dataSourceKey;
-
-        DBConnectionInfo currentInfo = (DBConnectionInfo) dataSources.get(dataSourceKey);
-        if (currentInfo != null) {
-            currentInfo.copyTo(connectionInfo);
-        } else {
-            connectionInfo = new DBConnectionInfo();
-        }
-    }
-
-    /**
-     * Opens preferences panel to allow configuration of DataSource presets.
-     */
-    public void dataSourceConfigAction() {
-        PreferenceDialog prefs = new PreferenceDialog(this);
-        prefs.showDataSourceEditorAction(dataSourceKey);
-        refreshDataSources();
-    }
-
-    public Component getView() {
-        return view;
-    }
-
-    protected void refreshDataSources() {
-        this.dataSources = getApplication().getCayenneProjectPreferences().getDetailObject(DBConnectionInfo.class)
-                .getChildrenPreferences();
-
-        // 1.2 migration fix - update data source adapter names
-        Iterator it = dataSources.values().iterator();
-
-        final String _12package = "org.objectstyle.cayenne.";
-        while (it.hasNext()) {
-            DBConnectionInfo info = (DBConnectionInfo) it.next();
-            if (info.getDbAdapter() != null && info.getDbAdapter().startsWith(_12package)) {
-                info.setDbAdapter("org.apache.cayenne." + info.getDbAdapter().substring(_12package.length()));
-            }
-        }
-
-        Object[] keys = dataSources.keySet().toArray();
-        Arrays.sort(keys);
-        view.getDataSources().setModel(new DefaultComboBoxModel(keys));
-
-        if (dataSources.isEmpty()) {
-            dataSourceKey = null;
-        }
-        String key = null;
-        if (keys.length > 0) {
-            key = keys[0].toString();
-        }
-        setDataSourceKey(key);
-
-        if (getDataSourceKey() == null) {
-            dataSourceBinding.updateView();
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringScrollPane.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringScrollPane.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringScrollPane.java
deleted file mode 100644
index bc8c466..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringScrollPane.java
+++ /dev/null
@@ -1,34 +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.modeler.dialog.db;
-
-import javax.swing.JScrollPane;
-
-/**
- * @since 4.0
- */
-public class ReverseEngineeringScrollPane extends JScrollPane {
-
-    private ReverseEngineeringView reverseEngineeringView;
-
-    public ReverseEngineeringScrollPane(ReverseEngineeringView reverseEngineeringView) {
-        super(reverseEngineeringView);
-        this.reverseEngineeringView = reverseEngineeringView;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringView.java
deleted file mode 100644
index 917c50a..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ReverseEngineeringView.java
+++ /dev/null
@@ -1,281 +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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.modeler.dialog.db;
-
-import com.jgoodies.forms.builder.PanelBuilder;
-import com.jgoodies.forms.layout.CellConstraints;
-import com.jgoodies.forms.layout.FormLayout;
-import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.dbimport.ReverseEngineering;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.modeler.CayenneModelerController;
-import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.dialog.db.model.DbModel;
-import org.apache.cayenne.modeler.dialog.pref.TreeEditor;
-import org.apache.cayenne.modeler.dialog.pref.XMLFileEditor;
-import org.apache.cayenne.modeler.event.DataMapDisplayEvent;
-import org.apache.cayenne.modeler.event.DataMapDisplayListener;
-import org.apache.cayenne.modeler.util.ModelerUtil;
-
-import javax.swing.BorderFactory;
-import javax.swing.Icon;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import java.awt.BorderLayout;
-import java.awt.FlowLayout;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- */
-public class ReverseEngineeringView extends JPanel {
-
-    private static final String CONFIGURATION_TEMPLATE =
-            "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
-                    "<reverseEngineering\n" +
-                    "       xmlns=\"http://cayenne.apache.org/schema/8/reverseEngineering\"\n" +
-                    "       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
-                    "       xsi:schemaLocation=\"http://cayenne.apache.org/schema/8/reverseEngineering " +
-                    "http://cayenne.apache.org/schema/8/reverseEngineering.xsd\">\n" +
-                    "\n" +
-                    "    <skipRelationshipsLoading>false</skipRelationshipsLoading>\n" +
-                    "    <skipPrimaryKeyLoading>false</skipPrimaryKeyLoading>\n" +
-                    "\n" +
-                    "    <catalog>\n" +
-                    "        <schema>\n" +
-                    "            <includeTable>\n" +
-                    "            </includeTable>\n" +
-                    "        </schema>\n" +
-                    "    </catalog>\n" +
-                    "    <includeProcedure pattern=\".*\"/>\n" +
-                    "</reverseEngineering>";
-
-    protected ProjectController controller;
-    protected ReverseEngineeringController reverseEngineeringController;
-    protected JPanel reverseEngineering;
-
-    protected JComboBox dataSources;
-    protected JButton configButton;
-    protected JButton syncButton;
-    protected JButton executeButton;
-
-    protected PanelBuilder builder;
-    protected JSplitPane splitPane;
-    protected JLabel xmlLabel;
-    protected JLabel treeLabel;
-    protected Icon icon;
-
-    protected XMLFileEditor xmlFileEditor;
-    protected TreeEditor treeEditor;
-
-    protected DataMap tempDataMap;
-
-    protected Map<String, DataMapViewModel> reverseEngineeringViewMap;
-
-    public ReverseEngineeringView(ProjectController controller) {
-        this.controller = controller;
-
-        this.reverseEngineeringViewMap = new HashMap<>();
-        initView();
-        initController();
-    }
-
-    private void initView() {
-        this.reverseEngineering = new JPanel();
-        this.dataSources = new JComboBox();
-        this.splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true);
-        this.configButton = new JButton("...");
-        this.configButton.setToolTipText("configure local DataSource");
-        this.syncButton = new JButton();
-        this.icon = ModelerUtil.buildIcon("icon-refresh.png");
-        this.syncButton.setIcon(icon);
-        this.syncButton.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
-        this.executeButton = new JButton("Execute");
-        this.treeLabel = new JLabel("Preview");
-        this.xmlLabel = new JLabel("Reverse Engineering XML Editor");
-        this.treeLabel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5));
-        this.xmlLabel.setBorder(BorderFactory.createEmptyBorder(5, 5, 10, 5));
-
-        this.treeEditor = new TreeEditor(controller);
-        this.xmlFileEditor = new XMLFileEditor(controller);
-
-        CellConstraints cc = new CellConstraints();
-        this.builder = new PanelBuilder(new FormLayout(
-                "210dlu:grow, pref, 0dlu, fill:max(172dlu;pref), 3dlu, fill:20dlu",
-                "p"));
-        builder.setDefaultDialogBorder();
-        builder.add(dataSources, cc.xy(4, 1));
-        builder.add(configButton, cc.xy(6, 1));
-
-        JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT));
-        buttons.add(executeButton);
-
-        JPanel treeHeaderComponent = new JPanel(new FlowLayout(FlowLayout.LEFT));
-        treeHeaderComponent.add(treeLabel);
-        treeHeaderComponent.add(syncButton);
-
-        JPanel leftComponent = new JPanel();
-        leftComponent.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
-        leftComponent.setLayout(new BorderLayout());
-        leftComponent.add(xmlLabel, BorderLayout.NORTH);
-        leftComponent.add(xmlFileEditor.getView().getScrollPane(), BorderLayout.CENTER);
-
-        JPanel rightComponent = new JPanel();
-        rightComponent.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5));
-        rightComponent.setLayout(new BorderLayout());
-        rightComponent.add(treeHeaderComponent, BorderLayout.NORTH);
-        rightComponent.add(treeEditor.getView().getScrollPane(), BorderLayout.CENTER);
-
-        splitPane.setLeftComponent(leftComponent);
-        splitPane.setRightComponent(rightComponent);
-        splitPane.setResizeWeight(0.5);
-
-        JPanel splitWithErrorsPanel = new JPanel();
-        splitWithErrorsPanel.setLayout(new BorderLayout());
-        splitWithErrorsPanel.add(splitPane, BorderLayout.CENTER);
-        xmlFileEditor.getView().getLabel().setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0));
-        splitWithErrorsPanel.add(xmlFileEditor.getView().getLabel(), BorderLayout.SOUTH);
-
-        setLayout(new BorderLayout());
-        add(builder.getPanel(), BorderLayout.NORTH);
-        add(splitWithErrorsPanel, BorderLayout.CENTER);
-        add(buttons, BorderLayout.SOUTH);
-    }
-
-    public void initController() {
-        controller.addDataMapDisplayListener(new DataMapDisplayListener() {
-            public void currentDataMapChanged(DataMapDisplayEvent e) {
-                DataMap map = e.getDataMap();
-
-                if (tempDataMap != null) {
-                    String mapName = tempDataMap.getName();
-                    DataMapViewModel dataMapViewModel = new DataMapViewModel();
-                    String xmlText = xmlFileEditor.getView().getEditorPane().getText();
-                    dataMapViewModel.setReverseEngineeringText(xmlText);
-                    if (reverseEngineeringViewMap.containsKey(mapName)) {
-                        DataMapViewModel dataMapViewPrevious = reverseEngineeringViewMap.get(mapName);
-                        if (dataMapViewPrevious.getReverseEngineeringTree() != null) {
-                            dataMapViewModel.setReverseEngineeringTree(dataMapViewPrevious.getReverseEngineeringTree());
-                        } else {
-                            dataMapViewModel.setReverseEngineeringTree(new DbModel(""));
-                        }
-                    } else {
-                        dataMapViewModel.setReverseEngineeringTree(new DbModel(""));
-                    }
-                    reverseEngineeringViewMap.put(mapName, dataMapViewModel);
-                }
-                tempDataMap = map;
-
-                if (map != null) {
-                    loadPreviousData();
-                    xmlFileEditor.removeAlertMessage();
-                }
-            }
-        });
-
-        this.reverseEngineeringController = new ReverseEngineeringController(controller, this);
-    }
-
-    public void loadPreviousData() {
-        DataMap dataMap = controller.getCurrentDataMap();
-        try {
-            if (dataMap != null) {
-                String reverseEngineeringText = null;
-                if (reverseEngineeringViewMap.containsKey(dataMap.getName())) {
-                    reverseEngineeringText = reverseEngineeringViewMap
-                            .get(dataMap.getName()).getReverseEngineeringText();
-                }
-                if (reverseEngineeringText != null) {
-                    xmlFileEditor.getView().getEditorPane().setText(reverseEngineeringText);
-                } else {
-                    if (dataMap.getReverseEngineering() == null) {
-                        getXmlFileEditor().getView().getEditorPane().setText(CONFIGURATION_TEMPLATE);
-                    } else {
-                        ReverseEngineering reverseEngineering = dataMap.getReverseEngineering();
-                        if (reverseEngineering.getConfigurationSource() != null) {
-                            xmlFileEditor.getView().getEditorPane()
-                                    .setPage(reverseEngineering.getConfigurationSource().getURL());
-                        }
-                    }
-                }
-
-                if (reverseEngineeringViewMap.containsKey(dataMap.getName())) {
-                    if (reverseEngineeringViewMap.get(dataMap.getName()).getReverseEngineeringTree() != null) {
-                        DbModel loadedPreviousTree = reverseEngineeringViewMap
-                                .get(dataMap.getName()).getReverseEngineeringTree();
-                        treeEditor.convertTreeViewIntoTreeNode(loadedPreviousTree);
-                    } else {
-                        treeEditor.setRoot("");
-                    }
-                } else {
-                    treeEditor.setRoot("");
-                }
-            }
-
-            if (((CayenneModelerController) controller.getParent())
-                    .getEditorView()
-                    .getDataMapView()
-                    .getSelectedIndex() == 1) {
-                ((CayenneModelerController) controller.getParent())
-                        .getEditorView()
-                        .getDataMapView()
-                        .setSelectedIndex(1);
-            }
-        } catch (IOException e) {
-            throw new CayenneRuntimeException("Invalid URL");
-        }
-    }
-
-    public JComboBox getDataSources() {
-        return dataSources;
-    }
-
-    public JButton getConfigButton() {
-        return configButton;
-    }
-
-    public JButton getSyncButton() {
-        return syncButton;
-    }
-
-    public TreeEditor getTreeEditor() {
-        return treeEditor;
-    }
-
-    public XMLFileEditor getXmlFileEditor() {
-        return xmlFileEditor;
-    }
-
-    public JButton getExecuteButton() {
-        return executeButton;
-    }
-
-    public Map<String, DataMapViewModel> getReverseEngineeringViewMap() {
-        return reverseEngineeringViewMap;
-    }
-
-    public void setTempDataMap(DataMap dataMap) {
-        tempDataMap = dataMap;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbCatalog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbCatalog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbCatalog.java
deleted file mode 100644
index 5313ffa..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbCatalog.java
+++ /dev/null
@@ -1,30 +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.modeler.dialog.db.model;
-
-/**
- * @since 4.0
- */
-public class DbCatalog extends DbElement {
-
-    public DbCatalog(String name) {
-        super(name);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbColumn.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbColumn.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbColumn.java
deleted file mode 100644
index a86fa94..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbColumn.java
+++ /dev/null
@@ -1,34 +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.modeler.dialog.db.model;
-
-/**
- * @since 4.0
- */
-public class DbColumn extends DbElement {
-
-    public DbColumn(String name) {
-        super(name);
-    }
-
-    @Override
-    public void addElement(DbElement dbElement) {
-        throw new UnsupportedOperationException();
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbElement.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbElement.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbElement.java
deleted file mode 100644
index fd82cd0..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbElement.java
+++ /dev/null
@@ -1,62 +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.modeler.dialog.db.model;
-
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * @since 4.0
- */
-public abstract class DbElement {
-
-    protected String name;
-    protected List<DbElement> elements;
-
-    public DbElement(String name) {
-        this.name = name;
-        this.elements = new LinkedList<>();
-    }
-
-    public List<DbElement> getElements() {
-        return elements;
-    }
-
-    public DbElement getExistingElement(String name) {
-        for (DbElement dbElement : elements) {
-            if (dbElement.name.equals(name)) {
-                return dbElement;
-            }
-        }
-        return null;
-    }
-
-    public void addElement(DbElement dbElement) {
-        elements.add(dbElement);
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    @Override
-    public String toString() {
-        return name;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbEntity.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbEntity.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbEntity.java
deleted file mode 100644
index 7e5a6d2..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbEntity.java
+++ /dev/null
@@ -1,37 +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.modeler.dialog.db.model;
-
-/**
- * @since 4.0
- */
-public class DbEntity extends DbElement {
-    public DbEntity(String name) {
-        super(name);
-    }
-
-    public void addElement(DbElement dbElement){
-        elements.add(dbElement);
-    }
-
-    @Override
-    public String toString() {
-        return name;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbModel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbModel.java
deleted file mode 100644
index adbd792..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbModel.java
+++ /dev/null
@@ -1,29 +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.modeler.dialog.db.model;
-
-/**
- * @since 4.0
- */
-public class DbModel extends DbElement {
-
-    public DbModel(String name) {
-        super(name);
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbProcedure.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbProcedure.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbProcedure.java
deleted file mode 100644
index f933aba..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbProcedure.java
+++ /dev/null
@@ -1,33 +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.modeler.dialog.db.model;
-
-/**
- * @since 4.0
- */
-public class DbProcedure extends DbElement {
-    public DbProcedure(String name) {
-        super(name);
-    }
-
-    @Override
-    public void addElement(DbElement dbElement) {
-        throw new UnsupportedOperationException();
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbSchema.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbSchema.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbSchema.java
deleted file mode 100644
index d1c2481..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/model/DbSchema.java
+++ /dev/null
@@ -1,29 +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.modeler.dialog.db.model;
-
-/**
- * @since 4.0
- */
-public class DbSchema extends DbElement {
-
-    public DbSchema(String name) {
-        super(name);
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/FilteredTreeCellRenderer.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/FilteredTreeCellRenderer.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/FilteredTreeCellRenderer.java
deleted file mode 100644
index 10c07b2..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/FilteredTreeCellRenderer.java
+++ /dev/null
@@ -1,85 +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.modeler.dialog.pref;
-
-import org.apache.cayenne.modeler.dialog.db.model.DbCatalog;
-import org.apache.cayenne.modeler.dialog.db.model.DbColumn;
-import org.apache.cayenne.modeler.dialog.db.model.DbEntity;
-import org.apache.cayenne.modeler.dialog.db.model.DbProcedure;
-import org.apache.cayenne.modeler.dialog.db.model.DbSchema;
-import org.apache.cayenne.modeler.util.CellRenderers;
-
-import javax.swing.ImageIcon;
-import javax.swing.JTree;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import java.awt.Component;
-
-/**
- * @since 4.0
- */
-public class FilteredTreeCellRenderer extends DefaultTreeCellRenderer {
-
-    @Override
-    public Component getTreeCellRendererComponent(
-            JTree tree,
-            Object value,
-            boolean sel,
-            boolean expanded,
-            boolean leaf,
-            int row,
-            boolean hasFocus) {
-
-        super.getTreeCellRendererComponent(
-                tree, value, sel,
-                expanded, leaf, row,
-                hasFocus);
-        if ((value != null) && (value instanceof DefaultMutableTreeNode)) {
-            Object userObject = ((DefaultMutableTreeNode) value)
-                    .getUserObject();
-            ImageIcon imageIcon = CellRenderers.iconForObject(userObject);
-
-            if (userObject instanceof DbCatalog) {
-                setText(((DbCatalog) userObject).getName());
-                setIcon(imageIcon);
-            }
-
-            if (userObject instanceof DbSchema) {
-                setText(((DbSchema) userObject).getName());
-                setIcon(imageIcon);
-            }
-
-            if (userObject instanceof DbEntity) {
-                setText(((DbEntity) userObject).getName());
-                setIcon(imageIcon);
-            }
-
-            if (userObject instanceof DbColumn) {
-                setText(((DbColumn) userObject).getName());
-                setIcon(imageIcon);
-            }
-
-            if (userObject instanceof DbProcedure) {
-                setText(((DbProcedure) userObject).getName());
-                setIcon(imageIcon);
-            }
-        }
-        return this;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TreeEditor.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TreeEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TreeEditor.java
deleted file mode 100644
index c3afba3..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TreeEditor.java
+++ /dev/null
@@ -1,101 +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.modeler.dialog.pref;
-
-import org.apache.cayenne.modeler.dialog.db.model.DbCatalog;
-import org.apache.cayenne.modeler.dialog.db.model.DbElement;
-import org.apache.cayenne.modeler.dialog.db.model.DbEntity;
-import org.apache.cayenne.modeler.dialog.db.model.DbModel;
-import org.apache.cayenne.modeler.dialog.db.model.DbSchema;
-import org.apache.cayenne.modeler.util.CayenneController;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-
-/**
- * @since 4.0
- */
-public class TreeEditor extends CayenneController {
-    protected TreeView treeView;
-    protected DefaultMutableTreeNode root;
-
-    public TreeEditor(CayenneController parent) {
-        super(parent);
-
-        this.treeView = new TreeView(root);
-    }
-
-    @Override
-    public TreeView getView() {
-        return treeView;
-    }
-
-    public void setRoot(String dataSource) {
-        root = new DefaultMutableTreeNode(dataSource);
-        DefaultTreeModel model = (DefaultTreeModel) treeView.getTree().getModel();
-        model.setRoot(root);
-    }
-
-    public void convertTreeViewIntoTreeNode(DbModel dbModel) {
-        DefaultMutableTreeNode modelNode = new DefaultMutableTreeNode(dbModel);
-        for (DbElement dbElement: dbModel.getElements()) {
-            DefaultMutableTreeNode elementNode = new DefaultMutableTreeNode(dbElement);
-            if (dbElement instanceof DbCatalog) {
-                parseCatalog(dbElement, elementNode);
-            }
-            if (dbElement instanceof DbSchema) {
-                parseSchema(dbElement, elementNode);
-            }
-            modelNode.add(elementNode);
-        }
-        root = modelNode;
-        DefaultTreeModel model = (DefaultTreeModel) treeView.getTree().getModel();
-        model.setRoot(root);
-    }
-
-    public void parseCatalog(DbElement catalog, DefaultMutableTreeNode elementNode) {
-        for (DbElement dbElement: catalog.getElements()) {
-            DefaultMutableTreeNode element = new DefaultMutableTreeNode(dbElement);
-            if (dbElement instanceof DbSchema) {
-                parseSchema(dbElement, element);
-            }
-            if (dbElement instanceof DbEntity){
-                parseEntity(dbElement, element);
-            }
-            elementNode.add(element);
-        }
-    }
-
-    public void parseSchema(DbElement schema, DefaultMutableTreeNode elementNode) {
-        for (DbElement element: schema.getElements()) {
-            DefaultMutableTreeNode entityNode = new DefaultMutableTreeNode(element);
-            if (element instanceof DbEntity) {
-                parseEntity(element, entityNode);
-            }
-            elementNode.add(entityNode);
-        }
-    }
-
-    private void parseEntity(DbElement entity, DefaultMutableTreeNode entityNode) {
-        for (DbElement column: entity.getElements()) {
-            DefaultMutableTreeNode columnNode = new DefaultMutableTreeNode(column);
-            entityNode.add(columnNode);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TreeView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TreeView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TreeView.java
deleted file mode 100644
index f464359..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TreeView.java
+++ /dev/null
@@ -1,56 +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.modeler.dialog.pref;
-
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTree;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.TreeCellRenderer;
-import java.awt.Dimension;
-
-/**
- * @since 4.0
- */
-public class TreeView extends JPanel {
-    protected JTree tree;
-    protected JScrollPane scrollPane;
-
-    public JTree getTree() {
-        return tree;
-    }
-
-    public void setTree(JTree tree) {
-        this.tree = tree;
-    }
-
-    public TreeView(DefaultMutableTreeNode root) {
-        this.tree = new JTree(root);
-
-        TreeCellRenderer renderer = new FilteredTreeCellRenderer();
-        tree.setCellRenderer(renderer);
-
-        scrollPane = new JScrollPane(tree);
-        scrollPane.setPreferredSize(new Dimension(210, 300));
-    }
-
-    public JScrollPane getScrollPane() {
-        return scrollPane;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/XMLFileEditor.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/XMLFileEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/XMLFileEditor.java
deleted file mode 100644
index 920e2ad..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/XMLFileEditor.java
+++ /dev/null
@@ -1,82 +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.modeler.dialog.pref;
-
-import org.apache.cayenne.dbimport.DefaultReverseEngineeringLoader;
-import org.apache.cayenne.dbimport.DefaultReverseEngineeringWriter;
-import org.apache.cayenne.dbimport.ReverseEngineering;
-import org.apache.cayenne.dbimport.ReverseEngineeringLoaderException;
-import org.apache.cayenne.modeler.util.CayenneController;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.nio.charset.StandardCharsets;
-
-/**
- * @since 4.0
- */
-public class XMLFileEditor extends CayenneController {
-    private static final Log LOGGER = LogFactory.getLog(XMLFileEditor.class);
-
-    protected XMLView XMLview;
-
-
-    public XMLFileEditor(CayenneController parent) {
-        super(parent);
-
-        this.XMLview = new XMLView();
-    }
-
-    public ReverseEngineering convertTextIntoReverseEngineering() throws ReverseEngineeringLoaderException {
-        String text = XMLview.getEditorPane().getText();
-        try(InputStream inputStream = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8))) {
-            ReverseEngineering reverseEngineering = (new DefaultReverseEngineeringLoader()).load(inputStream);
-            return reverseEngineering;
-        } catch (IOException e) {
-            addAlertMessage(e.getMessage());
-        }
-        return null;
-    }
-
-    public void convertReverseEngineeringIntoText(ReverseEngineering reverseEngineering) {
-        StringWriter buffer = new StringWriter();
-        PrintWriter writer = new PrintWriter(buffer);
-        DefaultReverseEngineeringWriter reverseEngineeringWriter = new DefaultReverseEngineeringWriter();
-        reverseEngineeringWriter.write(reverseEngineering, writer);
-        XMLview.getEditorPane().setText(buffer.toString());
-    }
-
-    @Override
-    public XMLView getView() {
-        return XMLview;
-    }
-
-    public void addAlertMessage(String message) {
-        XMLview.addAlertMessage(message);
-    }
-
-    public void removeAlertMessage() {
-        XMLview.removeAlertMessage();
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/XMLView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/XMLView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/XMLView.java
deleted file mode 100644
index 8dab6c5..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/XMLView.java
+++ /dev/null
@@ -1,72 +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.modeler.dialog.pref;
-
-
-import javax.swing.JEditorPane;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import java.awt.Color;
-import java.awt.Dimension;
-
-/**
- * @since 4.0
- */
-public class XMLView extends JPanel {
-    protected JEditorPane editorPane;
-    protected JScrollPane scrollPane;
-    protected JLabel label;
-
-    public XMLView() {
-        this.editorPane = new JEditorPane();
-        this.scrollPane = new JScrollPane(editorPane);
-        this.label = new JLabel();
-        this.label.setVisible(false);
-
-        scrollPane = new JScrollPane(editorPane);
-        scrollPane.setPreferredSize(new Dimension(210, 300));
-    }
-
-    public JEditorPane getEditorPane() {
-        return editorPane;
-    }
-
-    public JScrollPane getScrollPane() {
-        return scrollPane;
-    }
-
-    public JLabel getLabel() {
-        return label;
-    }
-
-    public void setLabel(JLabel label) {
-        this.label = label;
-    }
-
-    public void addAlertMessage(String message) {
-        label.setText(message);
-        label.setForeground (Color.red);
-        label.setVisible(true);
-    }
-
-    public void removeAlertMessage() {
-        label.setVisible(false);
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
index 76b842d..16b0694 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
@@ -20,23 +20,16 @@ package org.apache.cayenne.modeler.editor;
 
 import javax.swing.JScrollPane;
 import javax.swing.JTabbedPane;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
 
 import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.dialog.db.ReverseEngineeringScrollPane;
-import org.apache.cayenne.modeler.dialog.db.ReverseEngineeringView;
-
-import java.awt.event.ActionEvent;
 
 
 /**
  * Data map editing tabs container
  *
  */
-public class DataMapTabbedView extends JTabbedPane implements ChangeListener {
+public class DataMapTabbedView extends JTabbedPane {
     ProjectController mediator;
-    private ReverseEngineeringScrollPane reverseEngineeringScrollPane;
 
     /**
      * constructor
@@ -62,18 +55,6 @@ public class DataMapTabbedView extends JTabbedPane implements ChangeListener {
         JScrollPane dataMapView = new JScrollPane(new DataMapView(mediator));
         addTab("DataMap", dataMapView);
 
-        ReverseEngineeringView reverseEngineeringView = new ReverseEngineeringView(mediator);
-        reverseEngineeringScrollPane = new ReverseEngineeringScrollPane(reverseEngineeringView);
-        addTab("Reverse Engineering", reverseEngineeringScrollPane);
-        addChangeListener(this);
-    }
-
-    @Override
-    public void stateChanged(ChangeEvent changeEvent) {
-        if (getSelectedComponent().equals(reverseEngineeringScrollPane)) {
-            ActionEvent actionEvent = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "");
-            actionEvent.setSource(reverseEngineeringScrollPane);
-        }
     }
 }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
index dc57b10..af25a1a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
@@ -46,7 +46,6 @@ import org.apache.cayenne.map.QueryDescriptor;
 import org.apache.cayenne.map.Relationship;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.dialog.db.model.*;
 import org.apache.cayenne.util.CayenneMapEntry;
 
 /**
@@ -121,18 +120,6 @@ public final class CellRenderers {
         else if (object instanceof Embeddable) {
             return embeddableIcon;
         }
-        else if (object instanceof DbColumn) {
-            return attributeIcon;
-        }
-        else if (object instanceof DbProcedure) {
-            return procedureIcon;
-        }
-        else if (object instanceof DbEntity) {
-            return dbEntityIcon;
-        }
-        else if (object instanceof DbCatalog) {
-            return catalogIcon;
-        }
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/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 bce53b6..5cd3478 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
@@ -149,95 +149,29 @@ public class DbImporterMojo extends AbstractMojo {
      */
     private String username;
 
-
-    /**
-     * Flag which defines from where to take the configuration of cdbImport. If
-     * we define the config of cdbImport in pom.xml we should set it to true or
-     * it will be set to true automatically if we define some configuration
-     * parameters in pom.xml. Else it remains default(false) and for cdbImport
-     * we use the configuration defined in signed dataMap
-     *
-     * @parameter isReverseEngineeringDefined="isReverseEngineeringDefined"
-     * default-value="false"
-     */
-    // TODO: get rid of this fork...
-    private boolean isReverseEngineeringDefined = false;
-
-    public void setIsReverseEngineeringDefined(boolean isReverseEngineeringDefined) {
-        this.isReverseEngineeringDefined = isReverseEngineeringDefined;
-    }
-
-    @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
 
         Log logger = new MavenLogger(this);
 
         DbImportConfiguration config = toParameters();
         config.setLogger(logger);
-        File dataMapFile = config.getDataMapFile();
+        Injector injector = DIBootstrap.createInjector(new CayenneDbSyncModule(), new ToolsModule(logger), new DbImportModule());
 
-        if (isReverseEngineeringDefined) {
-            Injector injector = DIBootstrap.createInjector(new CayenneDbSyncModule(), new ToolsModule(logger), new DbImportModule());
+        validateDbImportConfiguration(config, injector);
 
-            validateDbImportConfiguration(config, injector);
-
-            try {
-                injector.getInstance(DbImportAction.class).execute(config);
-            } catch (Exception ex) {
-                Throwable th = Util.unwindException(ex);
-
-                String message = "Error importing database schema";
+        try {
+            injector.getInstance(DbImportAction.class).execute(config);
+        } catch (Exception ex) {
+            Throwable th = Util.unwindException(ex);
 
-                if (th.getLocalizedMessage() != null) {
-                    message += ": " + th.getLocalizedMessage();
-                }
+            String message = "Error importing database schema";
 
-                getLog().error(message);
-                throw new MojoExecutionException(message, th);
-            }
-        } else {
-            if (dataMapFile.exists()) {
-                try {
-                    URL url = dataMapFile.toURI().toURL();
-                    URLResource resource = new URLResource(url);
-
-                    XMLDataMapLoader xmlDataMapLoader = new XMLDataMapLoader();
-                    DataMap dataMap = xmlDataMapLoader.load(resource);
-                    if (dataMap.getReverseEngineering() != null) {
-                        try {
-                            Injector injector = DIBootstrap.createInjector(new CayenneDbSyncModule(), new ToolsModule(logger), new DbImportModule());
-                            ConfigurationNameMapper nameMapper = injector.getInstance(ConfigurationNameMapper.class);
-                            String reverseEngineeringLocation = nameMapper.configurationLocation(ReverseEngineering.class, dataMap.getReverseEngineering().getName());
-                            Resource reverseEngineeringResource = new URLResource(dataMapFile.toURI().toURL()).getRelativeResource(reverseEngineeringLocation);
-
-                            DefaultReverseEngineeringLoader reverseEngineeringLoader = new DefaultReverseEngineeringLoader();
-                            ReverseEngineering reverseEngineering = reverseEngineeringLoader.load(reverseEngineeringResource.getURL().openStream());
-                            reverseEngineering.setName(dataMap.getReverseEngineering().getName());
-                            reverseEngineering.setConfigurationSource(reverseEngineeringResource);
-                            dataMap.setReverseEngineering(reverseEngineering);
-
-                            FiltersConfigBuilder filtersConfigBuilder = new FiltersConfigBuilder(dataMap.getReverseEngineering());
-                            config.getDbLoaderConfig().setFiltersConfig(filtersConfigBuilder.build());
-                            validateDbImportConfiguration(config, injector);
-                            injector.getInstance(DbImportAction.class).execute(config);
-                        } catch (Exception ex) {
-                            Throwable th = Util.unwindException(ex);
-
-                            String message = "Error importing database schema";
-
-                            if (th.getLocalizedMessage() != null) {
-                                message += ": " + th.getLocalizedMessage();
-                            }
-
-                            getLog().error(message);
-                            throw new MojoExecutionException(message, th);
-                        }
-                    }
-                } catch (MalformedURLException e) {
-                    getLog().error(e);
-                    throw new MojoExecutionException(e.getMessage(), e);
-                }
+            if (th.getLocalizedMessage() != null) {
+                message += ": " + th.getLocalizedMessage();
             }
+
+            getLog().error(message);
+            throw new MojoExecutionException(message, th);
         }
     }
 
@@ -310,11 +244,6 @@ public class DbImporterMojo extends AbstractMojo {
     public ReverseEngineering getReverseEngineering() {
         return reverseEngineering;
     }
-
-    public void setReverseEngineering(ReverseEngineering reverseEngineering) {
-        isReverseEngineeringDefined = true;
-        this.reverseEngineering = reverseEngineering;
-    }
 }
 
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
index 3b040f1..d1c0e48 100644
--- a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
+++ b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
@@ -312,7 +312,6 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
         DbImportConfiguration parameters = cdbImport.toParameters();
         prepareDatabase(name, parameters);
 
-        cdbImport.setIsReverseEngineeringDefined(true);
         try {
             cdbImport.execute();
             verifyResult(mapFile, mapFileCopy);


[6/7] cayenne git commit: Upgrade datamap schema version from 8 to 9;

Posted by sk...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/main/resources/org/apache/cayenne/schema/9/modelMap.xsd
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/resources/org/apache/cayenne/schema/9/modelMap.xsd b/cayenne-server/src/main/resources/org/apache/cayenne/schema/9/modelMap.xsd
new file mode 100644
index 0000000..2d40762
--- /dev/null
+++ b/cayenne-server/src/main/resources/org/apache/cayenne/schema/9/modelMap.xsd
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+
+<!--
+	Cayenne entity map schema 
+	Defines format of Cayenne DataMap XML files (*.map.xml).  DataMap files contain
+	the metadata needed for Cayenne object-relational features. Multiple DataMaps
+	are usually combined in one shared namespace, so the elements of the DataMap
+	may reference objects from other DataMaps.
+--> 
+<xs:schema targetNamespace="http://cayenne.apache.org/schema/9/modelMap"
+	xmlns:cay="http://cayenne.apache.org/schema/9/modelMap"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="9">
+	<xs:element name="data-map">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:property"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:embeddable"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:procedure"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:db-entity"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:obj-entity"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:db-relationship"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:obj-relationship"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:query"/>
+			</xs:sequence>
+			<xs:attribute name="project-version" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="db-entity">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element maxOccurs="unbounded" ref="cay:db-attribute"/>
+				<xs:element minOccurs="0" ref="cay:db-key-generator"/>
+				
+				<!-- Qualifier for DB Entity -->
+				<xs:element minOccurs="0" ref="cay:qualifier"/>
+			</xs:sequence>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+			<xs:attribute name="schema" type="xs:string"/>
+			<xs:attribute name="catalog" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="db-attribute">
+		<xs:annotation>
+			<xs:documentation>A database column.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:attribute name="isMandatory" type="xs:boolean"/>
+			<xs:attribute name="isPrimaryKey" type="xs:boolean">
+				<xs:annotation>
+					<xs:documentation>If true, the value of attribute is unique and used as a primary key identifier.</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+			<xs:attribute name="isGenerated" use="optional" type="xs:boolean"/>
+			<xs:attribute name="length" type="xs:integer"/>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+			<xs:attribute name="scale" type="xs:integer"/>
+			<xs:attribute name="type" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="obj-entity">
+		<xs:annotation>
+			<xs:documentation>A persistent Java class managed by Cayenne.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element minOccurs="0" ref="cay:qualifier"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:embedded-attribute"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:obj-attribute"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:attribute-override"/>
+				
+				<!--  Callbacks -->
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-add"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:pre-persist"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-persist"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:pre-update"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-update"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:pre-remove"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-remove"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-load"/>
+			</xs:sequence>
+			<xs:attribute name="className" use="optional" type="xs:string"/>
+			<xs:attribute name="abstract" use="optional" type="xs:string"/>
+			<xs:attribute name="readOnly" use="optional" type="xs:boolean"/>
+			<xs:attribute name="clientClassName" use="optional" type="xs:string"/>
+			<xs:attribute name="clientSuperClassName" use="optional" type="xs:string"/>
+			<xs:attribute name="dbEntityName" use="optional" type="xs:string"/>
+			<xs:attribute name="lock-type" type="xs:string"/>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+			<xs:attribute name="superClassName" use="optional" type="xs:string"/>
+			<xs:attribute name="superEntityName" use="optional" type="xs:string"/>
+			<xs:attribute name="serverOnly" use="optional" type="xs:boolean"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="qualifier" type="xs:string"/>
+
+	<xs:element name="obj-attribute">
+		<xs:complexType>
+			<xs:attribute name="db-attribute-path" use="optional" type="xs:string"/>
+			<xs:attribute name="lock" use="optional" type="xs:boolean"/>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+			<xs:attribute name="type" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="attribute-override">
+		<xs:complexType>
+			<xs:attribute name="db-attribute-path" use="optional" type="xs:string"/>
+			<xs:attribute name="lock" use="optional" type="xs:boolean"/>
+			<xs:attribute name="name" use="optional" type="xs:string"/>
+			<xs:attribute name="type" use="optional" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="db-relationship">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element minOccurs="1" maxOccurs="unbounded" ref="cay:db-attribute-pair"/>
+			</xs:sequence>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+			<xs:attribute name="source" use="required" type="xs:string"/>
+			<xs:attribute name="target" use="required" type="xs:string"/>
+			<xs:attribute name="toDependentPK" type="xs:boolean"/>
+			<xs:attribute name="toMany" use="required" type="xs:boolean"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="db-attribute-pair">
+		<xs:complexType>
+			<xs:attribute name="source" use="required" type="xs:string"/>
+			<xs:attribute name="target" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="obj-relationship">
+		<xs:complexType>
+			<xs:attribute name="db-relationship-path" use="required" type="xs:string"/>
+			<xs:attribute name="deleteRule" type="xs:string"/>
+			<xs:attribute name="lock" type="xs:boolean"/>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+			<xs:attribute name="source" use="required" type="xs:string"/>
+			<xs:attribute name="target" use="required" type="xs:string"/>
+			<xs:attribute name="collection-type" use="optional" type="xs:string"/>
+			<xs:attribute name="map-key" use="optional" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="query">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:property"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:sql"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:ejbql"/>
+				<xs:element name="qualifier" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:ordering"/>
+				<xs:element name="prefetch" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+			</xs:sequence>
+			<xs:attribute name="type" use="required" type="xs:string"/>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+			<xs:attribute name="root" use="optional" type="xs:string"/>
+			<xs:attribute name="root-name" use="optional" type="xs:string"/>
+			<xs:attribute name="result-entity" use="optional" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="ordering">
+		<xs:complexType>
+			<xs:simpleContent>
+				<xs:extension base="xs:string">
+					<xs:attribute name="descending" type="xs:boolean"/>
+					<xs:attribute name="ignore-case" type="xs:boolean"/>
+				</xs:extension>
+			</xs:simpleContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="sql">
+		<xs:annotation>
+			<xs:documentation>Defines arbitrary SQL statement. Note that SQL statement can be customized for different SQL dialects per DbAdapter class. If no adapter-specific statement is found, the one with no adapter label is used by default.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:simpleContent>
+				<xs:extension base="xs:string">
+					<xs:attribute name="adapter-class" type="xs:string"/>
+				</xs:extension>
+			</xs:simpleContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="ejbql" type="xs:string"/>
+
+	<xs:element name="property">
+		<xs:annotation>
+			<xs:documentation>A generic property used by other elements.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+			<xs:attribute name="value" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="embeddable">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="embeddable-attribute" minOccurs="0" maxOccurs="unbounded">
+					<xs:complexType>
+						<xs:attribute name="name" use="required" type="xs:string"/>
+						<xs:attribute name="type" use="required" type="xs:string"/>
+						<xs:attribute name="db-attribute-name" use="required" type="xs:string"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+			<xs:attribute name="className" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="embedded-attribute">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element minOccurs="0" maxOccurs="unbounded"
+					ref="cay:embeddable-attribute-override"/>
+			</xs:sequence>
+			<xs:attribute name="type" use="required" type="xs:string"/>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="embeddable-attribute-override">
+		<xs:complexType>
+			<xs:attribute name="db-attribute-path" use="required" type="xs:string"/>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="procedure">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element minOccurs="0" maxOccurs="unbounded" name="procedure-parameter">
+					<xs:complexType>
+						<xs:attribute name="name" use="required" type="xs:string"/>
+						<xs:attribute name="type" use="required" type="xs:string"/>
+						<xs:attribute name="length" use="optional" type="xs:integer"/>
+						<xs:attribute name="direction" use="required" type="xs:string"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+			<xs:attribute name="name" use="required" type="xs:string"/>
+			<xs:attribute name="schema" type="xs:string"/>
+			<xs:attribute name="catalog" type="xs:string"/>
+			<xs:attribute name="returningValue" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="pre-update">
+		<xs:complexType>
+			<xs:attribute name="method-name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="post-persist">
+		<xs:complexType>
+			<xs:attribute name="method-name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="post-update">
+		<xs:complexType>
+			<xs:attribute name="method-name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="post-add">
+		<xs:complexType>
+			<xs:attribute name="method-name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="pre-persist">
+		<xs:complexType>
+			<xs:attribute name="method-name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="post-remove">
+		<xs:complexType>
+			<xs:attribute name="method-name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="post-load">
+		<xs:complexType>
+			<xs:attribute name="method-name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="pre-remove">
+		<xs:complexType>
+			<xs:attribute name="method-name" use="required" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="db-key-generator">
+		<xs:annotation>
+			<xs:documentation>Used to install the Automatic Sequence/Key Generation facility for db-entity. This feature is intended for use with simple (non-compound) integral primary keys.</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="db-generator-type" type="xs:string">
+					<xs:annotation>
+						<xs:documentation>Specifies the Key Generation Method that will be employed
+      'ORACLE'               - use Oracle's SEQUENCE
+      'NAMED_SEQUENCE_TABLE' - use USER designated SEQUENCE TABLE. User specifies the name of a DBMS Table with the schema (sequence INT) which will be used to hold sequence values (not supported yet)</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+				<xs:element minOccurs="0" name="db-generator-name" type="xs:string">
+					<xs:annotation>
+						<xs:documentation>For db-generator-type ORACLE this is the name of the ORACLE SEQUENCE to use. The SEQUENCE is assumed to already exist in the Database.
+If this is db-generator-type NAMED_SEQUENCE_TABLE Key Generation, this specifies the name of the SEQUENCE TABLE to use. The NAMED_SEQUENCE_TABLE is assumed to already exist in the database.</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+				<xs:element minOccurs="0" name="db-key-cache-size" type="xs:integer">
+					<xs:annotation>
+						<xs:documentation>Size of key cache. For db-generator-type ORACLE , this value MUST match the Oracle SEQUENCE  INCREMENT value.  If there is a mismatch between this value and the Oracle SEQUENCE INCREMENT value, then there will likely be duplicate key problems.
+For db-generator-type NAMED_SEQUENCE_TABLE , this tells how many keys the Container will fetch in a single DBMS call.</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+</xs:schema>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/array-type.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/array-type.map.xml b/cayenne-server/src/test/resources/array-type.map.xml
index dcceed0..8cc8f27 100644
--- a/cayenne-server/src/test/resources/array-type.map.xml
+++ b/cayenne-server/src/test/resources/array-type.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.array_type"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/binary-pk.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/binary-pk.map.xml b/cayenne-server/src/test/resources/binary-pk.map.xml
index b4f6153..cd53ff2 100644
--- a/cayenne-server/src/test/resources/binary-pk.map.xml
+++ b/cayenne-server/src/test/resources/binary-pk.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.binary_pk"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cay743/cayenne-domain.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cay743/cayenne-domain.xml b/cayenne-server/src/test/resources/cay743/cayenne-domain.xml
index 9c80f2a..5909898 100644
--- a/cayenne-server/src/test/resources/cay743/cayenne-domain.xml
+++ b/cayenne-server/src/test/resources/cay743/cayenne-domain.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="map1"/>
 	<map name="map2"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cay743/map1.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cay743/map1.map.xml b/cayenne-server/src/test/resources/cay743/map1.map.xml
index b82860f..d13c6d5 100644
--- a/cayenne-server/src/test/resources/cay743/map1.map.xml
+++ b/cayenne-server/src/test/resources/cay743/map1.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<obj-entity name="Entity11">
 	</obj-entity>
 	<obj-entity name="Entity12" superEntityName="Entity22">

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cay743/map2.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cay743/map2.map.xml b/cayenne-server/src/test/resources/cay743/map2.map.xml
index d635364..43b5d19 100644
--- a/cayenne-server/src/test/resources/cay743/map2.map.xml
+++ b/cayenne-server/src/test/resources/cay743/map2.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<obj-entity name="Entity21" superEntityName="Entity11">
 	</obj-entity>
 	<obj-entity name="Entity22">

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-array-type.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-array-type.xml b/cayenne-server/src/test/resources/cayenne-array-type.xml
index 6b85e55..fdf8c4e 100644
--- a/cayenne-server/src/test/resources/cayenne-array-type.xml
+++ b/cayenne-server/src/test/resources/cayenne-array-type.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="array-type"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-binary-pk.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-binary-pk.xml b/cayenne-server/src/test/resources/cayenne-binary-pk.xml
index 5ca0448..d6d21b2 100644
--- a/cayenne-server/src/test/resources/cayenne-binary-pk.xml
+++ b/cayenne-server/src/test/resources/cayenne-binary-pk.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="binary-pk"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-compound.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-compound.xml b/cayenne-server/src/test/resources/cayenne-compound.xml
index 1dc56a5..b82d21f 100644
--- a/cayenne-server/src/test/resources/cayenne-compound.xml
+++ b/cayenne-server/src/test/resources/cayenne-compound.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="compound"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-date-time.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-date-time.xml b/cayenne-server/src/test/resources/cayenne-date-time.xml
index f8d47d1..3fda070 100644
--- a/cayenne-server/src/test/resources/cayenne-date-time.xml
+++ b/cayenne-server/src/test/resources/cayenne-date-time.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="date-time"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-delete-rules.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-delete-rules.xml b/cayenne-server/src/test/resources/cayenne-delete-rules.xml
index 1d8e159..606e583 100644
--- a/cayenne-server/src/test/resources/cayenne-delete-rules.xml
+++ b/cayenne-server/src/test/resources/cayenne-delete-rules.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="delete-rules"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-embeddable.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-embeddable.xml b/cayenne-server/src/test/resources/cayenne-embeddable.xml
index 32ab708..8aa7459 100644
--- a/cayenne-server/src/test/resources/cayenne-embeddable.xml
+++ b/cayenne-server/src/test/resources/cayenne-embeddable.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="embeddable"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-empty.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-empty.xml b/cayenne-server/src/test/resources/cayenne-empty.xml
index e3ed459..3ee43c4 100644
--- a/cayenne-server/src/test/resources/cayenne-empty.xml
+++ b/cayenne-server/src/test/resources/cayenne-empty.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="empty"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-enum.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-enum.xml b/cayenne-server/src/test/resources/cayenne-enum.xml
index a62ba39..df69b89 100644
--- a/cayenne-server/src/test/resources/cayenne-enum.xml
+++ b/cayenne-server/src/test/resources/cayenne-enum.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="enum"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-extended-type.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-extended-type.xml b/cayenne-server/src/test/resources/cayenne-extended-type.xml
index 71ce19f..6c65720 100644
--- a/cayenne-server/src/test/resources/cayenne-extended-type.xml
+++ b/cayenne-server/src/test/resources/cayenne-extended-type.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="extended-type"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-generated.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-generated.xml b/cayenne-server/src/test/resources/cayenne-generated.xml
index e10820d..a880717 100644
--- a/cayenne-server/src/test/resources/cayenne-generated.xml
+++ b/cayenne-server/src/test/resources/cayenne-generated.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="generated"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-generic.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-generic.xml b/cayenne-server/src/test/resources/cayenne-generic.xml
index 4eaaf7b..7dff2a3 100644
--- a/cayenne-server/src/test/resources/cayenne-generic.xml
+++ b/cayenne-server/src/test/resources/cayenne-generic.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="generic"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-inheritance-single-table1.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-inheritance-single-table1.xml b/cayenne-server/src/test/resources/cayenne-inheritance-single-table1.xml
index 97c6a53..04b98f6 100644
--- a/cayenne-server/src/test/resources/cayenne-inheritance-single-table1.xml
+++ b/cayenne-server/src/test/resources/cayenne-inheritance-single-table1.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="inheritance-single-table1"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-inheritance-vertical.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-inheritance-vertical.xml b/cayenne-server/src/test/resources/cayenne-inheritance-vertical.xml
index 00e60dd..7edce8d 100644
--- a/cayenne-server/src/test/resources/cayenne-inheritance-vertical.xml
+++ b/cayenne-server/src/test/resources/cayenne-inheritance-vertical.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="inheritance-vertical"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-inheritance.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-inheritance.xml b/cayenne-server/src/test/resources/cayenne-inheritance.xml
index f6fea51..818c9b2 100644
--- a/cayenne-server/src/test/resources/cayenne-inheritance.xml
+++ b/cayenne-server/src/test/resources/cayenne-inheritance.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="inheritance"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-lifecycle-callbacks-order.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-lifecycle-callbacks-order.xml b/cayenne-server/src/test/resources/cayenne-lifecycle-callbacks-order.xml
index b9191a4..79900f9 100644
--- a/cayenne-server/src/test/resources/cayenne-lifecycle-callbacks-order.xml
+++ b/cayenne-server/src/test/resources/cayenne-lifecycle-callbacks-order.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="lifecycle-callbacks-order"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-lifecycles.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-lifecycles.xml b/cayenne-server/src/test/resources/cayenne-lifecycles.xml
index bcaa2e3..ba6fc19 100644
--- a/cayenne-server/src/test/resources/cayenne-lifecycles.xml
+++ b/cayenne-server/src/test/resources/cayenne-lifecycles.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="lifecycles"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-lob.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-lob.xml b/cayenne-server/src/test/resources/cayenne-lob.xml
index f575f1b..dde2a47 100644
--- a/cayenne-server/src/test/resources/cayenne-lob.xml
+++ b/cayenne-server/src/test/resources/cayenne-lob.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="lob"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-locking.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-locking.xml b/cayenne-server/src/test/resources/cayenne-locking.xml
index b58f8fd..1d4f2a5 100644
--- a/cayenne-server/src/test/resources/cayenne-locking.xml
+++ b/cayenne-server/src/test/resources/cayenne-locking.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="locking"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-map-to-many.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-map-to-many.xml b/cayenne-server/src/test/resources/cayenne-map-to-many.xml
index f15587b..10709e0 100644
--- a/cayenne-server/src/test/resources/cayenne-map-to-many.xml
+++ b/cayenne-server/src/test/resources/cayenne-map-to-many.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="map-to-many"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-meaningful-pk.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-meaningful-pk.xml b/cayenne-server/src/test/resources/cayenne-meaningful-pk.xml
index 1326169..fe17e9e 100644
--- a/cayenne-server/src/test/resources/cayenne-meaningful-pk.xml
+++ b/cayenne-server/src/test/resources/cayenne-meaningful-pk.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="meaningful-pk"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-misc-types.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-misc-types.xml b/cayenne-server/src/test/resources/cayenne-misc-types.xml
index 4821482..46adeb2 100644
--- a/cayenne-server/src/test/resources/cayenne-misc-types.xml
+++ b/cayenne-server/src/test/resources/cayenne-misc-types.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="misc-types"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-mixed-persistence-strategy.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-mixed-persistence-strategy.xml b/cayenne-server/src/test/resources/cayenne-mixed-persistence-strategy.xml
index b68da04..0723809 100644
--- a/cayenne-server/src/test/resources/cayenne-mixed-persistence-strategy.xml
+++ b/cayenne-server/src/test/resources/cayenne-mixed-persistence-strategy.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="mixed-persistence-strategy"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-multi-tier.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-multi-tier.xml b/cayenne-server/src/test/resources/cayenne-multi-tier.xml
index afd9699..65f4f51 100644
--- a/cayenne-server/src/test/resources/cayenne-multi-tier.xml
+++ b/cayenne-server/src/test/resources/cayenne-multi-tier.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="multi-tier"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-multinode.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-multinode.xml b/cayenne-server/src/test/resources/cayenne-multinode.xml
index 002aebd..7b23fb5 100644
--- a/cayenne-server/src/test/resources/cayenne-multinode.xml
+++ b/cayenne-server/src/test/resources/cayenne-multinode.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="map-db1"/>
 	<map name="map-db2"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-no-pk.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-no-pk.xml b/cayenne-server/src/test/resources/cayenne-no-pk.xml
index 523a90b..2905c89 100644
--- a/cayenne-server/src/test/resources/cayenne-no-pk.xml
+++ b/cayenne-server/src/test/resources/cayenne-no-pk.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="no-pk"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-numeric-types.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-numeric-types.xml b/cayenne-server/src/test/resources/cayenne-numeric-types.xml
index 9bc5084..3376ad1 100644
--- a/cayenne-server/src/test/resources/cayenne-numeric-types.xml
+++ b/cayenne-server/src/test/resources/cayenne-numeric-types.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="numeric-types"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-oneway-rels.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-oneway-rels.xml b/cayenne-server/src/test/resources/cayenne-oneway-rels.xml
index 74f1cbe..1c23877 100644
--- a/cayenne-server/src/test/resources/cayenne-oneway-rels.xml
+++ b/cayenne-server/src/test/resources/cayenne-oneway-rels.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="oneway-rels"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-org.apache.cayenne.configuration.rop.server.test-config.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-org.apache.cayenne.configuration.rop.server.test-config.xml b/cayenne-server/src/test/resources/cayenne-org.apache.cayenne.configuration.rop.server.test-config.xml
index 431d9af..19c38f0 100644
--- a/cayenne-server/src/test/resources/cayenne-org.apache.cayenne.configuration.rop.server.test-config.xml
+++ b/cayenne-server/src/test/resources/cayenne-org.apache.cayenne.configuration.rop.server.test-config.xml
@@ -1,3 +1,3 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-people.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-people.xml b/cayenne-server/src/test/resources/cayenne-people.xml
index 2909c65..26629b4 100644
--- a/cayenne-server/src/test/resources/cayenne-people.xml
+++ b/cayenne-server/src/test/resources/cayenne-people.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="people"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-persistent.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-persistent.xml b/cayenne-server/src/test/resources/cayenne-persistent.xml
index 4411149..e368c57 100644
--- a/cayenne-server/src/test/resources/cayenne-persistent.xml
+++ b/cayenne-server/src/test/resources/cayenne-persistent.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="persistent"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-primitive.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-primitive.xml b/cayenne-server/src/test/resources/cayenne-primitive.xml
index 8940525..026c75c 100644
--- a/cayenne-server/src/test/resources/cayenne-primitive.xml
+++ b/cayenne-server/src/test/resources/cayenne-primitive.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="primitive"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-qualified.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-qualified.xml b/cayenne-server/src/test/resources/cayenne-qualified.xml
index d82657f..f930615 100644
--- a/cayenne-server/src/test/resources/cayenne-qualified.xml
+++ b/cayenne-server/src/test/resources/cayenne-qualified.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="qualified"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-quoted-identifiers.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-quoted-identifiers.xml b/cayenne-server/src/test/resources/cayenne-quoted-identifiers.xml
index 642885a..91cfec5 100644
--- a/cayenne-server/src/test/resources/cayenne-quoted-identifiers.xml
+++ b/cayenne-server/src/test/resources/cayenne-quoted-identifiers.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="quoted-identifiers"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-reflexive.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-reflexive.xml b/cayenne-server/src/test/resources/cayenne-reflexive.xml
index 389cdcf..e178d26 100644
--- a/cayenne-server/src/test/resources/cayenne-reflexive.xml
+++ b/cayenne-server/src/test/resources/cayenne-reflexive.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="reflexive"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships-activity.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships-activity.xml b/cayenne-server/src/test/resources/cayenne-relationships-activity.xml
index 36b039c..4eb8f9a 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships-activity.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships-activity.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="relationships-activity"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships-child-master.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships-child-master.xml b/cayenne-server/src/test/resources/cayenne-relationships-child-master.xml
index 4c59d65..d14f075 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships-child-master.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships-child-master.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="relationships-child-master"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships-clob.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships-clob.xml b/cayenne-server/src/test/resources/cayenne-relationships-clob.xml
index 88196ad..abaa23d 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships-clob.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships-clob.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="relationships-clob"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships-collection-to-many.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships-collection-to-many.xml b/cayenne-server/src/test/resources/cayenne-relationships-collection-to-many.xml
index 0398dc7..6df5be0 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships-collection-to-many.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships-collection-to-many.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="relationships-collection-to-many"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships-delete-rules.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships-delete-rules.xml b/cayenne-server/src/test/resources/cayenne-relationships-delete-rules.xml
index 6cea4e1..0d9b1e8 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships-delete-rules.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships-delete-rules.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="relationships-delete-rules"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships-flattened.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships-flattened.xml b/cayenne-server/src/test/resources/cayenne-relationships-flattened.xml
index 7cdccc6..1283c12 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships-flattened.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships-flattened.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="relationships-flattened"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships-set-to-many.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships-set-to-many.xml b/cayenne-server/src/test/resources/cayenne-relationships-set-to-many.xml
index 7e92d95..a5331ce 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships-set-to-many.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships-set-to-many.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="relationships-set-to-many"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships-to-many-fk.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships-to-many-fk.xml b/cayenne-server/src/test/resources/cayenne-relationships-to-many-fk.xml
index d9e563c..b1e77d1 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships-to-many-fk.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships-to-many-fk.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="relationships-to-many-fk"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships-to-one-fk.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships-to-one-fk.xml b/cayenne-server/src/test/resources/cayenne-relationships-to-one-fk.xml
index 82dcd6e..c6884b8 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships-to-one-fk.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships-to-one-fk.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="relationships-to-one-fk"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-relationships.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-relationships.xml b/cayenne-server/src/test/resources/cayenne-relationships.xml
index 24f0c37..a709d2b 100644
--- a/cayenne-server/src/test/resources/cayenne-relationships.xml
+++ b/cayenne-server/src/test/resources/cayenne-relationships.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="relationships"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-return-types.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-return-types.xml b/cayenne-server/src/test/resources/cayenne-return-types.xml
index 95d67fb..b346de0 100644
--- a/cayenne-server/src/test/resources/cayenne-return-types.xml
+++ b/cayenne-server/src/test/resources/cayenne-return-types.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="return-types"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-small-testmap.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-small-testmap.xml b/cayenne-server/src/test/resources/cayenne-small-testmap.xml
index d11cf45..6c7d55b 100644
--- a/cayenne-server/src/test/resources/cayenne-small-testmap.xml
+++ b/cayenne-server/src/test/resources/cayenne-small-testmap.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="small-testmap"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-soft-delete.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-soft-delete.xml b/cayenne-server/src/test/resources/cayenne-soft-delete.xml
index f4a4bdc..860278a 100644
--- a/cayenne-server/src/test/resources/cayenne-soft-delete.xml
+++ b/cayenne-server/src/test/resources/cayenne-soft-delete.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="soft-delete"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-sus.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-sus.xml b/cayenne-server/src/test/resources/cayenne-sus.xml
index b830baf..7031593 100644
--- a/cayenne-server/src/test/resources/cayenne-sus.xml
+++ b/cayenne-server/src/test/resources/cayenne-sus.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="sus-map"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-table-primitives.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-table-primitives.xml b/cayenne-server/src/test/resources/cayenne-table-primitives.xml
index d87ef95..b03ffb9 100644
--- a/cayenne-server/src/test/resources/cayenne-table-primitives.xml
+++ b/cayenne-server/src/test/resources/cayenne-table-primitives.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="table-primitives"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-testmap.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-testmap.xml b/cayenne-server/src/test/resources/cayenne-testmap.xml
index 8253020..3c44022 100644
--- a/cayenne-server/src/test/resources/cayenne-testmap.xml
+++ b/cayenne-server/src/test/resources/cayenne-testmap.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="testmap"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-things.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-things.xml b/cayenne-server/src/test/resources/cayenne-things.xml
index a5e13c0..10f6104 100644
--- a/cayenne-server/src/test/resources/cayenne-things.xml
+++ b/cayenne-server/src/test/resources/cayenne-things.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="things"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-toone.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-toone.xml b/cayenne-server/src/test/resources/cayenne-toone.xml
index f46c8ac..f71983a 100644
--- a/cayenne-server/src/test/resources/cayenne-toone.xml
+++ b/cayenne-server/src/test/resources/cayenne-toone.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="toone"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-unsupported-distinct-types.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-unsupported-distinct-types.xml b/cayenne-server/src/test/resources/cayenne-unsupported-distinct-types.xml
index 6de977f..3a6ce3b 100644
--- a/cayenne-server/src/test/resources/cayenne-unsupported-distinct-types.xml
+++ b/cayenne-server/src/test/resources/cayenne-unsupported-distinct-types.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="unsupported-distinct-types"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/cayenne-uuid.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-uuid.xml b/cayenne-server/src/test/resources/cayenne-uuid.xml
index a821d12..f654de9 100644
--- a/cayenne-server/src/test/resources/cayenne-uuid.xml
+++ b/cayenne-server/src/test/resources/cayenne-uuid.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
     <map name="uuid"/>
 </domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/compound.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/compound.map.xml b/cayenne-server/src/test/resources/compound.map.xml
index f53832b..d4210ab 100644
--- a/cayenne-server/src/test/resources/compound.map.xml
+++ b/cayenne-server/src/test/resources/compound.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.compound"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/date-time.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/date-time.map.xml b/cayenne-server/src/test/resources/date-time.map.xml
index 69fd0ff..b2d825d 100644
--- a/cayenne-server/src/test/resources/date-time.map.xml
+++ b/cayenne-server/src/test/resources/date-time.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.date_time"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/delete-rules.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/delete-rules.map.xml b/cayenne-server/src/test/resources/delete-rules.map.xml
index 85cf165..62f47aa 100644
--- a/cayenne-server/src/test/resources/delete-rules.map.xml
+++ b/cayenne-server/src/test/resources/delete-rules.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.deleterules"/>
     <property name="clientSupported" value="true"/>
     <property name="defaultClientPackage" value="org.apache.cayenne.testdo.deleterules"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/embeddable.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/embeddable.map.xml b/cayenne-server/src/test/resources/embeddable.map.xml
index 62c245d..84bb4b0 100644
--- a/cayenne-server/src/test/resources/embeddable.map.xml
+++ b/cayenne-server/src/test/resources/embeddable.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.embeddable"/>
 	<embeddable className="org.apache.cayenne.testdo.embeddable.Embeddable1">
 		<embeddable-attribute name="embedded10" type="java.lang.String" db-attribute-name="EMBEDDED10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/empty.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/empty.map.xml b/cayenne-server/src/test/resources/empty.map.xml
index 7b88c75..89734f3 100644
--- a/cayenne-server/src/test/resources/empty.map.xml
+++ b/cayenne-server/src/test/resources/empty.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <db-entity name="EMPTY">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
     </db-entity>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/enum.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/enum.map.xml b/cayenne-server/src/test/resources/enum.map.xml
index 8f6197c..9a1e9c9 100644
--- a/cayenne-server/src/test/resources/enum.map.xml
+++ b/cayenne-server/src/test/resources/enum.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.enum"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/extended-type.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/extended-type.map.xml b/cayenne-server/src/test/resources/extended-type.map.xml
index e743d0b..3cfea21 100644
--- a/cayenne-server/src/test/resources/extended-type.map.xml
+++ b/cayenne-server/src/test/resources/extended-type.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.extended_type"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/generated.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/generated.map.xml b/cayenne-server/src/test/resources/generated.map.xml
index 958a1d0..c3ddf35 100644
--- a/cayenne-server/src/test/resources/generated.map.xml
+++ b/cayenne-server/src/test/resources/generated.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.generated"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/generic.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/generic.map.xml b/cayenne-server/src/test/resources/generic.map.xml
index 184a91d..a95bbcc 100644
--- a/cayenne-server/src/test/resources/generic.map.xml
+++ b/cayenne-server/src/test/resources/generic.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.generic"/>
 	<db-entity name="GENERIC1">
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/inheritance-single-table1.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/inheritance-single-table1.map.xml b/cayenne-server/src/test/resources/inheritance-single-table1.map.xml
index 865cced..144e407 100644
--- a/cayenne-server/src/test/resources/inheritance-single-table1.map.xml
+++ b/cayenne-server/src/test/resources/inheritance-single-table1.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.inheritance_flat"/>
 	<db-entity name="GROUP_MEMBERS">
 		<db-attribute name="group_id" type="BIGINT" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/inheritance-vertical.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/inheritance-vertical.map.xml b/cayenne-server/src/test/resources/inheritance-vertical.map.xml
index ad8fba4..27b9c9b 100644
--- a/cayenne-server/src/test/resources/inheritance-vertical.map.xml
+++ b/cayenne-server/src/test/resources/inheritance-vertical.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.inheritance_vertical"/>
 	<db-entity name="IV1_ROOT">
 		<db-attribute name="DISCRIMINATOR" type="VARCHAR" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/inheritance.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/inheritance.map.xml b/cayenne-server/src/test/resources/inheritance.map.xml
index a23d40e..df054be 100644
--- a/cayenne-server/src/test/resources/inheritance.map.xml
+++ b/cayenne-server/src/test/resources/inheritance.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.inheritance"/>
     <db-entity name="BASE_ENTITY">
         <db-attribute name="BASE_ENTITY_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/lifecycle-callbacks-order.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/lifecycle-callbacks-order.map.xml b/cayenne-server/src/test/resources/lifecycle-callbacks-order.map.xml
index 78d2594..1afdc32 100644
--- a/cayenne-server/src/test/resources/lifecycle-callbacks-order.map.xml
+++ b/cayenne-server/src/test/resources/lifecycle-callbacks-order.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.lifecycle_callbacks_order"/>
     <property name="clientSupported" value="true"/>
     <property name="defaultClientPackage" value="org.apache.cayenne.testdo.lifecycle_callbacks_order"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/lifecycles.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/lifecycles.map.xml b/cayenne-server/src/test/resources/lifecycles.map.xml
index 62c902a..098b4c5 100644
--- a/cayenne-server/src/test/resources/lifecycles.map.xml
+++ b/cayenne-server/src/test/resources/lifecycles.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.lifecycles"/>
     <property name="clientSupported" value="true"/>
     <property name="defaultClientPackage" value="org.apache.cayenne.testdo.lifecycles"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/lob.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/lob.map.xml b/cayenne-server/src/test/resources/lob.map.xml
index 3ae8644..e797df7 100644
--- a/cayenne-server/src/test/resources/lob.map.xml
+++ b/cayenne-server/src/test/resources/lob.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.lob"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/locking.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/locking.map.xml b/cayenne-server/src/test/resources/locking.map.xml
index 9b84cf3..9092352 100644
--- a/cayenne-server/src/test/resources/locking.map.xml
+++ b/cayenne-server/src/test/resources/locking.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.locking"/>
 	<db-entity name="LOCKING_HELPER">
 		<db-attribute name="LOCKING_HELPER_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/map-db1.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/map-db1.map.xml b/cayenne-server/src/test/resources/map-db1.map.xml
index eb0f60e..7d1ef52 100644
--- a/cayenne-server/src/test/resources/map-db1.map.xml
+++ b/cayenne-server/src/test/resources/map-db1.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.db1"/>
 	<db-entity name="CROSSDB_M1E1">
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/map-db2.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/map-db2.map.xml b/cayenne-server/src/test/resources/map-db2.map.xml
index fa3fcc8..ebe3163 100644
--- a/cayenne-server/src/test/resources/map-db2.map.xml
+++ b/cayenne-server/src/test/resources/map-db2.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.db2"/>
 	<db-entity name="CROSSDB_M2E1">
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/map-to-many.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/map-to-many.map.xml b/cayenne-server/src/test/resources/map-to-many.map.xml
index d3099da..99dce4d 100644
--- a/cayenne-server/src/test/resources/map-to-many.map.xml
+++ b/cayenne-server/src/test/resources/map-to-many.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.map_to_many"/>
     <property name="clientSupported" value="true"/>
     <property name="defaultClientPackage" value="org.apache.cayenne.testdo.map_to_many"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/meaningful-pk.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/meaningful-pk.map.xml b/cayenne-server/src/test/resources/meaningful-pk.map.xml
index 3172f04..ca41207 100644
--- a/cayenne-server/src/test/resources/meaningful-pk.map.xml
+++ b/cayenne-server/src/test/resources/meaningful-pk.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.meaningful_pk"/>
     <property name="clientSupported" value="true"/>
     <property name="defaultClientPackage" value="org.apache.cayenne.testdo.meaningful_pk"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/misc-types.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/misc-types.map.xml b/cayenne-server/src/test/resources/misc-types.map.xml
index be79dd6..616ab44 100644
--- a/cayenne-server/src/test/resources/misc-types.map.xml
+++ b/cayenne-server/src/test/resources/misc-types.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.misc_types"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/mixed-persistence-strategy.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/mixed-persistence-strategy.map.xml b/cayenne-server/src/test/resources/mixed-persistence-strategy.map.xml
index ca9045e..d800e13 100644
--- a/cayenne-server/src/test/resources/mixed-persistence-strategy.map.xml
+++ b/cayenne-server/src/test/resources/mixed-persistence-strategy.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.mixed_persistence_strategy"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/multi-tier.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/multi-tier.map.xml b/cayenne-server/src/test/resources/multi-tier.map.xml
index 7511ab8..016fc58 100644
--- a/cayenne-server/src/test/resources/multi-tier.map.xml
+++ b/cayenne-server/src/test/resources/multi-tier.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.mt"/>
 	<property name="clientSupported" value="true"/>
 	<property name="defaultClientPackage" value="org.apache.cayenne.testdo.mt"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/no-pk.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/no-pk.map.xml b/cayenne-server/src/test/resources/no-pk.map.xml
index 618cbfc..37f913a 100644
--- a/cayenne-server/src/test/resources/no-pk.map.xml
+++ b/cayenne-server/src/test/resources/no-pk.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.no_pk"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/numeric-types.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/numeric-types.map.xml b/cayenne-server/src/test/resources/numeric-types.map.xml
index 4e44409..179add2 100644
--- a/cayenne-server/src/test/resources/numeric-types.map.xml
+++ b/cayenne-server/src/test/resources/numeric-types.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.numeric_types"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/oneway-rels.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/oneway-rels.map.xml b/cayenne-server/src/test/resources/oneway-rels.map.xml
index 626fa8b..9ce6d58 100644
--- a/cayenne-server/src/test/resources/oneway-rels.map.xml
+++ b/cayenne-server/src/test/resources/oneway-rels.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.oneway"/>
 	<db-entity name="oneway_table1">
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/people.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/people.map.xml b/cayenne-server/src/test/resources/people.map.xml
index 68fcb7b..c62eeed 100644
--- a/cayenne-server/src/test/resources/people.map.xml
+++ b/cayenne-server/src/test/resources/people.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.inheritance_people"/>
 	<db-entity name="ADDRESS">
 		<db-attribute name="ADDRESS_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>


[3/7] cayenne git commit: Merge branch 'reverse-engineering-ui' https://github.com/apache/cayenne/pull/113

Posted by sk...@apache.org.
Merge branch 'reverse-engineering-ui'
https://github.com/apache/cayenne/pull/113


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/82a984a8
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/82a984a8
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/82a984a8

Branch: refs/heads/master
Commit: 82a984a8f93a0732740038d7b2b29cc5de1eb73a
Parents: f7ad0cc 29671e7
Author: Savva Kolbachev <s....@gmail.com>
Authored: Thu Oct 20 12:54:59 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Oct 20 12:57:44 2016 +0300

----------------------------------------------------------------------
 .../dbsync/naming/DeduplicationVisitor.java     |  24 --
 .../dbsync/naming/DefaultBaseNameVisitor.java   |   6 -
 .../dbsync/naming/NormalizationVisitor.java     |   6 -
 .../cayenne/project/ConfigurationSaver.java     |   9 -
 .../project/ConfigurationSourceGetter.java      |   5 -
 .../project/ConfigurationSourceSetter.java      |   7 -
 .../DefaultConfigurationNodeParentGetter.java   |  12 -
 .../cayenne/project/SaveableNodesGetter.java    |   9 -
 .../validation/DefaultProjectValidator.java     |   8 -
 .../validation/ReverseEngineeringValidator.java |  42 ---
 .../project/ReverseEngineeringSaverTest.java    |  62 ----
 .../BaseConfigurationNodeVisitor.java           |   5 -
 .../configuration/ConfigurationNodeVisitor.java |   3 -
 .../DefaultConfigurationNameMapper.java         |  18 --
 .../XMLDataChannelDescriptorLoader.java         |  18 --
 .../cayenne/dbimport/ReverseEngineering.java    |  21 +-
 .../java/org/apache/cayenne/map/DataMap.java    |  15 -
 .../java/org/apache/cayenne/map/MapLoader.java  |  22 --
 .../org/apache/cayenne/schema/8/modelMap.xsd    |   7 -
 .../apache/cayenne/tools/DbImporterTask.java    | 111 ++------
 .../modeler/ProjectFileChangeTracker.java       |   6 -
 .../cayenne/modeler/action/RemoveAction.java    |   4 -
 .../action/ReverseEngineeringAction.java        |  66 ++++-
 .../modeler/dialog/db/ConnectionWizard.java     |  89 ++++++
 .../modeler/dialog/db/DataMapViewModel.java     |  46 ---
 .../modeler/dialog/db/DataSourceWizard.java     | 222 +++++++++++++++
 .../modeler/dialog/db/DataSourceWizardView.java |  94 +++++++
 .../modeler/dialog/db/DbLoaderHelper.java       |  50 +++-
 .../dialog/db/DbLoaderOptionsDialog.java        | 253 +++++++++++++++++
 .../modeler/dialog/db/ModelerDbLoader.java      | 258 -----------------
 .../dialog/db/ReverseEngineeringController.java | 243 ----------------
 .../dialog/db/ReverseEngineeringScrollPane.java |  34 ---
 .../dialog/db/ReverseEngineeringView.java       | 281 -------------------
 .../modeler/dialog/db/model/DbCatalog.java      |  30 --
 .../modeler/dialog/db/model/DbColumn.java       |  34 ---
 .../modeler/dialog/db/model/DbElement.java      |  62 ----
 .../modeler/dialog/db/model/DbEntity.java       |  37 ---
 .../modeler/dialog/db/model/DbModel.java        |  29 --
 .../modeler/dialog/db/model/DbProcedure.java    |  33 ---
 .../modeler/dialog/db/model/DbSchema.java       |  29 --
 .../dialog/pref/FilteredTreeCellRenderer.java   |  85 ------
 .../cayenne/modeler/dialog/pref/TreeEditor.java | 101 -------
 .../cayenne/modeler/dialog/pref/TreeView.java   |  56 ----
 .../modeler/dialog/pref/XMLFileEditor.java      |  82 ------
 .../cayenne/modeler/dialog/pref/XMLView.java    |  72 -----
 .../modeler/editor/DataMapTabbedView.java       |  21 +-
 .../cayenne/modeler/util/CellRenderers.java     |  13 -
 .../apache/cayenne/tools/DbImporterMojo.java    |  95 +------
 .../cayenne/tools/DbImporterMojoTest.java       |   1 -
 49 files changed, 775 insertions(+), 2061 deletions(-)
----------------------------------------------------------------------



[7/7] cayenne git commit: Upgrade datamap schema version from 8 to 9;

Posted by sk...@apache.org.
Upgrade datamap schema version from 8 to 9;


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/f72210cc
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/f72210cc
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/f72210cc

Branch: refs/heads/master
Commit: f72210ccbd5663b71a0aee49ab527cd108bece3c
Parents: aa6efa4
Author: Savva Kolbachev <s....@gmail.com>
Authored: Thu Oct 20 17:49:09 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Oct 20 17:49:09 2016 +0300

----------------------------------------------------------------------
 .../src/test/resources/cayenne-crypto.xml       |   2 +-
 .../src/test/resources/datamap.map.xml          |   6 +-
 .../src/test/resources/cayenne-java8.xml        |   2 +-
 cayenne-java8/src/test/resources/java8.map.xml  |   6 +-
 .../src/test/resources/cayenne-joda.xml         |   2 +-
 cayenne-joda/src/test/resources/joda.map.xml    |   6 +-
 .../src/test/resources/cayenne-lifecycle.xml    |   2 +-
 .../src/test/resources/lifecycle-map.map.xml    |   6 +-
 .../cayenne/project/CayenneProjectModule.java   |   4 +-
 .../cayenne/project/FileProjectSaver.java       |   2 +-
 .../project/upgrade/v9/ProjectUpgrader_V9.java  |  44 +++
 .../project/upgrade/v9/UpgradeHandler_V9.java   | 166 +++++++++
 .../upgrade/v7/ProjectUpgrader_V7Test.java      |  54 ++-
 .../upgrade/v8/ProjectUpgrader_V8Test.java      |  24 +-
 .../upgrade/v9/ProjectUpgrader_V9Test.java      | 185 ++++++++++
 .../project/upgrade/v9/cayenne-PROJECT1.xml     |  15 +
 .../project/upgrade/v9/reverseEngineering.xml   |  11 +
 .../upgrade/v9/testProjectMap1_1.map.xml        |  15 +
 .../upgrade/v9/testProjectMap1_2.map.xml        |   7 +
 .../src/test/resources/cayenne-protostuff.xml   |   2 +-
 .../src/test/resources/protostuff.map.xml       |   6 +-
 .../java/org/apache/cayenne/map/DataMap.java    |   4 +-
 .../org/apache/cayenne/schema/8/modelMap.xsd    | 338 -------------------
 .../cayenne/schema/8/reverseEngineering.xsd     | 141 --------
 .../org/apache/cayenne/schema/9/modelMap.xsd    | 338 +++++++++++++++++++
 .../src/test/resources/array-type.map.xml       |   6 +-
 .../src/test/resources/binary-pk.map.xml        |   6 +-
 .../test/resources/cay743/cayenne-domain.xml    |   2 +-
 .../src/test/resources/cay743/map1.map.xml      |   6 +-
 .../src/test/resources/cay743/map2.map.xml      |   6 +-
 .../src/test/resources/cayenne-array-type.xml   |   2 +-
 .../src/test/resources/cayenne-binary-pk.xml    |   2 +-
 .../src/test/resources/cayenne-compound.xml     |   2 +-
 .../src/test/resources/cayenne-date-time.xml    |   2 +-
 .../src/test/resources/cayenne-delete-rules.xml |   2 +-
 .../src/test/resources/cayenne-embeddable.xml   |   2 +-
 .../src/test/resources/cayenne-empty.xml        |   2 +-
 .../src/test/resources/cayenne-enum.xml         |   2 +-
 .../test/resources/cayenne-extended-type.xml    |   2 +-
 .../src/test/resources/cayenne-generated.xml    |   2 +-
 .../src/test/resources/cayenne-generic.xml      |   2 +-
 .../cayenne-inheritance-single-table1.xml       |   2 +-
 .../resources/cayenne-inheritance-vertical.xml  |   2 +-
 .../src/test/resources/cayenne-inheritance.xml  |   2 +-
 .../cayenne-lifecycle-callbacks-order.xml       |   2 +-
 .../src/test/resources/cayenne-lifecycles.xml   |   2 +-
 .../src/test/resources/cayenne-lob.xml          |   2 +-
 .../src/test/resources/cayenne-locking.xml      |   2 +-
 .../src/test/resources/cayenne-map-to-many.xml  |   2 +-
 .../test/resources/cayenne-meaningful-pk.xml    |   2 +-
 .../src/test/resources/cayenne-misc-types.xml   |   2 +-
 .../cayenne-mixed-persistence-strategy.xml      |   2 +-
 .../src/test/resources/cayenne-multi-tier.xml   |   2 +-
 .../src/test/resources/cayenne-multinode.xml    |   2 +-
 .../src/test/resources/cayenne-no-pk.xml        |   2 +-
 .../test/resources/cayenne-numeric-types.xml    |   2 +-
 .../src/test/resources/cayenne-oneway-rels.xml  |   2 +-
 ...nne.configuration.rop.server.test-config.xml |   2 +-
 .../src/test/resources/cayenne-people.xml       |   2 +-
 .../src/test/resources/cayenne-persistent.xml   |   2 +-
 .../src/test/resources/cayenne-primitive.xml    |   2 +-
 .../src/test/resources/cayenne-qualified.xml    |   2 +-
 .../resources/cayenne-quoted-identifiers.xml    |   2 +-
 .../src/test/resources/cayenne-reflexive.xml    |   2 +-
 .../cayenne-relationships-activity.xml          |   2 +-
 .../cayenne-relationships-child-master.xml      |   2 +-
 .../resources/cayenne-relationships-clob.xml    |   2 +-
 ...cayenne-relationships-collection-to-many.xml |   2 +-
 .../cayenne-relationships-delete-rules.xml      |   2 +-
 .../cayenne-relationships-flattened.xml         |   2 +-
 .../cayenne-relationships-set-to-many.xml       |   2 +-
 .../cayenne-relationships-to-many-fk.xml        |   2 +-
 .../cayenne-relationships-to-one-fk.xml         |   2 +-
 .../test/resources/cayenne-relationships.xml    |   2 +-
 .../src/test/resources/cayenne-return-types.xml |   2 +-
 .../test/resources/cayenne-small-testmap.xml    |   2 +-
 .../src/test/resources/cayenne-soft-delete.xml  |   2 +-
 .../src/test/resources/cayenne-sus.xml          |   2 +-
 .../test/resources/cayenne-table-primitives.xml |   2 +-
 .../src/test/resources/cayenne-testmap.xml      |   2 +-
 .../src/test/resources/cayenne-things.xml       |   2 +-
 .../src/test/resources/cayenne-toone.xml        |   2 +-
 .../cayenne-unsupported-distinct-types.xml      |   2 +-
 .../src/test/resources/cayenne-uuid.xml         |   2 +-
 .../src/test/resources/compound.map.xml         |   6 +-
 .../src/test/resources/date-time.map.xml        |   6 +-
 .../src/test/resources/delete-rules.map.xml     |   6 +-
 .../src/test/resources/embeddable.map.xml       |   6 +-
 cayenne-server/src/test/resources/empty.map.xml |   6 +-
 cayenne-server/src/test/resources/enum.map.xml  |   6 +-
 .../src/test/resources/extended-type.map.xml    |   6 +-
 .../src/test/resources/generated.map.xml        |   6 +-
 .../src/test/resources/generic.map.xml          |   6 +-
 .../resources/inheritance-single-table1.map.xml |   6 +-
 .../test/resources/inheritance-vertical.map.xml |   6 +-
 .../src/test/resources/inheritance.map.xml      |   6 +-
 .../resources/lifecycle-callbacks-order.map.xml |   6 +-
 .../src/test/resources/lifecycles.map.xml       |   6 +-
 cayenne-server/src/test/resources/lob.map.xml   |   6 +-
 .../src/test/resources/locking.map.xml          |   6 +-
 .../src/test/resources/map-db1.map.xml          |   6 +-
 .../src/test/resources/map-db2.map.xml          |   6 +-
 .../src/test/resources/map-to-many.map.xml      |   6 +-
 .../src/test/resources/meaningful-pk.map.xml    |   6 +-
 .../src/test/resources/misc-types.map.xml       |   6 +-
 .../mixed-persistence-strategy.map.xml          |   6 +-
 .../src/test/resources/multi-tier.map.xml       |   6 +-
 cayenne-server/src/test/resources/no-pk.map.xml |   6 +-
 .../src/test/resources/numeric-types.map.xml    |   6 +-
 .../src/test/resources/oneway-rels.map.xml      |   6 +-
 .../src/test/resources/people.map.xml           |   6 +-
 .../src/test/resources/persistent.map.xml       |   6 +-
 .../src/test/resources/primitive.map.xml        |   6 +-
 .../src/test/resources/qualified.map.xml        |   6 +-
 .../test/resources/quoted-identifiers.map.xml   |   6 +-
 .../src/test/resources/reflexive.map.xml        |   6 +-
 .../resources/relationships-activity.map.xml    |   6 +-
 .../relationships-child-master.map.xml          |   6 +-
 .../test/resources/relationships-clob.map.xml   |   6 +-
 .../relationships-collection-to-many.map.xml    |   6 +-
 .../relationships-delete-rules.map.xml          |   6 +-
 .../resources/relationships-flattened.map.xml   |   6 +-
 .../resources/relationships-set-to-many.map.xml |   6 +-
 .../resources/relationships-to-many-fk.map.xml  |   6 +-
 .../resources/relationships-to-one-fk.map.xml   |   6 +-
 .../src/test/resources/relationships.map.xml    |   6 +-
 .../src/test/resources/return-types.map.xml     |   6 +-
 .../src/test/resources/soft-delete.map.xml      |   6 +-
 .../src/test/resources/sus-map.map.xml          |   6 +-
 .../src/test/resources/table-primitives.map.xml |   6 +-
 .../src/test/resources/testmap.map.xml          |   6 +-
 .../src/test/resources/things.map.xml           |   6 +-
 cayenne-server/src/test/resources/toone.map.xml |   6 +-
 .../unsupported-distinct-types.map.xml          |   6 +-
 cayenne-server/src/test/resources/uuid.map.xml  |   6 +-
 .../tools/build-include-table.map.xml-result    |   8 +-
 .../testCustomObjectLayerSettings.map.xml       |   6 +-
 ...testCustomObjectLayerSettings.map.xml-result |   6 +-
 .../dbimport/testDefaultPackage.map.xml-result  |   6 +-
 .../testFilteringWithSchema.map.xml-result      |   6 +-
 ...nsManyToManyWithRecursiveLink.map.xml-result |   6 +-
 .../testImportAddTableAndColumn.map.xml         |   6 +-
 .../testImportAddTableAndColumn.map.xml-result  |   6 +-
 .../testImportNewDataMap.map.xml-result         |   6 +-
 .../dbimport/testImportWithoutChanges.map.xml   |   6 +-
 .../testImportWithoutChanges.map.xml-result     |   6 +-
 .../tools/dbimport/testOneToOne.map.xml-result  |   6 +-
 .../testPreserveCustomObjMappings.map.xml       |   6 +-
 ...testPreserveCustomObjMappings.map.xml-result |   6 +-
 .../dbimport/testPreserveRelationships.map.xml  |   6 +-
 .../testPreserveRelationships.map.xml-result    |   6 +-
 .../testSchemasAndTableExclude.map.xml-result   |   6 +-
 .../dbimport/testSkipPrimaryKeyLoading.map.xml  |   6 +-
 .../testSkipPrimaryKeyLoading.map.xml-result    |   6 +-
 .../testSkipRelationshipsLoading.map.xml        |   6 +-
 .../testSkipRelationshipsLoading.map.xml-result |   6 +-
 ...SupportsCatalogsOnReverseEngineering.map.xml |   6 +-
 .../dbimport/testTableTypes.map.xml-result      |   6 +-
 .../dbimport/testUnFlattensManyToMany.map.xml   |   6 +-
 .../testUnFlattensManyToMany.map.xml-result     |   6 +-
 .../dbimport/testViewsExclude.map.xml-result    |   6 +-
 .../src/main/resources/cayenne-project.xml      |   2 +-
 .../src/main/resources/datamap.map.xml          |   6 +-
 163 files changed, 1151 insertions(+), 843 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-crypto/src/test/resources/cayenne-crypto.xml
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/resources/cayenne-crypto.xml b/cayenne-crypto/src/test/resources/cayenne-crypto.xml
index cf7e20f..bd98b69 100644
--- a/cayenne-crypto/src/test/resources/cayenne-crypto.xml
+++ b/cayenne-crypto/src/test/resources/cayenne-crypto.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="datamap"/>
 
 	<node name="datanode"

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-crypto/src/test/resources/datamap.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/test/resources/datamap.map.xml b/cayenne-crypto/src/test/resources/datamap.map.xml
index b71de41..4182205 100644
--- a/cayenne-crypto/src/test/resources/datamap.map.xml
+++ b/cayenne-crypto/src/test/resources/datamap.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.crypto.db"/>
 	<db-entity name="TABLE1">
 		<db-attribute name="CRYPTO_INT" type="BLOB"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-java8/src/test/resources/cayenne-java8.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/cayenne-java8.xml b/cayenne-java8/src/test/resources/cayenne-java8.xml
index d4ad35d..93f67fd 100644
--- a/cayenne-java8/src/test/resources/cayenne-java8.xml
+++ b/cayenne-java8/src/test/resources/cayenne-java8.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="java8"/>
 
 	<node name="datanode"

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-java8/src/test/resources/java8.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/test/resources/java8.map.xml b/cayenne-java8/src/test/resources/java8.map.xml
index 1d8a274..734c915 100644
--- a/cayenne-java8/src/test/resources/java8.map.xml
+++ b/cayenne-java8/src/test/resources/java8.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.java8.db"/>
 	<db-entity name="LOCAL_DATE_TEST">
 		<db-attribute name="Date" type="DATE"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-joda/src/test/resources/cayenne-joda.xml
----------------------------------------------------------------------
diff --git a/cayenne-joda/src/test/resources/cayenne-joda.xml b/cayenne-joda/src/test/resources/cayenne-joda.xml
index 7c7ef9d..68673f9 100644
--- a/cayenne-joda/src/test/resources/cayenne-joda.xml
+++ b/cayenne-joda/src/test/resources/cayenne-joda.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="joda"/>
 
 	<node name="datanode"

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-joda/src/test/resources/joda.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-joda/src/test/resources/joda.map.xml b/cayenne-joda/src/test/resources/joda.map.xml
index 0234bf8..b1021f8 100644
--- a/cayenne-joda/src/test/resources/joda.map.xml
+++ b/cayenne-joda/src/test/resources/joda.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.joda.db"/>
 	<db-entity name="DATE_TIME_TEST">
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-lifecycle/src/test/resources/cayenne-lifecycle.xml
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/test/resources/cayenne-lifecycle.xml b/cayenne-lifecycle/src/test/resources/cayenne-lifecycle.xml
index cffc16b..5b9a83e 100644
--- a/cayenne-lifecycle/src/test/resources/cayenne-lifecycle.xml
+++ b/cayenne-lifecycle/src/test/resources/cayenne-lifecycle.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="lifecycle-map"/>
 
 	<node name="lifecycle-db"

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-lifecycle/src/test/resources/lifecycle-map.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/test/resources/lifecycle-map.map.xml b/cayenne-lifecycle/src/test/resources/lifecycle-map.map.xml
index 312b7ac..7b62e06 100644
--- a/cayenne-lifecycle/src/test/resources/lifecycle-map.map.xml
+++ b/cayenne-lifecycle/src/test/resources/lifecycle-map.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.lifecycle.db"/>
 	<db-entity name="AUDITABLE1">
 		<db-attribute name="CHAR_PROPERTY1" type="VARCHAR" length="200"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/main/java/org/apache/cayenne/project/CayenneProjectModule.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/CayenneProjectModule.java b/cayenne-project/src/main/java/org/apache/cayenne/project/CayenneProjectModule.java
index f066e2f..6f31b9c 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/CayenneProjectModule.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/CayenneProjectModule.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.project;
 import org.apache.cayenne.di.Binder;
 import org.apache.cayenne.di.Module;
 import org.apache.cayenne.project.upgrade.ProjectUpgrader;
-import org.apache.cayenne.project.upgrade.v8.ProjectUpgrader_V8;
+import org.apache.cayenne.project.upgrade.v9.ProjectUpgrader_V9;
 import org.apache.cayenne.project.validation.DefaultProjectValidator;
 import org.apache.cayenne.project.validation.ProjectValidator;
 
@@ -36,7 +36,7 @@ public class CayenneProjectModule implements Module {
     public void configure(Binder binder) {
         binder.bind(ProjectLoader.class).to(DataChannelProjectLoader.class);
         binder.bind(ProjectSaver.class).to(FileProjectSaver.class);
-        binder.bind(ProjectUpgrader.class).to(ProjectUpgrader_V8.class);
+        binder.bind(ProjectUpgrader.class).to(ProjectUpgrader_V9.class);
         binder.bind(ProjectValidator.class).to(DefaultProjectValidator.class);
         binder.bind(ConfigurationNodeParentGetter.class).to(
                 DefaultConfigurationNodeParentGetter.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
index 95ef738..5b22b08 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
@@ -62,7 +62,7 @@ public class FileProjectSaver implements ProjectSaver {
 	}
 
 	public String getSupportedVersion() {
-		return "8";
+		return "9";
 	}
 
 	public void save(Project project) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9.java b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9.java
new file mode 100644
index 0000000..2f585b2
--- /dev/null
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9.java
@@ -0,0 +1,44 @@
+/*****************************************************************
+ *   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.project.upgrade.v9;
+
+
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.di.Injector;
+import org.apache.cayenne.project.upgrade.ProjectUpgrader;
+import org.apache.cayenne.project.upgrade.UpgradeHandler;
+import org.apache.cayenne.resource.Resource;
+
+/**
+ * A ProjectUpgrader that handles project upgrades from version 4.0.M4 and 8
+ * to version 9.
+ */
+public class ProjectUpgrader_V9 implements ProjectUpgrader {
+
+    @Inject
+    protected Injector injector;
+
+    @Override
+    public UpgradeHandler getUpgradeHandler(Resource projectSource) {
+        UpgradeHandler_V9 handler = new UpgradeHandler_V9(projectSource);
+        injector.injectMembers(handler);
+        return handler;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v9/UpgradeHandler_V9.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v9/UpgradeHandler_V9.java b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v9/UpgradeHandler_V9.java
new file mode 100644
index 0000000..2a3faaa
--- /dev/null
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/v9/UpgradeHandler_V9.java
@@ -0,0 +1,166 @@
+/*****************************************************************
+ *   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.project.upgrade.v9;
+
+import org.apache.cayenne.ConfigurationException;
+import org.apache.cayenne.configuration.ConfigurationTree;
+import org.apache.cayenne.configuration.DataChannelDescriptor;
+import org.apache.cayenne.configuration.XMLDataChannelDescriptorLoader;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.di.Injector;
+import org.apache.cayenne.project.Project;
+import org.apache.cayenne.project.ProjectSaver;
+import org.apache.cayenne.project.upgrade.BaseUpgradeHandler;
+import org.apache.cayenne.project.upgrade.UpgradeHandler;
+import org.apache.cayenne.project.upgrade.UpgradeMetaData;
+import org.apache.cayenne.project.upgrade.UpgradeType;
+import org.apache.cayenne.project.upgrade.v8.ProjectUpgrader_V8;
+import org.apache.cayenne.resource.Resource;
+import org.apache.cayenne.util.Util;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathFactory;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class UpgradeHandler_V9 extends BaseUpgradeHandler {
+
+    static final String TO_VERSION = "9";
+    static final String MIN_SUPPORTED_VERSION = "8";
+
+    @Inject
+    protected Injector injector;
+
+    @Inject
+    private ProjectSaver projectSaver;
+
+    public UpgradeHandler_V9(Resource source) {
+        super(source);
+    }
+
+    @Override
+    protected Resource doPerformUpgrade(UpgradeMetaData metaData) throws ConfigurationException {
+        if (compareVersions(metaData.getProjectVersion(), MIN_SUPPORTED_VERSION) == 0) {
+            ProjectUpgrader_V8 upgraderV8 = new ProjectUpgrader_V8();
+            injector.injectMembers(upgraderV8);
+            UpgradeHandler handlerV8 = upgraderV8.getUpgradeHandler(projectSource);
+            projectSource = handlerV8.performUpgrade();
+        }
+
+        deleteReverseEngineeringFiles(projectSource);
+
+        XMLDataChannelDescriptorLoader loader = new XMLDataChannelDescriptorLoader();
+        injector.injectMembers(loader);
+        ConfigurationTree<DataChannelDescriptor> tree = loader.load(projectSource);
+        Project project = new Project(tree);
+
+        // load and safe cycle updates project version
+        projectSaver.save(project);
+        return project.getConfigurationResource();
+    }
+
+    private void deleteReverseEngineeringFiles(Resource projectSource) {
+        Document projectDoc = readDOMDocument(projectSource);
+
+        try {
+            XPath xpath = XPathFactory.newInstance().newXPath();
+            NodeList nodes = (NodeList) xpath.evaluate("/domain/map/@name", projectDoc, XPathConstants.NODESET);
+
+            for (int i = 0; i < nodes.getLength(); i++) {
+                Node mapNode = nodes.item(i);
+
+                Resource mapResource = projectSource.getRelativeResource(mapNode.getNodeValue() + ".map.xml");
+
+                Document datamapDoc = readDOMDocument(mapResource);
+
+                Node reNode = (Node) xpath.evaluate("/data-map/reverse-engineering-config",
+                        datamapDoc, XPathConstants.NODE);
+
+                if (reNode != null) {
+                    String reFileName = ((Element) reNode).getAttribute("name") + ".xml";
+
+                    try {
+                        String directoryPath = Util.toFile(projectSource.getURL()).getParent();
+
+                        File file = new File(directoryPath + "/" + reFileName);
+                        if (file.exists()) {
+                            file.delete();
+                        }
+                    } catch (Exception e) {
+                        // ignore...
+                    }
+                }
+            }
+
+        } catch (Exception e) {
+            throw new ConfigurationException("Unable to parse Cayenne XML configuration files.", e);
+        }
+    }
+
+    private Document readDOMDocument(Resource resource) {
+        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+        try {
+            DocumentBuilder domBuilder = documentBuilderFactory.newDocumentBuilder();
+
+            try (InputStream inputStream = resource.getURL().openStream()) {
+                return domBuilder.parse(inputStream);
+            } catch (IOException | SAXException e) {
+                throw new ConfigurationException("Error loading configuration from %s", e, resource);
+            }
+        } catch (ParserConfigurationException e) {
+            throw new ConfigurationException(e);
+        }
+    }
+
+    @Override
+    protected UpgradeMetaData loadMetaData() {
+        String version = loadProjectVersion();
+
+        UpgradeMetaData metadata = new UpgradeMetaData();
+        metadata.setSupportedVersion(TO_VERSION);
+        metadata.setProjectVersion(version);
+
+        int c1 = compareVersions(version, MIN_SUPPORTED_VERSION);
+        int c2 = compareVersions(TO_VERSION, version);
+
+        if (c1 < 0) {
+            metadata.setIntermediateUpgradeVersion(MIN_SUPPORTED_VERSION);
+            metadata.setUpgradeType(UpgradeType.INTERMEDIATE_UPGRADE_NEEDED);
+        } else if (c2 < 0) {
+            metadata.setUpgradeType(UpgradeType.DOWNGRADE_NEEDED);
+        } else if (c2 == 0) {
+            metadata.setUpgradeType(UpgradeType.UPGRADE_NOT_NEEDED);
+        } else {
+            metadata.setUpgradeType(UpgradeType.UPGRADE_NEEDED);
+        }
+
+        return metadata;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java
index 7fa997b..d97733f 100644
--- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java
+++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java
@@ -18,36 +18,13 @@
  ****************************************************************/
 package org.apache.cayenne.project.upgrade.v7;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathFactory;
-
 import org.apache.cayenne.configuration.ConfigurationNameMapper;
 import org.apache.cayenne.configuration.DataMapLoader;
 import org.apache.cayenne.configuration.DefaultConfigurationNameMapper;
 import org.apache.cayenne.configuration.XMLDataMapLoader;
 import org.apache.cayenne.configuration.server.JNDIDataSourceFactory;
 import org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory;
-import org.apache.cayenne.di.AdhocObjectFactory;
-import org.apache.cayenne.di.Binder;
-import org.apache.cayenne.di.ClassLoaderManager;
-import org.apache.cayenne.di.DIBootstrap;
-import org.apache.cayenne.di.Injector;
-import org.apache.cayenne.di.Module;
+import org.apache.cayenne.di.*;
 import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory;
 import org.apache.cayenne.di.spi.DefaultClassLoaderManager;
 import org.apache.cayenne.project.FileProjectSaver;
@@ -64,6 +41,17 @@ import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathFactory;
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
 public class ProjectUpgrader_V7Test extends Project2Case {
 
 	@Test
@@ -274,7 +262,7 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 
 		XPath xpath = XPathFactory.newInstance().newXPath();
 		assertEquals("", xpath.evaluate("/domain/@name", document));
-		assertEquals("8", xpath.evaluate("/domain/@project-version", document));
+		assertEquals("9", xpath.evaluate("/domain/@project-version", document));
 
 		NodeList maps = (NodeList) xpath.evaluate("/domain/map", document, XPathConstants.NODESET);
 		assertNotNull(maps);
@@ -316,7 +304,7 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 
 		XPath xpath = XPathFactory.newInstance().newXPath();
 		assertEquals("", xpath.evaluate("/domain/@name", document));
-		assertEquals("8", xpath.evaluate("/domain/@project-version", document));
+		assertEquals("9", xpath.evaluate("/domain/@project-version", document));
 
 		NodeList maps = (NodeList) xpath.evaluate("/domain/map", document, XPathConstants.NODESET);
 		assertNotNull(maps);
@@ -350,14 +338,14 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 		Document document = toDOMTree(file);
 
 		XPath xpath = XPathFactory.newInstance().newXPath();
-		assertEquals("8", xpath.evaluate("/data-map/@project-version", document));
+		assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
 	}
 
 	private void assertPerformUpgrade_3_0_0_1_d1Map2(File file) throws Exception {
 		Document document = toDOMTree(file);
 
 		XPath xpath = XPathFactory.newInstance().newXPath();
-		assertEquals("8", xpath.evaluate("/data-map/@project-version", document));
+		assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
 	}
 
 	@Test
@@ -408,7 +396,7 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 		Document document = toDOMTree(file);
 
 		XPath xpath = XPathFactory.newInstance().newXPath();
-		assertEquals("8", xpath.evaluate("/data-map/@project-version", document));
+		assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
 
 		NodeList maps = (NodeList) xpath.evaluate("/data-map/obj-entity/entity-listener", document,
 				XPathConstants.NODESET);
@@ -420,14 +408,14 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 		Document document = toDOMTree(file);
 
 		XPath xpath = XPathFactory.newInstance().newXPath();
-		assertEquals("8", xpath.evaluate("/domain/@project-version", document));
+		assertEquals("9", xpath.evaluate("/domain/@project-version", document));
 	}
 
 	private void assertPerformUpgradeMap2(File file) throws Exception {
 		Document document = toDOMTree(file);
 
 		XPath xpath = XPathFactory.newInstance().newXPath();
-		assertEquals("8", xpath.evaluate("/data-map/@project-version", document));
+		assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
 	}
 
 	@Test
@@ -483,7 +471,7 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 		Document document = toDOMTree(file);
 
 		XPath xpath = XPathFactory.newInstance().newXPath();
-		assertEquals("8", xpath.evaluate("/data-map/@project-version", document));
+		assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
 
 		String xpathValue = "/data-map/obj-entity[@name='GreatArtist']/obj-attribute";
 		XPathExpression expr = xpath.compile(xpathValue);
@@ -496,7 +484,7 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 		Document document = toDOMTree(file);
 
 		XPath xpath = XPathFactory.newInstance().newXPath();
-		assertEquals("8", xpath.evaluate("/data-map/@project-version", document));
+		assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
 
 		String xpath_1 = "/data-map/obj-entity[@name='House']/obj-attribute/@name";
 		String xpath_2 = "/data-map/obj-entity[@name='Penthouse']/obj-attribute/@name";

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java
index ceb87a8..610d77c 100644
--- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java
+++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java
@@ -1,3 +1,21 @@
+/*****************************************************************
+ *   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.project.upgrade.v8;
 
 import org.apache.cayenne.CayenneRuntimeException;
@@ -126,7 +144,7 @@ public class ProjectUpgrader_V8Test extends Project2Case {
 
         XPath xpath = XPathFactory.newInstance().newXPath();
         assertEquals("", xpath.evaluate("/domain/@name", document));
-        assertEquals("8", xpath.evaluate("/domain/@project-version", document));
+        assertEquals("9", xpath.evaluate("/domain/@project-version", document));
 
         NodeList maps = (NodeList) xpath.evaluate("/domain/map", document, XPathConstants.NODESET);
         assertNotNull(maps);
@@ -147,7 +165,7 @@ public class ProjectUpgrader_V8Test extends Project2Case {
         Document document = toDOMTree(file);
 
         XPath xpath = XPathFactory.newInstance().newXPath();
-        assertEquals("8", xpath.evaluate("/data-map/@project-version", document));
+        assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
 
         NodeList queryNodes = (NodeList) xpath.evaluate("/data-map/query", document, XPathConstants.NODESET);
         assertNotNull(queryNodes);
@@ -174,6 +192,6 @@ public class ProjectUpgrader_V8Test extends Project2Case {
         Document document = toDOMTree(file);
 
         XPath xpath = XPathFactory.newInstance().newXPath();
-        assertEquals("8", xpath.evaluate("/data-map/@project-version", document));
+        assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java
new file mode 100644
index 0000000..32f4b68
--- /dev/null
+++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java
@@ -0,0 +1,185 @@
+/*****************************************************************
+ *   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.project.upgrade.v9;
+
+import org.apache.cayenne.CayenneRuntimeException;
+import org.apache.cayenne.configuration.ConfigurationNameMapper;
+import org.apache.cayenne.configuration.DataMapLoader;
+import org.apache.cayenne.configuration.DefaultConfigurationNameMapper;
+import org.apache.cayenne.configuration.XMLDataMapLoader;
+import org.apache.cayenne.di.*;
+import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory;
+import org.apache.cayenne.di.spi.DefaultClassLoaderManager;
+import org.apache.cayenne.project.FileProjectSaver;
+import org.apache.cayenne.project.ProjectSaver;
+import org.apache.cayenne.project.unit.Project2Case;
+import org.apache.cayenne.project.upgrade.UpgradeHandler;
+import org.apache.cayenne.resource.Resource;
+import org.apache.cayenne.resource.URLResource;
+import org.apache.cayenne.test.file.FileUtil;
+import org.apache.cayenne.test.resource.ResourceUtil;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathFactory;
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertTrue;
+
+public class ProjectUpgrader_V9Test extends Project2Case {
+
+    protected File setupTestDirectory(String subfolder) {
+        String classPath = getClass().getName().replace('.', '/');
+        String location = "target/testrun/" + classPath + "/" + subfolder;
+        File testDirectory = new File(location);
+
+        // delete old tests
+        if (testDirectory.exists()) {
+            if (!FileUtil.delete(location, true)) {
+                throw new CayenneRuntimeException(
+                        "Error deleting test directory '%s'",
+                        location);
+            }
+        }
+
+        if (!testDirectory.mkdirs()) {
+            throw new CayenneRuntimeException(
+                    "Error creating test directory '%s'",
+                    location);
+        }
+
+        return testDirectory;
+    }
+
+    @Test
+    public void testPerformUpgradeFrom8() throws Exception {
+
+        File testFolder = setupTestDirectory("testPerformUpgradeFrom8");
+        String sourceUrl = getClass().getPackage().getName().replace('.', '/') + "/";
+
+        List<String> sources = new ArrayList<>();
+
+        sources.add("cayenne-PROJECT1.xml");
+        sources.add("testProjectMap1_1.map.xml");
+        sources.add("testProjectMap1_2.map.xml");
+        sources.add("reverseEngineering.xml");
+
+        // upgrades are done in-place, so copy it first
+        List<File> targetsBefore = new ArrayList<>();
+        for (String source : sources) {
+
+            URL url = getClass().getClassLoader().getResource(sourceUrl + source);
+            File target = new File(testFolder, source);
+            assertNotNull(source);
+            ResourceUtil.copyResourceToFile(url, target);
+            targetsBefore.add(target);
+        }
+
+        Module testModule = new Module() {
+
+            public void configure(Binder binder) {
+                binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class);
+                binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
+                binder.bind(ProjectSaver.class).to(FileProjectSaver.class);
+                binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class);
+                binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class);
+            }
+        };
+
+        ProjectUpgrader_V9 upgrader = new ProjectUpgrader_V9();
+        Injector injector = DIBootstrap.createInjector(testModule);
+        injector.injectMembers(upgrader);
+
+        Resource source = new URLResource(targetsBefore.get(0).toURL());
+        UpgradeHandler handler = upgrader.getUpgradeHandler(source);
+
+        Resource upgraded = handler.performUpgrade();
+        assertNotNull(upgraded);
+        assertNotSame(source, upgrader);
+
+        // check that all the new files are created...
+        String[] targetsAfterNames = new String[] {
+                "cayenne-PROJECT1.xml", "testProjectMap1_1.map.xml", "testProjectMap1_2.map.xml"
+        };
+
+        File[] targetsAfter = new File[targetsAfterNames.length];
+        for (int i = 0; i < targetsAfter.length; i++) {
+            targetsAfter[i] = new File(testFolder, targetsAfterNames[i]);
+            assertTrue("File was not created: " + targetsAfter[i].getAbsolutePath(), targetsAfter[i].exists());
+        }
+
+        // assert XML structure of the generated files
+        assertPerformUpgradeFrom8_cayenne(targetsAfter[0]);
+        assertPerformUpgradeFrom8_map1_1(targetsAfter[1]);
+        assertPerformUpgradeFrom8_map1_2(targetsAfter[2]);
+        assertFalse(new File(testFolder, "reverseEngineering.xml").exists());
+    }
+
+    private void assertPerformUpgradeFrom8_cayenne(File file) throws Exception {
+        Document document = toDOMTree(file);
+
+        XPath xpath = XPathFactory.newInstance().newXPath();
+        assertEquals("", xpath.evaluate("/domain/@name", document));
+        assertEquals("9", xpath.evaluate("/domain/@project-version", document));
+
+        NodeList maps = (NodeList) xpath.evaluate("/domain/map", document, XPathConstants.NODESET);
+        assertNotNull(maps);
+        assertEquals(2, maps.getLength());
+
+        Node map1 = maps.item(0);
+        Node map2 = maps.item(1);
+
+        assertEquals("testProjectMap1_1", xpath.evaluate("@name", map1));
+        assertEquals("testProjectMap1_2", xpath.evaluate("@name", map2));
+
+        NodeList nodes = (NodeList) xpath.evaluate("/domain/node", document, XPathConstants.NODESET);
+        assertNotNull(nodes);
+        assertEquals(1, nodes.getLength());
+    }
+
+    private void assertPerformUpgradeFrom8_map1_1(File file) throws Exception {
+        Document document = toDOMTree(file);
+
+        XPath xpath = XPathFactory.newInstance().newXPath();
+        assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
+
+        NodeList reverseEngineeringNodes = (NodeList) xpath.evaluate("/data-map/reverse-engineering-config",
+                document, XPathConstants.NODESET);
+        assertEquals(0, reverseEngineeringNodes.getLength());
+    }
+
+    private void assertPerformUpgradeFrom8_map1_2(File file) throws Exception {
+        Document document = toDOMTree(file);
+
+        XPath xpath = XPathFactory.newInstance().newXPath();
+        assertEquals("9", xpath.evaluate("/data-map/@project-version", document));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/cayenne-PROJECT1.xml
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/cayenne-PROJECT1.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/cayenne-PROJECT1.xml
new file mode 100644
index 0000000..745ea3f
--- /dev/null
+++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/cayenne-PROJECT1.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="8">
+
+    <map name="testProjectMap1_1" />
+    <map name="testProjectMap1_2" />
+
+    <node name="testProjectNode1"
+          adapter="org.example.test.Adapter" factory="org.example.test.DataSourceFactory">
+        <data-source>
+            <connectionPool min="1" max="1" />
+            <login />
+        </data-source>
+        <map-ref name="testProjectMap1_1" />
+    </node>
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/reverseEngineering.xml
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/reverseEngineering.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/reverseEngineering.xml
new file mode 100644
index 0000000..f88b81f
--- /dev/null
+++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/reverseEngineering.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<reverseEngineering xsi:schemaLocation="http://cayenne.apache.org/schema/8/reverseEngineering http://cayenne.apache.org/schema/8/reverseEngineering.xsd" xmlns="http://cayenne.apache.org/schema/8/reverseEngineering" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <skipRelationshipsLoading>false</skipRelationshipsLoading>
+    <skipPrimaryKeyLoading>false</skipPrimaryKeyLoading>
+    <catalog>
+        <schema>
+            <includeTable/>
+            <includeProcedure pattern=".*"/>
+        </schema>
+    </catalog>
+</reverseEngineering>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/testProjectMap1_1.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/testProjectMap1_1.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/testProjectMap1_1.map.xml
new file mode 100644
index 0000000..e7dcd65
--- /dev/null
+++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/testProjectMap1_1.map.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
+          project-version="8">
+    <reverse-engineering-config name="reverseEngineering"/>
+    <db-entity name="Artist">
+        <db-attribute name="untitledAttr" type="CHAR" isPrimaryKey="true" isMandatory="true" length="10"/>
+        <db-attribute name="untitledAttr1" type="DATE"/>
+    </db-entity>
+    <obj-entity name="Artist" dbEntityName="Artist">
+        <entity-listener class="NowyListener">
+        </entity-listener>
+    </obj-entity>
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/testProjectMap1_2.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/testProjectMap1_2.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/testProjectMap1_2.map.xml
new file mode 100644
index 0000000..67968c9
--- /dev/null
+++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/v9/testProjectMap1_2.map.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap"
+		  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+		  xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd"
+		  project-version="8">
+
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-protostuff/src/test/resources/cayenne-protostuff.xml
----------------------------------------------------------------------
diff --git a/cayenne-protostuff/src/test/resources/cayenne-protostuff.xml b/cayenne-protostuff/src/test/resources/cayenne-protostuff.xml
index e585624..08d85b1 100644
--- a/cayenne-protostuff/src/test/resources/cayenne-protostuff.xml
+++ b/cayenne-protostuff/src/test/resources/cayenne-protostuff.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="protostuff"/>
 
 	<node name="datanode"

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-protostuff/src/test/resources/protostuff.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-protostuff/src/test/resources/protostuff.map.xml b/cayenne-protostuff/src/test/resources/protostuff.map.xml
index 373b84e..d3277bf 100644
--- a/cayenne-protostuff/src/test/resources/protostuff.map.xml
+++ b/cayenne-protostuff/src/test/resources/protostuff.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.rop.protostuff.persistent"/>
 	<property name="clientSupported" value="true"/>
 	<property name="defaultClientPackage" value="org.apache.cayenne.rop.protostuff.persistent"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
index 5f7d9ab..0d66f55 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
@@ -120,7 +120,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 * The namespace in which the data map XML file will be created. This is
 	 * also the URI to locate a copy of the schema document.
 	 */
-	public static final String SCHEMA_XSD = "http://cayenne.apache.org/schema/8/modelMap";
+	public static final String SCHEMA_XSD = "http://cayenne.apache.org/schema/9/modelMap";
 
 	protected String name;
 	protected String location;
@@ -311,7 +311,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 * @since 1.1
 	 */
 	public void encodeAsXML(XMLEncoder encoder) {
-		encoder.println("<data-map xmlns=\"http://cayenne.apache.org/schema/8/modelMap\"");
+		encoder.println("<data-map xmlns=\"http://cayenne.apache.org/schema/9/modelMap\"");
 
 		encoder.indent(1);
 		encoder.println(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/modelMap.xsd
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/modelMap.xsd b/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/modelMap.xsd
deleted file mode 100644
index 45c0792..0000000
--- a/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/modelMap.xsd
+++ /dev/null
@@ -1,338 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-
-<!--
-	Cayenne entity map schema 
-	Defines format of Cayenne DataMap XML files (*.map.xml).  DataMap files contain
-	the metadata needed for Cayenne object-relational features. Multiple DataMaps
-	are usually combined in one shared namespace, so the elements of the DataMap
-	may reference objects from other DataMaps.
---> 
-<xs:schema targetNamespace="http://cayenne.apache.org/schema/8/modelMap"
-	xmlns:cay="http://cayenne.apache.org/schema/8/modelMap"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="8">
-	<xs:element name="data-map">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:property"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:embeddable"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:procedure"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:db-entity"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:obj-entity"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:db-relationship"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:obj-relationship"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:query"/>
-			</xs:sequence>
-			<xs:attribute name="project-version" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="db-entity">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element maxOccurs="unbounded" ref="cay:db-attribute"/>
-				<xs:element minOccurs="0" ref="cay:db-key-generator"/>
-				
-				<!-- Qualifier for DB Entity -->
-				<xs:element minOccurs="0" ref="cay:qualifier"/>
-			</xs:sequence>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-			<xs:attribute name="schema" type="xs:string"/>
-			<xs:attribute name="catalog" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="db-attribute">
-		<xs:annotation>
-			<xs:documentation>A database column.</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
-			<xs:attribute name="isMandatory" type="xs:boolean"/>
-			<xs:attribute name="isPrimaryKey" type="xs:boolean">
-				<xs:annotation>
-					<xs:documentation>If true, the value of attribute is unique and used as a primary key identifier.</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="isGenerated" use="optional" type="xs:boolean"/>
-			<xs:attribute name="length" type="xs:integer"/>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-			<xs:attribute name="scale" type="xs:integer"/>
-			<xs:attribute name="type" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="obj-entity">
-		<xs:annotation>
-			<xs:documentation>A persistent Java class managed by Cayenne.</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element minOccurs="0" ref="cay:qualifier"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:embedded-attribute"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:obj-attribute"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:attribute-override"/>
-				
-				<!--  Callbacks -->
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-add"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:pre-persist"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-persist"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:pre-update"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-update"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:pre-remove"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-remove"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:post-load"/>
-			</xs:sequence>
-			<xs:attribute name="className" use="optional" type="xs:string"/>
-			<xs:attribute name="abstract" use="optional" type="xs:string"/>
-			<xs:attribute name="readOnly" use="optional" type="xs:boolean"/>
-			<xs:attribute name="clientClassName" use="optional" type="xs:string"/>
-			<xs:attribute name="clientSuperClassName" use="optional" type="xs:string"/>
-			<xs:attribute name="dbEntityName" use="optional" type="xs:string"/>
-			<xs:attribute name="lock-type" type="xs:string"/>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-			<xs:attribute name="superClassName" use="optional" type="xs:string"/>
-			<xs:attribute name="superEntityName" use="optional" type="xs:string"/>
-			<xs:attribute name="serverOnly" use="optional" type="xs:boolean"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="qualifier" type="xs:string"/>
-
-	<xs:element name="obj-attribute">
-		<xs:complexType>
-			<xs:attribute name="db-attribute-path" use="optional" type="xs:string"/>
-			<xs:attribute name="lock" use="optional" type="xs:boolean"/>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-			<xs:attribute name="type" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="attribute-override">
-		<xs:complexType>
-			<xs:attribute name="db-attribute-path" use="optional" type="xs:string"/>
-			<xs:attribute name="lock" use="optional" type="xs:boolean"/>
-			<xs:attribute name="name" use="optional" type="xs:string"/>
-			<xs:attribute name="type" use="optional" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="db-relationship">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element minOccurs="1" maxOccurs="unbounded" ref="cay:db-attribute-pair"/>
-			</xs:sequence>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-			<xs:attribute name="source" use="required" type="xs:string"/>
-			<xs:attribute name="target" use="required" type="xs:string"/>
-			<xs:attribute name="toDependentPK" type="xs:boolean"/>
-			<xs:attribute name="toMany" use="required" type="xs:boolean"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="db-attribute-pair">
-		<xs:complexType>
-			<xs:attribute name="source" use="required" type="xs:string"/>
-			<xs:attribute name="target" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="obj-relationship">
-		<xs:complexType>
-			<xs:attribute name="db-relationship-path" use="required" type="xs:string"/>
-			<xs:attribute name="deleteRule" type="xs:string"/>
-			<xs:attribute name="lock" type="xs:boolean"/>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-			<xs:attribute name="source" use="required" type="xs:string"/>
-			<xs:attribute name="target" use="required" type="xs:string"/>
-			<xs:attribute name="collection-type" use="optional" type="xs:string"/>
-			<xs:attribute name="map-key" use="optional" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="query">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:property"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:sql"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:ejbql"/>
-				<xs:element name="qualifier" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:ordering"/>
-				<xs:element name="prefetch" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
-			</xs:sequence>
-			<xs:attribute name="type" use="required" type="xs:string"/>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-			<xs:attribute name="root" use="optional" type="xs:string"/>
-			<xs:attribute name="root-name" use="optional" type="xs:string"/>
-			<xs:attribute name="result-entity" use="optional" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="ordering">
-		<xs:complexType>
-			<xs:simpleContent>
-				<xs:extension base="xs:string">
-					<xs:attribute name="descending" type="xs:boolean"/>
-					<xs:attribute name="ignore-case" type="xs:boolean"/>
-				</xs:extension>
-			</xs:simpleContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="sql">
-		<xs:annotation>
-			<xs:documentation>Defines arbitrary SQL statement. Note that SQL statement can be customized for different SQL dialects per DbAdapter class. If no adapter-specific statement is found, the one with no adapter label is used by default.</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
-			<xs:simpleContent>
-				<xs:extension base="xs:string">
-					<xs:attribute name="adapter-class" type="xs:string"/>
-				</xs:extension>
-			</xs:simpleContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="ejbql" type="xs:string"/>
-
-	<xs:element name="property">
-		<xs:annotation>
-			<xs:documentation>A generic property used by other elements.</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-			<xs:attribute name="value" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="embeddable">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="embeddable-attribute" minOccurs="0" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:attribute name="name" use="required" type="xs:string"/>
-						<xs:attribute name="type" use="required" type="xs:string"/>
-						<xs:attribute name="db-attribute-name" use="required" type="xs:string"/>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="className" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="embedded-attribute">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element minOccurs="0" maxOccurs="unbounded"
-					ref="cay:embeddable-attribute-override"/>
-			</xs:sequence>
-			<xs:attribute name="type" use="required" type="xs:string"/>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="embeddable-attribute-override">
-		<xs:complexType>
-			<xs:attribute name="db-attribute-path" use="required" type="xs:string"/>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="procedure">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element minOccurs="0" maxOccurs="unbounded" name="procedure-parameter">
-					<xs:complexType>
-						<xs:attribute name="name" use="required" type="xs:string"/>
-						<xs:attribute name="type" use="required" type="xs:string"/>
-						<xs:attribute name="length" use="optional" type="xs:integer"/>
-						<xs:attribute name="direction" use="required" type="xs:string"/>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-			<xs:attribute name="schema" type="xs:string"/>
-			<xs:attribute name="catalog" type="xs:string"/>
-			<xs:attribute name="returningValue" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="pre-update">
-		<xs:complexType>
-			<xs:attribute name="method-name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="post-persist">
-		<xs:complexType>
-			<xs:attribute name="method-name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="post-update">
-		<xs:complexType>
-			<xs:attribute name="method-name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="post-add">
-		<xs:complexType>
-			<xs:attribute name="method-name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="pre-persist">
-		<xs:complexType>
-			<xs:attribute name="method-name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="post-remove">
-		<xs:complexType>
-			<xs:attribute name="method-name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="post-load">
-		<xs:complexType>
-			<xs:attribute name="method-name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="pre-remove">
-		<xs:complexType>
-			<xs:attribute name="method-name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="db-key-generator">
-		<xs:annotation>
-			<xs:documentation>Used to install the Automatic Sequence/Key Generation facility for db-entity. This feature is intended for use with simple (non-compound) integral primary keys.</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="db-generator-type" type="xs:string">
-					<xs:annotation>
-						<xs:documentation>Specifies the Key Generation Method that will be employed
-      'ORACLE'               - use Oracle's SEQUENCE
-      'NAMED_SEQUENCE_TABLE' - use USER designated SEQUENCE TABLE. User specifies the name of a DBMS Table with the schema (sequence INT) which will be used to hold sequence values (not supported yet)</xs:documentation>
-					</xs:annotation>
-				</xs:element>
-				<xs:element minOccurs="0" name="db-generator-name" type="xs:string">
-					<xs:annotation>
-						<xs:documentation>For db-generator-type ORACLE this is the name of the ORACLE SEQUENCE to use. The SEQUENCE is assumed to already exist in the Database.
-If this is db-generator-type NAMED_SEQUENCE_TABLE Key Generation, this specifies the name of the SEQUENCE TABLE to use. The NAMED_SEQUENCE_TABLE is assumed to already exist in the database.</xs:documentation>
-					</xs:annotation>
-				</xs:element>
-				<xs:element minOccurs="0" name="db-key-cache-size" type="xs:integer">
-					<xs:annotation>
-						<xs:documentation>Size of key cache. For db-generator-type ORACLE , this value MUST match the Oracle SEQUENCE  INCREMENT value.  If there is a mismatch between this value and the Oracle SEQUENCE INCREMENT value, then there will likely be duplicate key problems.
-For db-generator-type NAMED_SEQUENCE_TABLE , this tells how many keys the Container will fetch in a single DBMS call.</xs:documentation>
-					</xs:annotation>
-				</xs:element>
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/reverseEngineering.xsd
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/reverseEngineering.xsd b/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/reverseEngineering.xsd
deleted file mode 100644
index 93248ba..0000000
--- a/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/reverseEngineering.xsd
+++ /dev/null
@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
-  -->
-<xs:schema attributeFormDefault="unqualified"
-           elementFormDefault="qualified"
-           xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-    <xs:complexType name="PatternParamType" mixed="true">
-        <xs:annotation>
-            <xs:documentation>
-                At least one of 3 options ot fill pattern information should be used
-                1) &lt;tag>pattern&lt;tag>
-                2) &lt;tag pattern="pattern" />
-                3) &lt;tag>
-                      &lt;pattern>pattern&lt;/pattern>
-                   &lt;/tag>
-            </xs:documentation>
-        </xs:annotation>
-        <xs:sequence>
-            <xs:element type="xs:string" name="pattern" minOccurs="0"/>
-        </xs:sequence>
-        <xs:attribute type="xs:string" name="pattern" use="optional"/>
-    </xs:complexType>
-
-    <xs:complexType name="IncludeTableType" mixed="true">
-        <xs:complexContent>
-            <xs:extension base="PatternParamType">
-                <xs:sequence>
-                    <xs:choice minOccurs="0" maxOccurs="unbounded">
-                        <xs:element name="includeColumn" type="PatternParamType" />
-                        <xs:element name="excludeColumn" type="PatternParamType" />
-                    </xs:choice>
-                </xs:sequence>
-            </xs:extension>
-        </xs:complexContent>
-    </xs:complexType>
-
-    <xs:complexType name="FilterContainerType">
-        <xs:sequence>
-            <xs:choice minOccurs="1" maxOccurs="unbounded">
-                <xs:element name="includeTable" type="IncludeTableType" />
-                <xs:element name="excludeTable" type="PatternParamType" />
-                <xs:element name="includeColumn" type="PatternParamType" />
-                <xs:element name="excludeColumn" type="PatternParamType" />
-                <xs:element name="includeProcedure" type="PatternParamType" />
-                <xs:element name="excludeProcedure" type="PatternParamType" />
-            </xs:choice>
-        </xs:sequence>
-    </xs:complexType>
-
-    <xs:complexType name="SchemaType" mixed="true">
-        <xs:annotation>
-            <xs:documentation>
-                At least one of 3 options to provide schema name can be used:
-                1) &lt;schema>name&lt;schema>
-                2) &lt;schema name="name" />
-                3) &lt;schema>
-                &lt;name>name&lt;/name>
-                &lt;/schema>
-            </xs:documentation>
-        </xs:annotation>
-        <xs:complexContent>
-            <xs:extension base="FilterContainerType">
-                <xs:sequence>
-                    <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
-                </xs:sequence>
-                <xs:attribute type="xs:string" name="name" use="optional" />
-            </xs:extension>
-        </xs:complexContent>
-    </xs:complexType>
-
-    <xs:complexType name="CatalogType" mixed="true">
-        <xs:annotation>
-            <xs:documentation>
-                At least one of 3 options to provide schema name can be used:
-                1) &lt;catalog>name&lt;catalog>
-                2) &lt;catalog name="name" />
-                3) &lt;catalog>
-                &lt;name>name&lt;/name>
-                &lt;/catalog>
-            </xs:documentation>
-        </xs:annotation>
-        <xs:complexContent>
-            <xs:extension base="FilterContainerType">
-                <xs:sequence>
-                    <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
-                    <xs:choice minOccurs="0" maxOccurs="unbounded">
-                        <xs:element name="schema" type="SchemaType" />
-                    </xs:choice>
-                </xs:sequence>
-                <xs:attribute type="xs:string" name="name" use="optional" />
-            </xs:extension>
-        </xs:complexContent>
-    </xs:complexType>
-
-    <xs:complexType name="ReverseEngineeringType">
-        <xs:annotation>
-            <xs:documentation>
-                <!-- TODO -->
-            </xs:documentation>
-        </xs:annotation>
-        <xs:complexContent>
-            <xs:extension base="FilterContainerType">
-                <xs:sequence>
-                    <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
-                    <xs:choice minOccurs="0" maxOccurs="unbounded">
-                        <xs:element name="skipRelationshipsLoading" type="xs:boolean" />
-                        <xs:element name="skipPrimaryKeyLoading" type="xs:boolean" />
-                        <xs:element name="catalog" type="CatalogType" />
-                        <xs:element name="schema" type="SchemaType" />
-                    </xs:choice>
-                </xs:sequence>
-                <xs:attribute type="xs:string" name="name" use="optional" />
-            </xs:extension>
-        </xs:complexContent>
-    </xs:complexType>
-
-    <xs:element name="reverseEngineering" type="ReverseEngineeringType">
-        <xs:annotation>
-            <!-- TODO -->
-            <xs:documentation> </xs:documentation>
-        </xs:annotation>
-    </xs:element>
-
-</xs:schema>


[2/7] cayenne git commit: Revert to the old Reverse Engineering UI style

Posted by sk...@apache.org.
Revert to the old Reverse Engineering UI style


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/29671e75
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/29671e75
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/29671e75

Branch: refs/heads/master
Commit: 29671e75b38620811c2bfc6c0f2b0af01d4942dd
Parents: f7ad0cc
Author: ollybondareva <ol...@gmail.com>
Authored: Wed Oct 19 17:37:45 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Oct 20 12:53:11 2016 +0300

----------------------------------------------------------------------
 .../dbsync/naming/DeduplicationVisitor.java     |  24 --
 .../dbsync/naming/DefaultBaseNameVisitor.java   |   6 -
 .../dbsync/naming/NormalizationVisitor.java     |   6 -
 .../cayenne/project/ConfigurationSaver.java     |   9 -
 .../project/ConfigurationSourceGetter.java      |   5 -
 .../project/ConfigurationSourceSetter.java      |   7 -
 .../DefaultConfigurationNodeParentGetter.java   |  12 -
 .../cayenne/project/SaveableNodesGetter.java    |   9 -
 .../validation/DefaultProjectValidator.java     |   8 -
 .../validation/ReverseEngineeringValidator.java |  42 ---
 .../project/ReverseEngineeringSaverTest.java    |  62 ----
 .../BaseConfigurationNodeVisitor.java           |   5 -
 .../configuration/ConfigurationNodeVisitor.java |   3 -
 .../DefaultConfigurationNameMapper.java         |  18 --
 .../XMLDataChannelDescriptorLoader.java         |  18 --
 .../cayenne/dbimport/ReverseEngineering.java    |  21 +-
 .../java/org/apache/cayenne/map/DataMap.java    |  15 -
 .../java/org/apache/cayenne/map/MapLoader.java  |  22 --
 .../org/apache/cayenne/schema/8/modelMap.xsd    |   7 -
 .../apache/cayenne/tools/DbImporterTask.java    | 111 ++------
 .../modeler/ProjectFileChangeTracker.java       |   6 -
 .../cayenne/modeler/action/RemoveAction.java    |   4 -
 .../action/ReverseEngineeringAction.java        |  66 ++++-
 .../modeler/dialog/db/ConnectionWizard.java     |  89 ++++++
 .../modeler/dialog/db/DataMapViewModel.java     |  46 ---
 .../modeler/dialog/db/DataSourceWizard.java     | 222 +++++++++++++++
 .../modeler/dialog/db/DataSourceWizardView.java |  94 +++++++
 .../modeler/dialog/db/DbLoaderHelper.java       |  50 +++-
 .../dialog/db/DbLoaderOptionsDialog.java        | 253 +++++++++++++++++
 .../modeler/dialog/db/ModelerDbLoader.java      | 258 -----------------
 .../dialog/db/ReverseEngineeringController.java | 243 ----------------
 .../dialog/db/ReverseEngineeringScrollPane.java |  34 ---
 .../dialog/db/ReverseEngineeringView.java       | 281 -------------------
 .../modeler/dialog/db/model/DbCatalog.java      |  30 --
 .../modeler/dialog/db/model/DbColumn.java       |  34 ---
 .../modeler/dialog/db/model/DbElement.java      |  62 ----
 .../modeler/dialog/db/model/DbEntity.java       |  37 ---
 .../modeler/dialog/db/model/DbModel.java        |  29 --
 .../modeler/dialog/db/model/DbProcedure.java    |  33 ---
 .../modeler/dialog/db/model/DbSchema.java       |  29 --
 .../dialog/pref/FilteredTreeCellRenderer.java   |  85 ------
 .../cayenne/modeler/dialog/pref/TreeEditor.java | 101 -------
 .../cayenne/modeler/dialog/pref/TreeView.java   |  56 ----
 .../modeler/dialog/pref/XMLFileEditor.java      |  82 ------
 .../cayenne/modeler/dialog/pref/XMLView.java    |  72 -----
 .../modeler/editor/DataMapTabbedView.java       |  21 +-
 .../cayenne/modeler/util/CellRenderers.java     |  13 -
 .../apache/cayenne/tools/DbImporterMojo.java    |  95 +------
 .../cayenne/tools/DbImporterMojoTest.java       |   1 -
 49 files changed, 775 insertions(+), 2061 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java
index 09d2d97..cd42d32 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java
@@ -22,7 +22,6 @@ import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
@@ -206,29 +205,6 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String> {
         });
     }
 
-    @Override
-    public String visitReverseEngineering(ReverseEngineering reverseEngineering) {
-        return resolve(new Predicate() {
-            @Override
-            public boolean isNameInUse(String name) {
-
-                if (parent == null) {
-                    return false;
-                }
-
-                DataChannelDescriptor dataChannelDescriptor = (DataChannelDescriptor) parent;
-                for (DataMap dataMap : dataChannelDescriptor.getDataMaps()) {
-                    if (dataMap != null && dataMap.getReverseEngineering() != null &&
-                            dataMap.getReverseEngineering().getName() != null
-                            && dataMap.getReverseEngineering().getName().equals(name)) {
-                        return true;
-                    }
-                }
-                return false;
-            }
-        });
-    }
-
     String resolve(Predicate nameChecker) {
         int c = 1;
         String name = baseName;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DefaultBaseNameVisitor.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DefaultBaseNameVisitor.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DefaultBaseNameVisitor.java
index ecc17f0..f08e04e 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DefaultBaseNameVisitor.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DefaultBaseNameVisitor.java
@@ -21,7 +21,6 @@ package org.apache.cayenne.dbsync.naming;
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
@@ -114,9 +113,4 @@ class DefaultBaseNameVisitor implements ConfigurationNodeVisitor<String> {
     public String visitQuery(QueryDescriptor query) {
         return "query";
     }
-
-    @Override
-    public String visitReverseEngineering(ReverseEngineering reverseEngineering) {
-        return "reverseEngineering";
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NormalizationVisitor.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NormalizationVisitor.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NormalizationVisitor.java
index 75d941d..ba8cf9d 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NormalizationVisitor.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NormalizationVisitor.java
@@ -21,7 +21,6 @@ package org.apache.cayenne.dbsync.naming;
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
@@ -115,9 +114,4 @@ class NormalizationVisitor implements ConfigurationNodeVisitor<String> {
     public String visitQuery(QueryDescriptor query) {
         return baseName;
     }
-
-    @Override
-    public String visitReverseEngineering(ReverseEngineering reverseEngineering) {
-        return baseName;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSaver.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSaver.java b/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSaver.java
index 01d3989..9ed8a88 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSaver.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSaver.java
@@ -22,7 +22,6 @@ import java.io.PrintWriter;
 
 import org.apache.cayenne.configuration.BaseConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.util.XMLEncoder;
 
@@ -55,14 +54,6 @@ class ConfigurationSaver extends BaseConfigurationNodeVisitor<Void> {
         return null;
     }
 
-    @Override
-    public Void visitReverseEngineering(ReverseEngineering node) {
-        XMLEncoder encoder = new XMLEncoder(printWriter, "\t", version);
-        printXMLHeader(encoder);
-        node.encodeAsXML(encoder);
-        return null;
-    }
-
     private void printXMLHeader(XMLEncoder encoder) {
         encoder.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceGetter.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceGetter.java b/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceGetter.java
index be68dad..61cafe6 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceGetter.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceGetter.java
@@ -20,7 +20,6 @@ package org.apache.cayenne.project;
 
 import org.apache.cayenne.configuration.BaseConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.resource.Resource;
 
@@ -41,8 +40,4 @@ class ConfigurationSourceGetter extends BaseConfigurationNodeVisitor<Resource> {
         return dataMap.getConfigurationSource();
     }
 
-    @Override
-    public Resource visitReverseEngineering(ReverseEngineering reverseEngineering) {
-        return reverseEngineering.getConfigurationSource();
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceSetter.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceSetter.java b/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceSetter.java
index 7a3f5d3..2854df1 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceSetter.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/ConfigurationSourceSetter.java
@@ -21,7 +21,6 @@ package org.apache.cayenne.project;
 import org.apache.cayenne.configuration.BaseConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.resource.Resource;
 
@@ -55,10 +54,4 @@ class ConfigurationSourceSetter extends BaseConfigurationNodeVisitor<Void> {
         node.setConfigurationSource(configurationSource);
         return null;
     }
-
-    @Override
-    public Void visitReverseEngineering(ReverseEngineering node) {
-        node.setConfigurationSource(configurationSource);
-        return null;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-project/src/main/java/org/apache/cayenne/project/DefaultConfigurationNodeParentGetter.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/DefaultConfigurationNodeParentGetter.java b/cayenne-project/src/main/java/org/apache/cayenne/project/DefaultConfigurationNodeParentGetter.java
index dc3c839..669d80b 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/DefaultConfigurationNodeParentGetter.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/DefaultConfigurationNodeParentGetter.java
@@ -22,7 +22,6 @@ import org.apache.cayenne.configuration.BaseConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
@@ -34,7 +33,6 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.map.ProcedureParameter;
-import org.apache.cayenne.map.QueryDescriptor;
 
 public class DefaultConfigurationNodeParentGetter implements ConfigurationNodeParentGetter {
 
@@ -109,15 +107,5 @@ public class DefaultConfigurationNodeParentGetter implements ConfigurationNodePa
         public ConfigurationNode visitProcedureParameter(ProcedureParameter parameter) {
             return (ConfigurationNode) parameter.getParent();
         }
-
-        @Override
-        public ConfigurationNode visitQuery(QueryDescriptor query) {
-            return query.getDataMap();
-        }
-
-        @Override
-        public ConfigurationNode visitReverseEngineering(ReverseEngineering reverseEngineering) {
-            return reverseEngineering;
-        }
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-project/src/main/java/org/apache/cayenne/project/SaveableNodesGetter.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/SaveableNodesGetter.java b/cayenne-project/src/main/java/org/apache/cayenne/project/SaveableNodesGetter.java
index 61c9468..ee20da3 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/SaveableNodesGetter.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/SaveableNodesGetter.java
@@ -25,7 +25,6 @@ import java.util.Collections;
 import org.apache.cayenne.configuration.BaseConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 
 /**
@@ -43,9 +42,6 @@ class SaveableNodesGetter extends
 
         for (DataMap map : descriptor.getDataMaps()) {
             nodes.add(map);
-            if (map.getReverseEngineering() != null) {
-                nodes.add(map.getReverseEngineering());
-            }
         }
 
         return nodes;
@@ -55,9 +51,4 @@ class SaveableNodesGetter extends
     public Collection<ConfigurationNode> visitDataMap(DataMap dataMap) {
         return Collections.<ConfigurationNode> singletonList(dataMap);
     }
-
-    @Override
-    public Collection<ConfigurationNode> visitReverseEngineering(ReverseEngineering reverseEngineering) {
-        return null;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-project/src/main/java/org/apache/cayenne/project/validation/DefaultProjectValidator.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/DefaultProjectValidator.java b/cayenne-project/src/main/java/org/apache/cayenne/project/validation/DefaultProjectValidator.java
index f240fc8..c25fefe 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/DefaultProjectValidator.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/validation/DefaultProjectValidator.java
@@ -24,7 +24,6 @@ import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
@@ -65,7 +64,6 @@ public class DefaultProjectValidator implements ProjectValidator {
     private ProcedureQueryValidator procedureQueryValidator;
     private EJBQLQueryValidator ejbqlQueryValidator;
     private SQLTemplateValidator sqlTemplateValidator;
-    private ReverseEngineeringValidator reverseEngineeringValidator;
 
     DefaultProjectValidator() {
         dataChannelValidator = new DataChannelValidator();
@@ -85,7 +83,6 @@ public class DefaultProjectValidator implements ProjectValidator {
         procedureQueryValidator = new ProcedureQueryValidator();
         ejbqlQueryValidator = new EJBQLQueryValidator();
         sqlTemplateValidator = new SQLTemplateValidator();
-        reverseEngineeringValidator = new ReverseEngineeringValidator();
     }
 
     public ValidationResult validate(ConfigurationNode node) {
@@ -273,10 +270,5 @@ public class DefaultProjectValidator implements ProjectValidator {
 
             return validationResult;
         }
-
-        public ValidationResult visitReverseEngineering(ReverseEngineering reverseEngineering) {
-            reverseEngineeringValidator.validate(reverseEngineering, validationResult);
-            return validationResult;
-        }
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ReverseEngineeringValidator.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ReverseEngineeringValidator.java b/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ReverseEngineeringValidator.java
deleted file mode 100644
index 99b92ba..0000000
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ReverseEngineeringValidator.java
+++ /dev/null
@@ -1,42 +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.project.validation;
-
-import org.apache.cayenne.dbimport.ReverseEngineering;
-import org.apache.cayenne.util.Util;
-import org.apache.cayenne.validation.ValidationResult;
-
-/**
- * @since 4.0
- */
-public class ReverseEngineeringValidator extends ConfigurationNodeValidator{
-    void validate(ReverseEngineering reverseEngineering, ValidationResult validationResult) {
-        validateName(reverseEngineering, validationResult);
-    }
-
-    void validateName(ReverseEngineering reverseEngineering, ValidationResult validationResult) {
-        String name = reverseEngineering.getName();
-
-        // Must have name
-        if (Util.isEmptyString(name)) {
-            addFailure(validationResult, reverseEngineering, "Unnamed ReverseEngineering");
-            return;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-project/src/test/java/org/apache/cayenne/project/ReverseEngineeringSaverTest.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/ReverseEngineeringSaverTest.java b/cayenne-project/src/test/java/org/apache/cayenne/project/ReverseEngineeringSaverTest.java
deleted file mode 100644
index 1176f19..0000000
--- a/cayenne-project/src/test/java/org/apache/cayenne/project/ReverseEngineeringSaverTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.apache.cayenne.project;
-
-import org.apache.cayenne.configuration.*;
-import org.apache.cayenne.dbimport.ReverseEngineering;
-import org.apache.cayenne.di.*;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.project.unit.Project2Case;
-import org.apache.cayenne.resource.URLResource;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.File;
-import java.net.MalformedURLException;
-
-import static org.junit.Assert.assertTrue;
-
-/**
- * @since 4.0
- */
-public class ReverseEngineeringSaverTest extends Project2Case {
-    private FileProjectSaver saver;
-
-    @Before
-    public void setUp() throws Exception {
-        Module testModule = new Module() {
-
-            public void configure(Binder binder) {
-                binder.bind(ConfigurationNameMapper.class).to(
-                        DefaultConfigurationNameMapper.class);
-            }
-        };
-
-        saver = new FileProjectSaver();
-        Injector injector = DIBootstrap.createInjector(testModule);
-        injector.injectMembers(saver);
-    }
-
-    @Test
-    public void testSaveReversEngineering() throws MalformedURLException {
-        File testFolder = setupTestDirectory("testSaverRE");
-
-        DataChannelDescriptor rootNode = new DataChannelDescriptor();
-        rootNode.setName("test");
-
-        DataMap dataMap = new DataMap("datamap1");
-        dataMap.setReverseEngineering(new ReverseEngineering("reverseEngineering1"));
-        rootNode.getDataMaps().add(dataMap);
-
-        Project project = new Project(new ConfigurationTree<>(rootNode));
-        saver.saveAs(project, new URLResource(testFolder.toURL()));
-
-        DataMapLoader dataMapLoader = new XMLDataMapLoader();
-        DataMap dataMap1 = dataMapLoader.load(dataMap.getConfigurationSource());
-        String reverseEngineeringName = dataMap1.getReverseEngineering().getName();
-
-        File reFile = new File(testFolder, reverseEngineeringName + ".xml");
-        assertTrue(reFile.exists());
-        assertTrue(reFile.length() > 0);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-server/src/main/java/org/apache/cayenne/configuration/BaseConfigurationNodeVisitor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/BaseConfigurationNodeVisitor.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/BaseConfigurationNodeVisitor.java
index f34c813..70e07c7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/BaseConfigurationNodeVisitor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/BaseConfigurationNodeVisitor.java
@@ -18,7 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.configuration;
 
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
@@ -98,8 +97,4 @@ public abstract class BaseConfigurationNodeVisitor<T> implements
     public T visitQuery(QueryDescriptor query) {
         throw new UnsupportedOperationException("Not implemented for Query");
     }
-
-    public T visitReverseEngineering(ReverseEngineering reverseEngineering) {
-        throw new UnsupportedOperationException("Not implemented for ReverseEngineering");
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNodeVisitor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNodeVisitor.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNodeVisitor.java
index 508a5f8..60d2900 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNodeVisitor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNodeVisitor.java
@@ -18,7 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.configuration;
 
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
@@ -67,6 +66,4 @@ public interface ConfigurationNodeVisitor<T> {
     T visitProcedureParameter(ProcedureParameter parameter);
 
     T visitQuery(QueryDescriptor query);
-
-    T visitReverseEngineering(ReverseEngineering reverseEngineering);
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
index 16b782a..ffe2868 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
@@ -18,7 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.configuration;
 
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.resource.Resource;
 
@@ -32,8 +31,6 @@ public class DefaultConfigurationNameMapper implements ConfigurationNameMapper {
 
 	private static final String DATA_MAP_SUFFIX = ".map.xml";
 
-	private static final String REVERSE_ENGINEERING_SUFFIX = ".xml";
-
 	protected ConfigurationNodeVisitor<String> nameMapper;
 
 	public DefaultConfigurationNameMapper() {
@@ -51,8 +48,6 @@ public class DefaultConfigurationNameMapper implements ConfigurationNameMapper {
 			return getDataChannelName(name);
 		} else if (DataMap.class.isAssignableFrom(type)) {
 			return getDataMapName(name);
-		} else if (ReverseEngineering.class.isAssignableFrom(type)) {
-			return getReverseEngineeringName(name);
 		}
 
 		throw new IllegalArgumentException("Unrecognized configuration type: " + type.getName());
@@ -109,14 +104,6 @@ public class DefaultConfigurationNameMapper implements ConfigurationNameMapper {
 		return name + DATA_MAP_SUFFIX;
 	}
 
-	private String getReverseEngineeringName(String name) {
-		if (name == null) {
-			throw new NullPointerException("Null Reverse Engineering name");
-		}
-
-		return name + REVERSE_ENGINEERING_SUFFIX;
-	}
-
 	final class NameMapper extends BaseConfigurationNodeVisitor<String> {
 
 		@Override
@@ -128,10 +115,5 @@ public class DefaultConfigurationNameMapper implements ConfigurationNameMapper {
 		public String visitDataMap(DataMap dataMap) {
 			return getDataMapName(dataMap.getName());
 		}
-
-		@Override
-		public String visitReverseEngineering(ReverseEngineering reverseEngineering) {
-			return getReverseEngineeringName(reverseEngineering.getName());
-		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java
index 4539f16..34775ef 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java
@@ -18,11 +18,8 @@
  ****************************************************************/
 package org.apache.cayenne.configuration;
 
-import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.ConfigurationException;
 import org.apache.cayenne.conn.DataSourceInfo;
-import org.apache.cayenne.dbimport.DefaultReverseEngineeringLoader;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DataMap;
@@ -214,21 +211,6 @@ public class XMLDataChannelDescriptorLoader implements DataChannelDescriptorLoad
 				dataMap.setConfigurationSource(dataMapResource);
 				dataMap.setDataChannelDescriptor(descriptor);
 
-                try {
-                    if (dataMap.getReverseEngineering() != null) {
-                        String reverseEngineeringName = dataMap.getReverseEngineering().getName();
-                        String reverseEngineeringLocation = nameMapper.configurationLocation(ReverseEngineering.class, reverseEngineeringName);
-                        Resource reverseEngineeringResource = baseResource.getRelativeResource(reverseEngineeringLocation);
-                        DefaultReverseEngineeringLoader reverseEngineeringLoader = new DefaultReverseEngineeringLoader();
-                        ReverseEngineering reverseEngineering = reverseEngineeringLoader.load(reverseEngineeringResource.getURL().openStream());
-                        reverseEngineering.setName(reverseEngineeringName);
-                        reverseEngineering.setConfigurationSource(reverseEngineeringResource);
-                        dataMap.setReverseEngineering(reverseEngineering);
-                    }
-                } catch (IOException e) {
-                    throw new CayenneRuntimeException("Error loading reverse engineering model", e);
-                }
-
                 descriptor.getDataMaps().add(dataMap);
             } else if (localName.equals(NODE_TAG)) {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java
index 2d74d85..5781561 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dbimport/ReverseEngineering.java
@@ -19,16 +19,9 @@
 package org.apache.cayenne.dbimport;
 
 
-import org.apache.cayenne.configuration.ConfigurationNode;
-import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.resource.Resource;
-import org.apache.cayenne.util.XMLEncoder;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.*;
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.LinkedList;
@@ -38,7 +31,7 @@ import java.util.LinkedList;
  */
 @XmlRootElement(name = "reverseEngineering")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class ReverseEngineering extends FilterContainer implements ConfigurationNode, Serializable {
+public class ReverseEngineering extends FilterContainer implements Serializable {
 
     @XmlTransient
     protected Resource configurationSource;
@@ -166,16 +159,6 @@ public class ReverseEngineering extends FilterContainer implements Configuration
         return super.toString(res, "  ").toString();
     }
 
-    @Override
-    public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor) {
-        return visitor.visitReverseEngineering(this);
-    }
-
-    public void encodeAsXML(XMLEncoder encoder) {
-        DefaultReverseEngineeringWriter defaultReverseEngineeringWriter = new DefaultReverseEngineeringWriter();
-        defaultReverseEngineeringWriter.write(this, encoder.getPrintWriter());
-    }
-
     /**
      * @since 4.0
      */

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
index 500ee03..5f7d9ab 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
@@ -25,7 +25,6 @@ import org.apache.cayenne.Persistent;
 import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
-import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.event.DbEntityListener;
 import org.apache.cayenne.map.event.EntityEvent;
 import org.apache.cayenne.map.event.ObjEntityListener;
@@ -146,7 +145,6 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	private SortedMap<String, Procedure> procedureMap;
 	private SortedMap<String, QueryDescriptor> queryDescriptorMap;
 	private SortedMap<String, SQLResult> results;
-    private ReverseEngineering reverseEngineering;
 
 	/**
 	 * @deprecated since 4.0 unused as listeners are no longer tied to a
@@ -322,12 +320,6 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 		encoder.printProjectVersion();
 		encoder.println(">");
 
-        if (reverseEngineering != null) {
-			encoder.print("<reverse-engineering-config");
-            encoder.printAttribute("name", reverseEngineering.getName().trim());
-            encoder.println("/>");
-        }
-
 		// properties
 		if (defaultLockType == ObjEntity.LOCK_TYPE_OPTIMISTIC) {
 			encoder.printProperty(DEFAULT_LOCK_TYPE_PROPERTY, "optimistic");
@@ -1411,11 +1403,4 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
         return subObjectEntities;
     }
 
-    public ReverseEngineering getReverseEngineering() {
-        return reverseEngineering;
-    }
-
-    public void setReverseEngineering(ReverseEngineering reverseEngineering) {
-        this.reverseEngineering = reverseEngineering;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java
index 213e38e..f3164ab 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/MapLoader.java
@@ -46,11 +46,6 @@ public class MapLoader extends DefaultHandler {
 
 	public static final String DATA_MAP_TAG = "data-map";
 
-	/**
-	 * @since 4.0
-	 */
-	public static final String REVERSE_ENGINEERING = "reverse-engineering-config";
-
 	public static final String PROPERTY_TAG = "property";
 
 	/**
@@ -152,7 +147,6 @@ public class MapLoader extends DefaultHandler {
 	private Procedure procedure;
 	private QueryDescriptorLoader queryBuilder;
 	private String sqlKey;
-	private ReverseEngineering reverseEngineering;
 
 	private String descending;
 	private String ignoreCase;
@@ -176,15 +170,6 @@ public class MapLoader extends DefaultHandler {
 				processStartDataMap(attributes);
 			}
 		});
-
-		startTagOpMap.put(REVERSE_ENGINEERING, new StartClosure() {
-
-			@Override
-			void execute(Attributes attributes) throws SAXException {
-				processStartReverseEngineering(attributes);
-			}
-		});
-
 		
 		startTagOpMap.put(DB_ENTITY_TAG, new StartClosure() {
 
@@ -577,13 +562,6 @@ public class MapLoader extends DefaultHandler {
 			}
 		});
 	}
-
-	private void processStartReverseEngineering(Attributes attributes) {
-		reverseEngineering = new ReverseEngineering();
-		reverseEngineering.setName(attributes.getValue("", "name"));
-
-		dataMap.setReverseEngineering(reverseEngineering);
-	}
 	
 	private void processStartDataMap(Attributes attributes) {
 		this.mapVersion = attributes.getValue("", "project-version");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/modelMap.xsd
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/modelMap.xsd b/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/modelMap.xsd
index 3d77151..45c0792 100644
--- a/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/modelMap.xsd
+++ b/cayenne-server/src/main/resources/org/apache/cayenne/schema/8/modelMap.xsd
@@ -31,7 +31,6 @@
 	<xs:element name="data-map">
 		<xs:complexType>
 			<xs:sequence>
-				<xs:element minOccurs="0" maxOccurs="1" ref="cay:reverse-engineering-config"/>
 				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:property"/>
 				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:embeddable"/>
 				<xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:procedure"/>
@@ -207,12 +206,6 @@
 
 	<xs:element name="ejbql" type="xs:string"/>
 
-	<xs:element name="reverse-engineering-config">
-		<xs:complexType>
-			<xs:attribute name="name" use="required" type="xs:string"/>
-		</xs:complexType>
-	</xs:element>
-
 	<xs:element name="property">
 		<xs:annotation>
 			<xs:documentation>A generic property used by other elements.</xs:documentation>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/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 10c3d13..87fc179 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
@@ -18,31 +18,17 @@
  ****************************************************************/
 package org.apache.cayenne.tools;
 
-import org.apache.cayenne.configuration.ConfigurationNameMapper;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.configuration.XMLDataMapLoader;
 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.dbimport.Catalog;
-import org.apache.cayenne.dbimport.DefaultReverseEngineeringLoader;
-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.dbimport.*;
 import org.apache.cayenne.dbsync.CayenneDbSyncModule;
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
 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;
-import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
-import org.apache.cayenne.resource.Resource;
-import org.apache.cayenne.resource.URLResource;
 import org.apache.cayenne.tools.configuration.ToolsModule;
 import org.apache.cayenne.tools.dbimport.DbImportAction;
 import org.apache.cayenne.tools.dbimport.DbImportConfiguration;
@@ -55,14 +41,11 @@ import org.apache.tools.ant.Task;
 
 import javax.sql.DataSource;
 import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
 
 public class DbImporterTask extends Task {
 
     private final DbImportConfiguration config;
     private ReverseEngineering reverseEngineering;
-    private boolean isReverseEngineeringDefined;
 
     public DbImporterTask() {
         this.config = new DbImportConfiguration();
@@ -74,66 +57,52 @@ public class DbImporterTask extends Task {
     }
 
     public void addIncludeColumn(IncludeColumn includeColumn) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.addIncludeColumn(includeColumn);
     }
 
     public void addExcludeColumn(ExcludeColumn excludeColumn) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.addExcludeColumn(excludeColumn);
     }
 
     public void addIncludeTable(IncludeTable includeTable) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.addIncludeTable(includeTable);
     }
 
     public void addExcludeTable(ExcludeTable excludeTable) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.addExcludeTable(excludeTable);
     }
 
     public void addIncludeProcedure(IncludeProcedure includeProcedure) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.addIncludeProcedure(includeProcedure);
     }
 
     public void addExcludeProcedure(ExcludeProcedure excludeProcedure) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.addExcludeProcedure(excludeProcedure);
     }
 
     public void setSkipRelationshipsLoading(boolean skipRelationshipsLoading) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.setSkipRelationshipsLoading(skipRelationshipsLoading);
     }
 
     public void setSkipPrimaryKeyLoading(boolean skipPrimaryKeyLoading) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.setSkipPrimaryKeyLoading(skipPrimaryKeyLoading);
     }
 
     public void addConfiguredTableType(AntTableType type) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.addTableType(type.getName());
     }
 
     public void addConfiguredSchema(Schema schema) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.addSchema(schema);
     }
 
     public void addCatalog(Catalog catalog) {
-        isReverseEngineeringDefined = true;
         reverseEngineering.addCatalog(catalog);
     }
 
     @Override
     public void execute() {
-
-        File dataMapFile = config.getDataMapFile();
         config.setFiltersConfig(new FiltersConfigBuilder(reverseEngineering).build());
-
         validateAttributes();
 
         Log logger = new AntLogger(this);
@@ -142,73 +111,25 @@ public class DbImporterTask extends Task {
         config.setSkipPrimaryKeyLoading(reverseEngineering.getSkipPrimaryKeyLoading());
         config.setTableTypes(reverseEngineering.getTableTypes());
 
-        // TODO: get rid of this fork...
-        if (isReverseEngineeringDefined) {
-            Injector injector = DIBootstrap.createInjector(new CayenneDbSyncModule(), new ToolsModule(logger), new DbImportModule());
+        Injector injector = DIBootstrap.createInjector(new CayenneDbSyncModule(), new ToolsModule(logger), new DbImportModule());
 
-            validateDbImportConfiguration(config, injector);
+        validateDbImportConfiguration(config, injector);
 
-            try {
-                injector.getInstance(DbImportAction.class).execute(config);
-            } catch (Exception ex) {
-                Throwable th = Util.unwindException(ex);
-
-                String message = "Error importing database schema";
+        try {
+            injector.getInstance(DbImportAction.class).execute(config);
+        } catch (Exception ex) {
+            Throwable th = Util.unwindException(ex);
 
-                if (th.getLocalizedMessage() != null) {
-                    message += ": " + th.getLocalizedMessage();
-                }
+            String message = "Error importing database schema";
 
-                log(message, Project.MSG_ERR);
-                throw new BuildException(message, th);
-            } finally {
-                injector.shutdown();
-            }
-        } else {
-            if (dataMapFile.exists()) {
-                try {
-                    URL url = dataMapFile.toURI().toURL();
-                    URLResource resource = new URLResource(url);
-
-                    XMLDataMapLoader xmlDataMapLoader = new XMLDataMapLoader();
-                    DataMap dataMap = xmlDataMapLoader.load(resource);
-                    if (dataMap.getReverseEngineering() != null) {
-                        Injector injector = DIBootstrap.createInjector(new CayenneDbSyncModule(), new ToolsModule(logger), new DbImportModule());
-                        try {
-                            ConfigurationNameMapper nameMapper = injector.getInstance(ConfigurationNameMapper.class);
-                            String reverseEngineeringLocation = nameMapper.configurationLocation(ReverseEngineering.class, dataMap.getReverseEngineering().getName());
-                            Resource reverseEngineeringResource = new URLResource(dataMapFile.toURI().toURL()).getRelativeResource(reverseEngineeringLocation);
-
-                            DefaultReverseEngineeringLoader reverseEngineeringLoader = new DefaultReverseEngineeringLoader();
-                            ReverseEngineering reverseEngineering = reverseEngineeringLoader.load(reverseEngineeringResource.getURL().openStream());
-                            reverseEngineering.setName(dataMap.getReverseEngineering().getName());
-                            reverseEngineering.setConfigurationSource(reverseEngineeringResource);
-                            dataMap.setReverseEngineering(reverseEngineering);
-
-                            FiltersConfigBuilder filtersConfigBuilder = new FiltersConfigBuilder(dataMap.getReverseEngineering());
-                            config.getDbLoaderConfig().setFiltersConfig(filtersConfigBuilder.build());
-                            validateDbImportConfiguration(config, injector);
-                            injector.getInstance(DbImportAction.class).execute(config);
-                        } catch (Exception ex) {
-                            Throwable th = Util.unwindException(ex);
-
-                            String message = "Error importing database schema";
-
-                            if (th.getLocalizedMessage() != null) {
-                                message += ": " + th.getLocalizedMessage();
-                            }
-
-                            log(message, Project.MSG_ERR);
-                            throw new BuildException(message, th);
-                        } finally {
-                            injector.shutdown();
-                        }
-                    }
-                } catch (MalformedURLException e) {
-                    log(e.getMessage(), Project.MSG_ERR);
-                    throw new BuildException(e.getMessage(), e);
-                }
+            if (th.getLocalizedMessage() != null) {
+                message += ": " + th.getLocalizedMessage();
             }
+
+            log(message, Project.MSG_ERR);
+            throw new BuildException(message, th);
+        } finally {
+            injector.shutdown();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectFileChangeTracker.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectFileChangeTracker.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectFileChangeTracker.java
index 20bb12b..bbb8e74 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectFileChangeTracker.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectFileChangeTracker.java
@@ -84,12 +84,6 @@ public class ProjectFileChangeTracker extends Thread {
             while (it.hasNext()) {
                 DataMap dm = it.next();
                 addFile(dm.getConfigurationSource().getURL().getPath());
-
-                if (dm.getReverseEngineering() != null) {
-                    if (dm.getReverseEngineering().getConfigurationSource() != null) {
-                        addFile(dm.getReverseEngineering().getConfigurationSource().getURL().getPath());
-                    }
-                }
             }
 
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
index 3e3f13d..8dcf52f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
@@ -451,10 +451,6 @@ public class RemoveAction extends CayenneAction {
             URL mapURL = map.getConfigurationSource().getURL();
             Collection<URL> unusedResources = getCurrentProject().getUnusedResources();
             unusedResources.add(mapURL);
-            if (map.getReverseEngineering() != null && map.getReverseEngineering().getConfigurationSource() != null) {
-                URL reverseEngineeringURL = map.getReverseEngineering().getConfigurationSource().getURL();
-                unusedResources.add(reverseEngineeringURL);
-            }
         }
         
         Iterator<DataNodeDescriptor> iterator = domain.getNodeDescriptors().iterator();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
index b531171..b1b0eef 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
@@ -21,20 +21,27 @@ package org.apache.cayenne.modeler.action;
 
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.configuration.event.DataMapEvent;
+import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.dbsync.naming.NameBuilder;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.event.MapEvent;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.CayenneModelerController;
 import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.dialog.db.ConnectionWizard;
+import org.apache.cayenne.modeler.dialog.db.DbLoaderHelper;
+import org.apache.cayenne.modeler.pref.DBConnectionInfo;
 import org.apache.cayenne.modeler.util.CayenneAction;
 
+import javax.swing.*;
 import java.awt.event.ActionEvent;
+import java.sql.Connection;
 
 /**
  * Action that imports database structure into a DataMap.
  */
-public class ReverseEngineeringAction extends CayenneAction {
+public class ReverseEngineeringAction extends DBWizardAction {
 
     public ReverseEngineeringAction(Application application) {
         super(getActionName(), application);
@@ -49,21 +56,50 @@ public class ReverseEngineeringAction extends CayenneAction {
      */
     @Override
     public void performAction(ActionEvent event) {
-        ProjectController projectController = getProjectController();
-        DataMap dataMap = projectController.getCurrentDataMap();
-        DataChannelDescriptor dataChannelDescriptor = projectController.getCurrentDataChanel();
-        if (dataMap == null) {
-            dataMap = new DataMap();
-            dataMap.setName(NameBuilder
-                    .builder(dataMap, dataChannelDescriptor)
-                    .name());
-            dataChannelDescriptor.getDataMaps().add(dataMap);
-            getProjectController().fireDataMapEvent(new DataMapEvent(this, dataMap, MapEvent.ADD));
+        // guess node connection
+        DBConnectionInfo nodeInfo = preferredDataSource();
+        String nodeKey = preferredDataSourceLabel(nodeInfo);
+
+        // connect
+        ConnectionWizard connectWizard = new ConnectionWizard(
+                getProjectController(),
+                "Reengineer DB Schema: Connect to Database",
+                nodeKey,
+                nodeInfo);
+
+        if (!connectWizard.startupAction()) {
+            // canceled
+            return;
         }
 
-        ((CayenneModelerController) projectController.getParent())
-                .getEditorView()
-                .getDataMapView()
-                .setSelectedIndex(1);
+        Connection connection = connectWizard.getConnection();
+        DbAdapter adapter = connectWizard.getAdapter();
+        DBConnectionInfo dataSourceInfo = connectWizard.getConnectionInfo();
+
+        // from here pass control to DbLoaderHelper, running it from a thread separate
+        // from EventDispatch
+        ReverseEngineering reverseEngineering = new ReverseEngineering();
+
+        final DbLoaderHelper helper = new DbLoaderHelper(
+                getProjectController(),
+                connection,
+                adapter,
+                dataSourceInfo,
+                reverseEngineering);
+        Thread th = new Thread(new Runnable() {
+
+            public void run() {
+                helper.execute();
+
+                SwingUtilities.invokeLater(new Runnable() {
+
+                    public void run() {
+                        application.getUndoManager().discardAllEdits();
+                    }
+                });
+            }
+        });
+
+        th.start();
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ConnectionWizard.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ConnectionWizard.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ConnectionWizard.java
new file mode 100644
index 0000000..7af622b
--- /dev/null
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ConnectionWizard.java
@@ -0,0 +1,89 @@
+/*****************************************************************
+ *   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.modeler.dialog.db;
+
+import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.modeler.ClassLoadingService;
+import org.apache.cayenne.modeler.pref.DBConnectionInfo;
+import org.apache.cayenne.modeler.util.CayenneController;
+
+import java.sql.Connection;
+
+/**
+ * A component for choosing a DataSource. Users can choose from the DataSources configured
+ * in preferences, and one extra set of connection settings. This object will create and
+ * keep open a JDBC connection. It is caller responsibility to dispose of it properly.
+ * 
+ */
+// TODO: after refactoring DbLoader to accept a DataSource instead of connection this
+// dialog should be merged with superclass - DataSourceWizard.
+public class ConnectionWizard extends DataSourceWizard {
+    protected Connection connection;
+    protected DbAdapter adapter;
+    
+    public ConnectionWizard(CayenneController parent, String title,
+                            String altDataSourceKey, DBConnectionInfo altDataSource) {
+        super(parent, title, altDataSourceKey, altDataSource);
+    }
+
+    /**
+     * Overrides superclass to keep an open connection around for the caller's use.
+     */
+    public void okAction() {
+        // build connection and adapter...
+
+        DBConnectionInfo info = getConnectionInfo();
+        ClassLoadingService classLoader = getApplication().getClassLoadingService();
+
+        try {
+            this.adapter = info.makeAdapter(classLoader);
+        }
+        catch (Throwable th) {
+            reportError("DbAdapter Error", th);
+            return;
+        }
+
+        try {
+            this.connection = info.makeDataSource(classLoader).getConnection();
+        }
+        catch (Throwable th) {
+            reportError("Connection Error", th);
+            return;
+        }
+        
+        // set success flag, and unblock the caller...
+        canceled = false;
+        view.dispose();
+    }
+
+    /**
+     * Returns configured DB connection.
+     */
+    public Connection getConnection() {
+        return connection;
+    }
+
+    /**
+     * Returns configured DbAdapter.
+     */
+    public DbAdapter getAdapter() {
+        return adapter;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataMapViewModel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataMapViewModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataMapViewModel.java
deleted file mode 100644
index 6b53409..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataMapViewModel.java
+++ /dev/null
@@ -1,46 +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.modeler.dialog.db;
-
-import org.apache.cayenne.modeler.dialog.db.model.DbModel;
-
-/**
- * @since 4.0
- */
-public class DataMapViewModel {
-
-    private String reverseEngineeringText;
-    private DbModel reverseEngineeringTree;
-
-    public String getReverseEngineeringText() {
-        return reverseEngineeringText;
-    }
-
-    public void setReverseEngineeringText(String reverseEngineeringText) {
-        this.reverseEngineeringText = reverseEngineeringText;
-    }
-
-    public DbModel getReverseEngineeringTree() {
-        return reverseEngineeringTree;
-    }
-
-    public void setReverseEngineeringTree(DbModel reverseEngineeringTree) {
-        this.reverseEngineeringTree = reverseEngineeringTree;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
new file mode 100644
index 0000000..33d595b
--- /dev/null
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
@@ -0,0 +1,222 @@
+/*****************************************************************
+ *   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.modeler.dialog.db;
+
+import org.apache.cayenne.modeler.ClassLoadingService;
+import org.apache.cayenne.modeler.dialog.pref.PreferenceDialog;
+import org.apache.cayenne.modeler.pref.DBConnectionInfo;
+import org.apache.cayenne.modeler.util.CayenneController;
+import org.apache.cayenne.swing.BindingBuilder;
+import org.apache.cayenne.swing.ObjectBinding;
+
+import javax.swing.*;
+import java.awt.*;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * A subclass of ConnectionWizard that tests configured DataSource, but does not
+ * keep an open connection.
+ * 
+ */
+public class DataSourceWizard extends CayenneController {
+
+	protected DataSourceWizardView view;
+
+	protected DBConnectionInfo altDataSource;
+	protected String altDataSourceKey;
+	protected ObjectBinding dataSourceBinding;
+	protected Map dataSources;
+
+	protected String dataSourceKey;
+
+	// this object is a clone of an object selected from the dropdown, as we
+	// need to allow
+	// local temporary modifications
+	protected DBConnectionInfo connectionInfo;
+
+	protected boolean canceled;
+
+	public DataSourceWizard(CayenneController parent, String title, String altDataSourceKey,
+                            DBConnectionInfo altDataSource) {
+		super(parent);
+
+		this.view = createView();
+		this.view.setTitle(title);
+		this.altDataSource = altDataSource;
+		this.altDataSourceKey = altDataSourceKey;
+		this.connectionInfo = new DBConnectionInfo();
+
+		initBindings();
+	}
+
+	/**
+	 * Creates swing dialog for this wizard
+	 */
+	protected DataSourceWizardView createView() {
+		return new DataSourceWizardView(this);
+	}
+
+	protected void initBindings() {
+		BindingBuilder builder = new BindingBuilder(getApplication().getBindingFactory(), this);
+
+		dataSourceBinding = builder.bindToComboSelection(view.getDataSources(), "dataSourceKey");
+
+		builder.bindToAction(view.getCancelButton(), "cancelAction()");
+		builder.bindToAction(view.getOkButton(), "okAction()");
+		builder.bindToAction(view.getConfigButton(), "dataSourceConfigAction()");
+	}
+
+	public String getDataSourceKey() {
+		return dataSourceKey;
+	}
+
+	public void setDataSourceKey(String dataSourceKey) {
+		this.dataSourceKey = dataSourceKey;
+
+		// update a clone object that will be used to obtain connection...
+		DBConnectionInfo currentInfo = (DBConnectionInfo) dataSources.get(dataSourceKey);
+		if (currentInfo != null) {
+			currentInfo.copyTo(connectionInfo);
+		} else {
+			connectionInfo = new DBConnectionInfo();
+		}
+
+		view.getConnectionInfo().setConnectionInfo(connectionInfo);
+	}
+
+	/**
+	 * Main action method that pops up a dialog asking for user selection.
+	 * Returns true if the selection was confirmed, false - if canceled.
+	 */
+	public boolean startupAction() {
+		this.canceled = true;
+
+		refreshDataSources();
+
+		view.pack();
+		view.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		view.setModal(true);
+		makeCloseableOnEscape();
+		centerView();
+		view.setVisible(true);
+
+		return !canceled;
+	}
+
+	public DBConnectionInfo getConnectionInfo() {
+		return connectionInfo;
+	}
+
+	/**
+	 * Tests that the entered information is valid and can be used to open a
+	 * conneciton. Does not store the open connection.
+	 */
+	public void okAction() {
+		DBConnectionInfo info = getConnectionInfo();
+		ClassLoadingService classLoader = getApplication().getClassLoadingService();
+
+		// try making an adapter...
+		try {
+			info.makeAdapter(classLoader);
+		} catch (Throwable th) {
+			reportError("DbAdapter Error", th);
+			return;
+		}
+
+		// doing connection testing...
+		// attempt opening the connection, and close it right away
+		try {
+
+			try (Connection connection = info.makeDataSource(classLoader).getConnection();) {
+				//
+			} catch (SQLException ex) {
+				// ignore close error
+			}
+		} catch (Throwable th) {
+			reportError("Connection Error", th);
+			return;
+		}
+
+		// set success flag, and unblock the caller...
+		canceled = false;
+		view.dispose();
+	}
+
+	public void cancelAction() {
+		canceled = true;
+		view.dispose();
+	}
+
+	/**
+	 * Opens preferences panel to allow configuration of DataSource presets.
+	 */
+	public void dataSourceConfigAction() {
+		PreferenceDialog prefs = new PreferenceDialog(this);
+		prefs.showDataSourceEditorAction(dataSourceKey);
+		refreshDataSources();
+	}
+
+	public Component getView() {
+		return view;
+	}
+
+	protected void refreshDataSources() {
+		this.dataSources = getApplication().getCayenneProjectPreferences().getDetailObject(DBConnectionInfo.class)
+				.getChildrenPreferences();
+
+		// 1.2 migration fix - update data source adapter names
+		Iterator it = dataSources.values().iterator();
+
+		final String _12package = "org.objectstyle.cayenne.";
+		while (it.hasNext()) {
+			DBConnectionInfo info = (DBConnectionInfo) it.next();
+			if (info.getDbAdapter() != null && info.getDbAdapter().startsWith(_12package)) {
+				info.setDbAdapter("org.apache.cayenne." + info.getDbAdapter().substring(_12package.length()));
+
+				// info.getObjectContext().commitChanges();
+			}
+		}
+
+		if (altDataSourceKey != null && !dataSources.containsKey(altDataSourceKey) && altDataSource != null) {
+			dataSources.put(altDataSourceKey, altDataSource);
+		}
+
+		Object[] keys = dataSources.keySet().toArray();
+		Arrays.sort(keys);
+		view.getDataSources().setModel(new DefaultComboBoxModel(keys));
+
+		if (getDataSourceKey() == null) {
+			String key = null;
+
+			if (altDataSourceKey != null) {
+				key = altDataSourceKey;
+			} else if (keys.length > 0) {
+				key = keys[0].toString();
+			}
+
+			setDataSourceKey(key);
+			dataSourceBinding.updateView();
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizardView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizardView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizardView.java
new file mode 100644
index 0000000..d40c8d9
--- /dev/null
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizardView.java
@@ -0,0 +1,94 @@
+/*****************************************************************
+ *   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.modeler.dialog.db;
+
+import com.jgoodies.forms.builder.PanelBuilder;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.dialog.pref.DBConnectionInfoEditor;
+import org.apache.cayenne.modeler.util.CayenneController;
+
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ */
+public class DataSourceWizardView extends JDialog {
+
+    protected JComboBox dataSources;
+    protected JButton configButton;
+    protected JButton okButton;
+    protected JButton cancelButton;
+    protected DBConnectionInfoEditor connectionInfo;
+
+    public DataSourceWizardView(CayenneController controller) {
+        super(Application.getFrame());
+        
+        this.dataSources = new JComboBox();
+
+        this.configButton = new JButton("...");
+        this.configButton.setToolTipText("configure local DataSource");
+        this.okButton = new JButton("Continue");
+        this.cancelButton = new JButton("Cancel");
+        this.connectionInfo = new DBConnectionInfoEditor(controller);
+
+        CellConstraints cc = new CellConstraints();
+        PanelBuilder builder = new PanelBuilder(new FormLayout(
+                "20dlu:grow, pref, 3dlu, fill:max(150dlu;pref), 3dlu, fill:20dlu",
+                "p"));
+        builder.setDefaultDialogBorder();
+
+        builder.addLabel("Saved DataSources:", cc.xy(2, 1));
+        builder.add(dataSources, cc.xy(4, 1));
+        builder.add(configButton, cc.xy(6, 1));
+
+        JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT));
+        buttons.add(cancelButton);
+        buttons.add(okButton);
+
+        getContentPane().setLayout(new BorderLayout());
+        getContentPane().add(builder.getPanel(), BorderLayout.NORTH);
+        getContentPane().add(connectionInfo.getView(), BorderLayout.CENTER);
+        getContentPane().add(buttons, BorderLayout.SOUTH);
+
+        setTitle("DB Connection Info");
+    }
+
+    public JComboBox getDataSources() {
+        return dataSources;
+    }
+
+    public JButton getCancelButton() {
+        return cancelButton;
+    }
+
+    public JButton getConfigButton() {
+        return configButton;
+    }
+
+    public JButton getOkButton() {
+        return okButton;
+    }
+
+    public DBConnectionInfoEditor getConnectionInfo() {
+        return connectionInfo;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/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 58ef41b..7dede61 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
@@ -21,14 +21,13 @@ package org.apache.cayenne.modeler.dialog.db;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.configuration.ConfigurationNode;
-import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.dbimport.ReverseEngineering;
+import org.apache.cayenne.dbimport.*;
 import org.apache.cayenne.dbsync.CayenneDbSyncModule;
 import org.apache.cayenne.dbsync.naming.NameBuilder;
-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.dbsync.reverse.filters.FiltersConfigBuilder;
 import org.apache.cayenne.di.DIBootstrap;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.map.DataMap;
@@ -42,6 +41,7 @@ import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.modeler.pref.DBConnectionInfo;
 import org.apache.cayenne.modeler.util.LongRunningTask;
 import org.apache.cayenne.tools.configuration.ToolsModule;
+import org.apache.cayenne.tools.dbimport.DbImportAction;
 import org.apache.cayenne.tools.dbimport.DbImportConfiguration;
 import org.apache.cayenne.tools.dbimport.DbImportModule;
 import org.apache.cayenne.util.Util;
@@ -80,6 +80,7 @@ public class DbLoaderHelper {
     protected DbImportConfiguration config;
     protected ReverseEngineering reverseEngineering;
     protected String loadStatusNote;
+    protected String dbUserName;
 
     /**
      * ObjEntities which were added to project during reverse engineering
@@ -89,6 +90,7 @@ public class DbLoaderHelper {
     public DbLoaderHelper(ProjectController mediator, Connection connection, DbAdapter adapter,
                           DBConnectionInfo dbConnectionInfo, ReverseEngineering reverseEngineering) {
         this.mediator = mediator;
+        this.dbUserName = dbConnectionInfo.getUserName();
         try {
             this.dbCatalog = connection.getCatalog();
         } catch (SQLException e) {
@@ -153,6 +155,35 @@ public class DbLoaderHelper {
             return;
         }
 
+        final DbLoaderOptionsDialog dialog = new DbLoaderOptionsDialog(schemas, catalogs, dbUserName, dbCatalog);
+
+        try {
+            // since we are not inside EventDispatcher Thread, must run it via
+            // SwingUtilities
+            SwingUtilities.invokeAndWait(new Runnable() {
+
+                public void run() {
+                    dialog.setVisible(true);
+                    dialog.dispose();
+                }
+            });
+        } catch (Throwable th) {
+            processException(th, "Error Reengineering Database");
+            return;
+        }
+
+        if (dialog.getChoice() == DbLoaderOptionsDialog.CANCEL) {
+            return;
+        }
+
+        reverseEngineering.addCatalog(new Catalog(dialog.getSelectedCatalog()));
+        reverseEngineering.addSchema(new Schema(dialog.getSelectedSchema()));
+        reverseEngineering.addIncludeTable(new IncludeTable(dialog.getTableNamePattern()));
+        reverseEngineering.addIncludeProcedure(new IncludeProcedure(dialog.getProcedureNamePattern()));
+
+        config.setMeaningfulPkTables(dialog.getMeaningfulPk());
+        config.setNamingStrategy(dialog.getNamingStrategy());
+
         LongRunningTask loadDataMapTask = new LoadDataMapTask(Application.getFrame(), "Reengineering DB");
         loadDataMapTask.startAndWait();
     }
@@ -323,6 +354,7 @@ public class DbLoaderHelper {
     }
 
     public final class LoadDataMapTask extends DbLoaderTask {
+        private DbImportAction importAction;
 
         public LoadDataMapTask(JFrame frame, String title) {
             super(frame, title);
@@ -348,17 +380,6 @@ public class DbLoaderHelper {
                 return;
             }
 
-            DataMap dataMap = mediator.getCurrentDataMap();
-            DataChannelDescriptor dataChannelDescriptor = mediator.getCurrentDataChanel();
-            if (dataMap.getReverseEngineering() != null) {
-                if (dataMap.getReverseEngineering().getName() != null) {
-                    reverseEngineering.setName(dataMap.getReverseEngineering().getName());
-                    reverseEngineering.setConfigurationSource(dataMap.getReverseEngineering().getConfigurationSource());
-                }
-            } else {
-                reverseEngineering.setName(NameBuilder.builder(reverseEngineering, dataChannelDescriptor).name());
-            }
-
             if (dataMap.getConfigurationSource() != null) {
                 config.setDataMapFile(new File(dataMap.getConfigurationSource().getURL().getPath()));
             }
@@ -375,7 +396,6 @@ public class DbLoaderHelper {
             injector.injectMembers(importAction);
             try {
                 importAction.execute(config);
-                dataMap.setReverseEngineering(reverseEngineering);
             } catch (Exception e) {
                 processException(e, "Error importing database schema.");
             }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/29671e75/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
new file mode 100644
index 0000000..4d9dee4
--- /dev/null
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
@@ -0,0 +1,253 @@
+/*****************************************************************
+ *   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.modeler.dialog.db;
+
+import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.layout.FormLayout;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.util.CayenneDialog;
+import org.apache.cayenne.modeler.util.NameGeneratorPreferences;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Collection;
+import java.util.Vector;
+
+/**
+ * Dialog for selecting database reverse-engineering parameters.
+ */
+public class DbLoaderOptionsDialog extends CayenneDialog {
+
+    private static final Log logObj = LogFactory.getLog(DbLoaderOptionsDialog.class);
+
+    public static final int CANCEL = 0;
+    public static final int SELECT = 1;
+
+    protected JLabel catalogLabel;
+    protected JComboBox catalogSelector;
+    protected JLabel schemaLabel;
+    protected JComboBox schemaSelector;
+    protected JTextField tableNamePatternField;
+    protected JTextField meaningfulPk;
+    protected JTextField procNamePatternField;
+    protected JLabel procedureLabel;
+    protected JButton selectButton;
+    protected JButton cancelButton;
+
+    public static final String WILDCARD_PATTERN = ".*";
+
+
+    /**
+     * Combobox for naming strategy
+     */
+    protected JComboBox strategyCombo;
+//
+    protected String strategy;
+
+    protected int choice;
+
+    /**
+     * Creates and initializes new ChooseSchemaDialog.
+     */
+    public DbLoaderOptionsDialog(Collection<String> schemas, Collection<String> catalogs, String dbUserName,
+                                 String dbCatalog) {
+        super(Application.getFrame(), "Reengineer DB Schema: Select Options");
+
+        init();
+        initController();
+        initFromModel(schemas, catalogs, dbUserName, dbCatalog);
+
+        pack();
+        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+        setModal(true);
+        centerWindow();
+    }
+
+    /** Sets up the graphical components. */
+    protected void init() {
+
+        // create widgets...
+        selectButton = new JButton("Continue");
+        cancelButton = new JButton("Cancel");
+        catalogSelector = new JComboBox();
+        schemaSelector = new JComboBox();
+        tableNamePatternField = new JTextField();
+        procNamePatternField = new JTextField();
+        meaningfulPk = new JTextField();
+        strategyCombo = new JComboBox();
+        strategyCombo.setEditable(true);
+
+        // assemble
+        FormLayout layout = new FormLayout(
+                "right:pref, 3dlu, fill:max(170dlu;pref):grow",
+                "");
+        DefaultFormBuilder builder = new DefaultFormBuilder(layout);
+        builder.setDefaultDialogBorder();
+
+        catalogLabel = builder.append("Select Catalog:", catalogSelector);
+        schemaLabel = builder.append("Select Schema:", schemaSelector);
+        builder.append("Table Name Pattern:", tableNamePatternField);
+        procedureLabel = builder.append("Procedure Name Pattern:", procNamePatternField);
+        builder.append("Naming Strategy:", strategyCombo);
+        builder.append("Meaningful PK", meaningfulPk);
+
+        JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT));
+        buttons.add(cancelButton);
+        buttons.add(selectButton);
+
+        getContentPane().setLayout(new BorderLayout());
+        getContentPane().add(builder.getPanel(), BorderLayout.CENTER);
+        getContentPane().add(buttons, BorderLayout.SOUTH);
+    }
+
+    protected void initController() {
+        selectButton.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                processSelect();
+            }
+        });
+
+        cancelButton.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                processCancel();
+            }
+        });
+    }
+
+    protected void initFromModel(
+            Collection<String> schemas,
+            Collection<String> catalogs,
+            String dbUserName,
+            String dbCatalog) {
+
+        this.choice = CANCEL;
+        this.tableNamePatternField.setText(WILDCARD_PATTERN);
+        this.procNamePatternField.setText(WILDCARD_PATTERN);
+        this.meaningfulPk.setText(WILDCARD_PATTERN);
+
+        Vector<String> arr = NameGeneratorPreferences
+                .getInstance()
+                .getLastUsedStrategies();
+        strategyCombo.setModel(new DefaultComboBoxModel(arr));
+
+        boolean showSchemaSelector = schemas != null && !schemas.isEmpty();
+        schemaSelector.setVisible(showSchemaSelector);
+        schemaLabel.setVisible(showSchemaSelector);
+
+        if (showSchemaSelector) {
+
+            schemaSelector.setModel(new DefaultComboBoxModel(schemas.toArray()));
+
+            // select schema belonging to the user
+            if (dbUserName != null) {
+                for (String schema : schemas) {
+                    if (dbUserName.equalsIgnoreCase(schema)) {
+                        schemaSelector.setSelectedItem(schema);
+                        break;
+                    }
+                }
+            }
+        }
+
+        boolean showCatalogSelector = catalogs != null && !catalogs.isEmpty();
+        catalogSelector.setVisible(showCatalogSelector);
+        catalogLabel.setVisible(showCatalogSelector);
+
+        if (showCatalogSelector) {
+            catalogSelector.setModel(new DefaultComboBoxModel(catalogs.toArray()));
+
+            if (dbCatalog != null && !dbCatalog.isEmpty()) {
+                for (String catalog : catalogs) {
+                    if (dbCatalog.equalsIgnoreCase(catalog)) {
+                        catalogSelector.setSelectedItem(catalog);
+                        break;
+                    }
+                }
+            }
+        }
+
+    }
+
+    public int getChoice() {
+        return choice;
+    }
+
+    private void processSelect() {
+        strategy = (String) strategyCombo.getSelectedItem();
+
+        choice = SELECT;
+        setVisible(false);
+    }
+
+    private void processCancel() {
+        choice = CANCEL;
+        setVisible(false);
+    }
+
+    /**
+     * Returns selected catalog.
+     */
+    public String getSelectedCatalog() {
+        String catalog = (String) catalogSelector.getSelectedItem();
+        return "".equals(catalog) ? null : catalog;
+    }
+
+    /**
+     * Returns selected schema.
+     */
+    public String getSelectedSchema() {
+        String schema = (String) schemaSelector.getSelectedItem();
+        return "".equals(schema) ? null : schema;
+    }
+
+    /**
+     * Returns the tableNamePattern.
+     */
+    public String getTableNamePattern() {
+        return "".equals(tableNamePatternField.getText()) ? null : tableNamePatternField
+                .getText();
+    }
+
+    public String getMeaningfulPk() {
+        return "".equals(meaningfulPk.getText()) ? null : meaningfulPk
+                .getText();
+    }
+
+    /**
+     * Returns the procedure name pattern.
+     */
+    public String getProcedureNamePattern() {
+        return "".equals(procNamePatternField.getText()) ? null : procNamePatternField
+                .getText();
+    }
+
+    /**
+     * Returns configured naming strategy
+     */
+    public String getNamingStrategy() {
+        return strategy;
+    }
+}


[4/7] cayenne git commit: CM Reverse Engineering: Remove default wildcard pattern for tables with Meaningful PK

Posted by sk...@apache.org.
CM Reverse Engineering: Remove default wildcard pattern for tables with Meaningful PK


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/aa6efa42
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/aa6efa42
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/aa6efa42

Branch: refs/heads/master
Commit: aa6efa42ccc36fdd5cb517b77ed09ae9c8bf34e3
Parents: 82a984a
Author: Savva Kolbachev <s....@gmail.com>
Authored: Thu Oct 20 13:49:42 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Oct 20 13:49:42 2016 +0300

----------------------------------------------------------------------
 .../apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java   | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/aa6efa42/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
index 4d9dee4..3dbb59a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
@@ -110,7 +110,7 @@ public class DbLoaderOptionsDialog extends CayenneDialog {
         builder.append("Table Name Pattern:", tableNamePatternField);
         procedureLabel = builder.append("Procedure Name Pattern:", procNamePatternField);
         builder.append("Naming Strategy:", strategyCombo);
-        builder.append("Meaningful PK", meaningfulPk);
+        builder.append("Tables with Meaningful PK Pattern:", meaningfulPk);
 
         JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT));
         buttons.add(cancelButton);
@@ -146,7 +146,6 @@ public class DbLoaderOptionsDialog extends CayenneDialog {
         this.choice = CANCEL;
         this.tableNamePatternField.setText(WILDCARD_PATTERN);
         this.procNamePatternField.setText(WILDCARD_PATTERN);
-        this.meaningfulPk.setText(WILDCARD_PATTERN);
 
         Vector<String> arr = NameGeneratorPreferences
                 .getInstance()


[5/7] cayenne git commit: Upgrade datamap schema version from 8 to 9;

Posted by sk...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/persistent.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/persistent.map.xml b/cayenne-server/src/test/resources/persistent.map.xml
index 18d9574..ee0481a 100644
--- a/cayenne-server/src/test/resources/persistent.map.xml
+++ b/cayenne-server/src/test/resources/persistent.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.persistent"/>
 	<property name="clientSupported" value="true"/>
 	<property name="defaultClientPackage" value="org.apache.cayenne.testdo.persistent"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/primitive.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/primitive.map.xml b/cayenne-server/src/test/resources/primitive.map.xml
index 7cc6992..d5e83dc 100644
--- a/cayenne-server/src/test/resources/primitive.map.xml
+++ b/cayenne-server/src/test/resources/primitive.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.primitive"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/qualified.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/qualified.map.xml b/cayenne-server/src/test/resources/qualified.map.xml
index 3375fab..0a30f4a 100644
--- a/cayenne-server/src/test/resources/qualified.map.xml
+++ b/cayenne-server/src/test/resources/qualified.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.qualified"/>
 	<property name="quoteSqlIdentifiers" value="true"/>
 	<db-entity name="TEST_QUALIFIED1">

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/quoted-identifiers.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/quoted-identifiers.map.xml b/cayenne-server/src/test/resources/quoted-identifiers.map.xml
index 739b16f..16d6713 100644
--- a/cayenne-server/src/test/resources/quoted-identifiers.map.xml
+++ b/cayenne-server/src/test/resources/quoted-identifiers.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.quotemap"/>
 	<property name="quoteSqlIdentifiers" value="true"/>
 	<db-entity name="QUOTED_ADDRESS">

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/reflexive.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/reflexive.map.xml b/cayenne-server/src/test/resources/reflexive.map.xml
index cee4586..fc8ed64 100644
--- a/cayenne-server/src/test/resources/reflexive.map.xml
+++ b/cayenne-server/src/test/resources/reflexive.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.reflexive"/>
     <property name="clientSupported" value="true"/>
     <property name="defaultClientPackage" value="org.apache.cayenne.testdo.reflexive"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships-activity.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-activity.map.xml b/cayenne-server/src/test/resources/relationships-activity.map.xml
index 6463e34..59e72f3 100644
--- a/cayenne-server/src/test/resources/relationships-activity.map.xml
+++ b/cayenne-server/src/test/resources/relationships-activity.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.relationships_activity"/>
 	<db-entity name="X_ACTIVITY">
 		<db-attribute name="ACTIVITY_ID" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="50"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships-child-master.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-child-master.map.xml b/cayenne-server/src/test/resources/relationships-child-master.map.xml
index abcbb15..a803e72 100644
--- a/cayenne-server/src/test/resources/relationships-child-master.map.xml
+++ b/cayenne-server/src/test/resources/relationships-child-master.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.relationships_child_master"/>
     <db-entity name="CHILD">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships-clob.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-clob.map.xml b/cayenne-server/src/test/resources/relationships-clob.map.xml
index afae0b3..0456088 100644
--- a/cayenne-server/src/test/resources/relationships-clob.map.xml
+++ b/cayenne-server/src/test/resources/relationships-clob.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.relationship_clob"/>
     <db-entity name="CLOB_DETAIL">
         <db-attribute name="CLOB_DETAIL_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml b/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml
index d9a5c68..29a96cb 100644
--- a/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml
+++ b/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.relationships_collection_to_many"/>
     <db-entity name="COLLECTION_TO_MANY">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships-delete-rules.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-delete-rules.map.xml b/cayenne-server/src/test/resources/relationships-delete-rules.map.xml
index fe470c3..b875d45 100644
--- a/cayenne-server/src/test/resources/relationships-delete-rules.map.xml
+++ b/cayenne-server/src/test/resources/relationships-delete-rules.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.relationships_delete_rules"/>
     <db-entity name="DELETE_RULE_FLATA">
         <db-attribute name="FLATA_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships-flattened.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-flattened.map.xml b/cayenne-server/src/test/resources/relationships-flattened.map.xml
index 6a83bd2..af9364a 100644
--- a/cayenne-server/src/test/resources/relationships-flattened.map.xml
+++ b/cayenne-server/src/test/resources/relationships-flattened.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.relationship_flattened"/>
     <db-entity name="COMPLEX_JOIN">
         <db-attribute name="EXTRA_COLUMN" type="VARCHAR" length="50"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships-set-to-many.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-set-to-many.map.xml b/cayenne-server/src/test/resources/relationships-set-to-many.map.xml
index bed10b0..882d8d4 100644
--- a/cayenne-server/src/test/resources/relationships-set-to-many.map.xml
+++ b/cayenne-server/src/test/resources/relationships-set-to-many.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.relationships_set_to_many"/>
     <db-entity name="SET_TO_MANY">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml b/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml
index 159e962..1c8257a 100644
--- a/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml
+++ b/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.relationships_to_many_fk"/>
     <db-entity name="TO_MANY_FKDEP">
         <db-attribute name="DEP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships-to-one-fk.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-to-one-fk.map.xml b/cayenne-server/src/test/resources/relationships-to-one-fk.map.xml
index a27f06a..fbb7bec 100644
--- a/cayenne-server/src/test/resources/relationships-to-one-fk.map.xml
+++ b/cayenne-server/src/test/resources/relationships-to-one-fk.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.relationships_to_one_fk"/>
     <db-entity name="TO_ONE_FK1">
         <db-attribute name="TO_ONE_FK1_FK" type="INTEGER" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/relationships.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships.map.xml b/cayenne-server/src/test/resources/relationships.map.xml
index 58769e9..305b42b 100644
--- a/cayenne-server/src/test/resources/relationships.map.xml
+++ b/cayenne-server/src/test/resources/relationships.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.relationships"/>
 	<db-entity name="FK_OF_DIFFERENT_TYPE">
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/return-types.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/return-types.map.xml b/cayenne-server/src/test/resources/return-types.map.xml
index 915f76c..61e9eb1 100644
--- a/cayenne-server/src/test/resources/return-types.map.xml
+++ b/cayenne-server/src/test/resources/return-types.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.return_types"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/soft-delete.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/soft-delete.map.xml b/cayenne-server/src/test/resources/soft-delete.map.xml
index bfa3351..dbd91c8 100644
--- a/cayenne-server/src/test/resources/soft-delete.map.xml
+++ b/cayenne-server/src/test/resources/soft-delete.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.soft_delete"/>
     <db-entity name="SOFT_DELETE">
         <db-attribute name="DELETED" type="BOOLEAN"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/sus-map.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/sus-map.map.xml b/cayenne-server/src/test/resources/sus-map.map.xml
index f911763..6889dfa 100644
--- a/cayenne-server/src/test/resources/sus-map.map.xml
+++ b/cayenne-server/src/test/resources/sus-map.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<db-entity name="SUS1">
 		<db-attribute name="id" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
 		<db-attribute name="strNoMandatory" type="VARCHAR" length="200"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/table-primitives.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/table-primitives.map.xml b/cayenne-server/src/test/resources/table-primitives.map.xml
index 13d8193..e09d406 100644
--- a/cayenne-server/src/test/resources/table-primitives.map.xml
+++ b/cayenne-server/src/test/resources/table-primitives.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.table_primitives"/>
     <property name="clientSupported" value="true"/>
     <property name="defaultClientPackage" value="org.apache.cayenne.testdo.table_primitives"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/testmap.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/testmap.map.xml b/cayenne-server/src/test/resources/testmap.map.xml
index 4604801..84c04ba 100644
--- a/cayenne-server/src/test/resources/testmap.map.xml
+++ b/cayenne-server/src/test/resources/testmap.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.testmap"/>
 	<property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
 	<property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/things.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/things.map.xml b/cayenne-server/src/test/resources/things.map.xml
index 03c705b..3212d70 100644
--- a/cayenne-server/src/test/resources/things.map.xml
+++ b/cayenne-server/src/test/resources/things.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.things"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/toone.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/toone.map.xml b/cayenne-server/src/test/resources/toone.map.xml
index 0f5aae5..f206e6e 100644
--- a/cayenne-server/src/test/resources/toone.map.xml
+++ b/cayenne-server/src/test/resources/toone.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.toone"/>
     <property name="clientSupported" value="true"/>
     <property name="defaultClientPackage" value="org.apache.cayenne.testdo.toone"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/unsupported-distinct-types.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/unsupported-distinct-types.map.xml b/cayenne-server/src/test/resources/unsupported-distinct-types.map.xml
index ebfbf99..0280918 100644
--- a/cayenne-server/src/test/resources/unsupported-distinct-types.map.xml
+++ b/cayenne-server/src/test/resources/unsupported-distinct-types.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.testdo.unsupported_distinct_types"/>
 	<db-entity name="COMPOSITION">
 		<db-attribute name="BASE_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-server/src/test/resources/uuid.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/uuid.map.xml b/cayenne-server/src/test/resources/uuid.map.xml
index af86ec2..1f38102 100644
--- a/cayenne-server/src/test/resources/uuid.map.xml
+++ b/cayenne-server/src/test/resources/uuid.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.apache.cayenne.testdo.uuid"/>
     <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
     <property name="clientSupported" value="true"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/cayenne-tools/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result b/cayenne-tools/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result
index 760ce23..5c0d2b6 100644
--- a/cayenne-tools/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result
+++ b/cayenne-tools/src/test/resources/org/apache/cayenne/tools/build-include-table.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <db-entity name="PARENT" schema="APP">
         <db-attribute name="COL2" type="CHAR" length="25"/>
         <db-attribute name="COL3" type="DECIMAL" length="10" scale="2"/>
@@ -34,4 +34,4 @@
         <obj-attribute name="col4" type="java.lang.String" db-attribute-path="COL4"/>
         <obj-attribute name="col5" type="java.util.Date" db-attribute-path="COL5"/>
     </obj-entity>
-</data-map>
\ No newline at end of file
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml
index 84ecf2f..acbc62c 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultSchema" value="SCHEMA_01"/>
     <db-entity name="EXISTING_TABLE" schema="SCHEMA_01">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml-result
index a433b46..aa301db 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testCustomObjectLayerSettings.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultSchema" value="SCHEMA_01"/>
     <db-entity name="EXISTING_TABLE" schema="SCHEMA_01">
     	<db-attribute name="COL2" type="INTEGER" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
index 88cec3a..5373617 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="com.example.test"/>
     <property name="defaultSchema" value="SCHEMA_01"/>
     <db-entity name="CHILD" schema="SCHEMA_01">

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result
index 31491cd..a65e271 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFilteringWithSchema.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultSchema" value="SCHEMA_01"/>
     <db-entity name="CHILD" schema="SCHEMA_01">
         <db-attribute name="COL3" type="DECIMAL" length="10" scale="2"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink.map.xml-result
index ed6746b..8263273 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testFlattensManyToManyWithRecursiveLink.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.not.my.home"/>
     <db-entity name="A" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml
index a689c1c..2317476 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<db-entity name="testImportAddTableAndColumn" schema="APP">
 		<db-attribute name="COL1" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
 		<db-attribute name="COL2" type="CHAR" length="25"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result
index edd8b54..a5dd466 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportAddTableAndColumn.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <db-entity name="CHILD" schema="APP">
         <db-attribute name="COL3" type="DECIMAL" length="10" scale="2"/>
         <db-attribute name="COL4" type="VARCHAR" length="25"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result
index f1c2c9c..6133ac4 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportNewDataMap.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<db-entity name="TEST_TABLE" schema="APP">
 		<db-attribute name="COL1" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
 		<db-attribute name="COL2" type="CHAR" length="25"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml
index d354661..a22e016 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.   
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<db-entity name="testImportWithoutChanges" schema="APP">
 		<db-attribute name="COL1" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
 		<db-attribute name="COL2" type="CHAR" length="25"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml-result
index ba5abbc..25c85af 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testImportWithoutChanges.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<db-entity name="testImportWithoutChanges" schema="APP">
 		<db-attribute name="COL1" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
 		<db-attribute name="COL2" type="CHAR" length="25"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
index 713ad1e..7dc3e2f 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
 	<db-entity name="PICK_SCHEDULE" schema="APP">
 		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
 		<db-attribute name="OWNER_ID" type="INTEGER" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml
index 93f6b27..909c5f9 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultSchema" value="SCHEMA_01"/>
     <db-entity name="PARENT" schema="SCHEMA_01">
         <db-attribute name="COL2" type="CHAR" length="25"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml-result
index 7c8036d..d874808 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveCustomObjMappings.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultSchema" value="SCHEMA_01"/>
     <db-entity name="PARENT" schema="SCHEMA_01">
         <db-attribute name="COL2" type="CHAR" length="25"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml
index 9febe2f..5d3c059 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml
@@ -17,10 +17,10 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
     <db-entity name="CHILD" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
         <db-attribute name="PARENT_ID" type="INTEGER" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml-result
index 71d4d9b..818c17f 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testPreserveRelationships.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <db-entity name="CHILD" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
     </db-entity>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result
index b0706f9..1870f1b 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSchemasAndTableExclude.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultSchema" value="SCHEMA_01"/>
     <db-entity name="PARENT" schema="SCHEMA_01">
         <db-attribute name="COL2" type="CHAR" length="25"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml
index ae0318a..1f08680 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml
@@ -17,10 +17,10 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
     <property name="defaultPackage" value="com.my.home"/>
     <db-entity name="A" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result
index cbf0e21..ae701e6 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipPrimaryKeyLoading.map.xml-result
@@ -17,10 +17,10 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
     <property name="defaultPackage" value="com.my.home"/>
     <db-entity name="A" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml
index 32a1d58..a245765 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml
@@ -17,10 +17,10 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
     <property name="defaultPackage" value="com.my.home"/>
     <db-entity name="A" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml-result
index 32a1d58..a245765 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSkipRelationshipsLoading.map.xml-result
@@ -17,10 +17,10 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
     <property name="defaultPackage" value="com.my.home"/>
     <db-entity name="A" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering.map.xml
index c9e0334..81fc363 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testSupportsCatalogsOnReverseEngineering.map.xml
@@ -17,9 +17,9 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="com.my.home"/>
 </data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes.map.xml-result
index 48834d3..cdc9ddd 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testTableTypes.map.xml-result
@@ -17,10 +17,10 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <db-entity name="PERSON" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
     </db-entity>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml
index 569cad1..689a94a 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml
@@ -17,10 +17,10 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
     <property name="defaultPackage" value="com.my.home"/>
     <db-entity name="A" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result
index 349ebb9..46d6a84 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result
@@ -17,10 +17,10 @@
 	specific language governing permissions and limitations
 	under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <property name="defaultPackage" value="org.not.my.home"/>
     <db-entity name="A" schema="APP">
         <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
index e6cd3dd..3b49289 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testViewsExclude.map.xml-result
@@ -17,10 +17,10 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-          project-version="8">
+          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+          project-version="9">
     <db-entity name="GIRL" schema="APP">
         <db-attribute name="ID" type="INTEGER" isMandatory="true" length="10"/>
     </db-entity>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/tutorials/tutorial-rop-server-http2/src/main/resources/cayenne-project.xml
----------------------------------------------------------------------
diff --git a/tutorials/tutorial-rop-server-http2/src/main/resources/cayenne-project.xml b/tutorials/tutorial-rop-server-http2/src/main/resources/cayenne-project.xml
index 05c2351..1c7f367 100644
--- a/tutorials/tutorial-rop-server-http2/src/main/resources/cayenne-project.xml
+++ b/tutorials/tutorial-rop-server-http2/src/main/resources/cayenne-project.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<domain project-version="8">
+<domain project-version="9">
 	<map name="datamap"/>
 
 	<node name="datanode"

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f72210cc/tutorials/tutorial-rop-server-http2/src/main/resources/datamap.map.xml
----------------------------------------------------------------------
diff --git a/tutorials/tutorial-rop-server-http2/src/main/resources/datamap.map.xml b/tutorials/tutorial-rop-server-http2/src/main/resources/datamap.map.xml
index c77fcf6..e0a7e3f 100644
--- a/tutorials/tutorial-rop-server-http2/src/main/resources/datamap.map.xml
+++ b/tutorials/tutorial-rop-server-http2/src/main/resources/datamap.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap"
+<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd"
-	 project-version="8">
+	 xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
+	 project-version="9">
 	<property name="defaultPackage" value="org.apache.cayenne.tutorial.persistent"/>
 	<property name="clientSupported" value="true"/>
 	<property name="defaultClientPackage" value="org.apache.cayenne.tutorial.persistent.client"/>