This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 6dfacf996c34aca6a66a4f10a5a9c4ed6d0b436b
Author: Nikita Timofeev <stari...@gmail.com>
AuthorDate: Thu Jun 30 17:58:20 2022 +0300

    CAY-2737 Cayenne 4.3: cleanup deprecated code
     - delete OpenBase adapter and all related stuff
---
 .../org/apache/cayenne/dbsync/DbSyncModule.java    |   3 -
 .../merge/factory/OpenBaseMergerTokenFactory.java  | 143 ----------
 .../dbsync/reverse/configuration/ToolsModule.java  |   3 +-
 .../cayenne/configuration/server/ServerModule.java |  21 --
 .../cayenne/dba/openbase/OpenBaseAdapter.java      | 288 --------------------
 .../cayenne/dba/openbase/OpenBasePkGenerator.java  | 289 ---------------------
 .../dba/openbase/OpenBaseSQLTreeProcessor.java     | 111 --------
 .../cayenne/dba/openbase/OpenBaseSniffer.java      |  57 ----
 .../org/apache/cayenne/dba/openbase/package.html   |  26 --
 .../test/java/org/apache/cayenne/CayenneIT.java    |   4 +-
 .../access/DataContextDecoratedStackIT.java        |   4 +-
 .../cayenne/access/DataContextSQLTemplateIT.java   |   6 +-
 .../server/DataDomainProviderTest.java             |   7 +-
 .../cayenne/unit/di/server/ServerCaseModule.java   |   5 -
 .../cayenne/modeler/util/AdapterMapping.java       |   4 -
 .../apache/cayenne/modeler/util/DbAdapterInfo.java |   4 +-
 16 files changed, 10 insertions(+), 965 deletions(-)

diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/DbSyncModule.java 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/DbSyncModule.java
index 2bcd0cfbb..d8f33031d 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/DbSyncModule.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/DbSyncModule.java
@@ -26,7 +26,6 @@ import org.apache.cayenne.dba.h2.H2Adapter;
 import org.apache.cayenne.dba.hsqldb.HSQLDBAdapter;
 import org.apache.cayenne.dba.ingres.IngresAdapter;
 import org.apache.cayenne.dba.mysql.MySQLAdapter;
-import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
 import org.apache.cayenne.dba.oracle.Oracle8Adapter;
 import org.apache.cayenne.dba.oracle.OracleAdapter;
 import org.apache.cayenne.dba.postgres.PostgresAdapter;
@@ -42,7 +41,6 @@ import 
org.apache.cayenne.dbsync.merge.factory.HSQLMergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.factory.IngresMergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.factory.MySQLMergerTokenFactory;
-import org.apache.cayenne.dbsync.merge.factory.OpenBaseMergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.factory.OracleMergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.factory.PostgresMergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.factory.SQLServerMergerTokenFactory;
@@ -79,7 +77,6 @@ public class DbSyncModule implements Module {
                 .put(HSQLDBAdapter.class.getName(), 
HSQLMergerTokenFactory.class)
                 .put(IngresAdapter.class.getName(), 
IngresMergerTokenFactory.class)
                 .put(MySQLAdapter.class.getName(), 
MySQLMergerTokenFactory.class)
-                .put(OpenBaseAdapter.class.getName(), 
OpenBaseMergerTokenFactory.class)
                 .put(OracleAdapter.class.getName(), 
OracleMergerTokenFactory.class)
                 .put(Oracle8Adapter.class.getName(), 
OracleMergerTokenFactory.class)
                 .put(PostgresAdapter.class.getName(), 
PostgresMergerTokenFactory.class)
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/OpenBaseMergerTokenFactory.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/OpenBaseMergerTokenFactory.java
deleted file mode 100644
index ee9b1fca4..000000000
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/OpenBaseMergerTokenFactory.java
+++ /dev/null
@@ -1,143 +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
- *
- *    https://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- ****************************************************************/
-package org.apache.cayenne.dbsync.merge.factory;
-
-import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.dbsync.merge.token.db.CreateTableToDb;
-import org.apache.cayenne.dbsync.merge.token.db.DropRelationshipToDb;
-import org.apache.cayenne.dbsync.merge.token.db.SetAllowNullToDb;
-import org.apache.cayenne.dbsync.merge.token.db.SetColumnTypeToDb;
-import org.apache.cayenne.dbsync.merge.token.db.SetNotNullToDb;
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbJoin;
-import org.apache.cayenne.map.DbRelationship;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class OpenBaseMergerTokenFactory extends DefaultMergerTokenFactory {
-
-    @Override
-    public MergerToken createCreateTableToDb(DbEntity entity) {
-        return new CreateTableToDb(entity) {
-
-            @Override
-            public List<String> createSql(DbAdapter adapter) {
-                List<String> sqls = new ArrayList<>();
-                // create table first as OpenBase adapter created primary key 
in its
-                // getPkGenerator().createAutoPkStatements
-                sqls.add(adapter.createTable(getEntity()));
-                sqls.addAll(adapter.getPkGenerator().createAutoPkStatements(
-                        Collections.singletonList(getEntity())));
-                return sqls;
-            }
-
-        };
-    }
-
-    @Override
-    public MergerToken createDropRelationshipToDb(
-            final DbEntity entity,
-            final DbRelationship rel) {
-        return new DropRelationshipToDb(entity, rel) {
-
-            @Override
-            public List<String> createSql(DbAdapter adapter) {
-
-
-                // FK_NAME form jdbc metadata seem to be wrong. It contain a 
column name
-                // and not the 'relationshipName'
-                // TODO: tell openbase developer mail list
-
-                DbEntity source = getEntity();
-                DbEntity dest = rel.getTargetEntity();
-
-                // only use the first. See adapter
-                // TODO: can we be sure this is the first and same as used by 
the adapter?
-                DbJoin join = rel.getJoins().get(0);
-
-                // see comment in adapter for why source and dest is switched 
around..
-
-                return Collections.singletonList("delete from 
_SYS_RELATIONSHIP where "
-                        + " source_table = '" + dest.getFullyQualifiedName() + 
"'"
-                        + " and source_column = '" + join.getTargetName() + "'"
-                        + " and dest_table = '" + 
source.getFullyQualifiedName() + "'"
-                        + " and dest_column = '" + join.getSourceName() + "'");
-            }
-
-        };
-    }
-
-    @Override
-    public MergerToken createSetColumnTypeToDb(
-            final DbEntity entity,
-            final DbAttribute columnOriginal,
-            final DbAttribute columnNew) {
-        return new SetColumnTypeToDb(entity, columnOriginal, columnNew) {
-
-            @Override
-            public List<String> createSql(DbAdapter adapter) {
-                List<String> sqls = new ArrayList<>();
-
-                if (columnOriginal.getMaxLength() != columnNew.getMaxLength()) 
{
-                    sqls.add("ALTER TABLE "
-                            + entity.getFullyQualifiedName()
-                            + " COLUMN "
-                            + columnNew.getName()
-                            + " SET LENGTH "
-                            + columnNew.getMaxLength());
-                }
-
-                return sqls;
-            }
-
-        };
-    }
-
-    @Override
-    public MergerToken createSetNotNullToDb(DbEntity entity, DbAttribute 
column) {
-        return new SetNotNullToDb(entity, column) {
-
-            @Override
-            public List<String> createSql(DbAdapter adapter) {
-
-                return Collections.singletonList("ALTER TABLE " + 
getEntity().getFullyQualifiedName()
-                        + " COLUMN " + getColumn().getName() + " SET NOT 
NULL");
-            }
-
-        };
-    }
-
-    @Override
-    public MergerToken createSetAllowNullToDb(DbEntity entity, DbAttribute 
column) {
-        return new SetAllowNullToDb(entity, column) {
-
-            @Override
-            public List<String> createSql(DbAdapter adapter) {
-
-                return Collections.singletonList("ALTER TABLE " + 
getEntity().getFullyQualifiedName()
-                        + " COLUMN " + getColumn().getName() + " SET NULL");
-            }
-
-        };
-    }
-}
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
index b47debc09..32d729701 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
@@ -54,7 +54,6 @@ import org.apache.cayenne.dba.hsqldb.HSQLDBSniffer;
 import org.apache.cayenne.dba.ingres.IngresSniffer;
 import org.apache.cayenne.dba.mariadb.MariaDBSniffer;
 import org.apache.cayenne.dba.mysql.MySQLSniffer;
-import org.apache.cayenne.dba.openbase.OpenBaseSniffer;
 import org.apache.cayenne.dba.oracle.OracleSniffer;
 import org.apache.cayenne.dba.postgres.PostgresSniffer;
 import org.apache.cayenne.dba.sqlite.SQLiteSniffer;
@@ -117,7 +116,7 @@ public class ToolsModule implements Module {
         
binder.bind(BatchTranslatorFactory.class).to(DefaultBatchTranslatorFactory.class);
         binder.bind(JdbcEventLogger.class).to(Slf4jJdbcEventLogger.class);
 
-        
ServerModule.contributeAdapterDetectors(binder).add(FirebirdSniffer.class).add(OpenBaseSniffer.class)
+        
ServerModule.contributeAdapterDetectors(binder).add(FirebirdSniffer.class)
                 
.add(FrontBaseSniffer.class).add(IngresSniffer.class).add(SQLiteSniffer.class).add(DB2Sniffer.class)
                 
.add(H2Sniffer.class).add(HSQLDBSniffer.class).add(SybaseSniffer.class).add(DerbySniffer.class)
                 
.add(SQLServerSniffer.class).add(OracleSniffer.class).add(PostgresSniffer.class)
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
index edd6a15d8..b27ae4064 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
@@ -22,7 +22,6 @@ import java.util.Calendar;
 import java.util.GregorianCalendar;
 
 import org.apache.cayenne.DataChannel;
-import org.apache.cayenne.DataChannelFilter;
 import org.apache.cayenne.DataChannelQueryFilter;
 import org.apache.cayenne.DataChannelSyncFilter;
 import org.apache.cayenne.access.DataDomain;
@@ -121,9 +120,6 @@ import org.apache.cayenne.dba.mariadb.MariaDBSniffer;
 import org.apache.cayenne.dba.mysql.MySQLAdapter;
 import org.apache.cayenne.dba.mysql.MySQLPkGenerator;
 import org.apache.cayenne.dba.mysql.MySQLSniffer;
-import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
-import org.apache.cayenne.dba.openbase.OpenBasePkGenerator;
-import org.apache.cayenne.dba.openbase.OpenBaseSniffer;
 import org.apache.cayenne.dba.oracle.Oracle8Adapter;
 import org.apache.cayenne.dba.oracle.OracleAdapter;
 import org.apache.cayenne.dba.oracle.OraclePkGenerator;
@@ -210,20 +206,6 @@ public class ServerModule implements Module {
         return binder.bindList(String.class, 
Constants.SERVER_PROJECT_LOCATIONS_LIST);
     }
 
-    /**
-     * Provides access to a DI collection builder for {@link 
DataChannelFilter}'s that allows downstream modules to
-     * "contribute" their own DataDomain filters
-     *
-     * @param binder DI binder passed to the module during injector startup.
-     * @return ListBuilder for DataChannelFilter.
-     * @since 4.0
-     * @deprecated since 4.1 use {@link #contributeDomainQueryFilters(Binder)} 
and {@link #contributeDomainSyncFilters(Binder)}
-     */
-    @Deprecated
-    public static ListBuilder<DataChannelFilter> 
contributeDomainFilters(Binder binder) {
-        return binder.bindList(DataChannelFilter.class, 
Constants.SERVER_DOMAIN_FILTERS_LIST);
-    }
-
     /**
      * Provides access to a DI collection builder for {@link 
DataChannelQueryFilter}'s that allows downstream modules to
      * "contribute" their own DataDomain query filters
@@ -367,7 +349,6 @@ public class ServerModule implements Module {
 
         contributeAdapterDetectors(binder)
                 .add(FirebirdSniffer.class)
-                .add(OpenBaseSniffer.class)
                 .add(FrontBaseSniffer.class)
                 .add(IngresSniffer.class)
                 .add(SQLiteSniffer.class)
@@ -394,7 +375,6 @@ public class ServerModule implements Module {
                 .put(H2Adapter.class.getName(), H2PkGenerator.class)
                 .put(IngresAdapter.class.getName(), IngresPkGenerator.class)
                 .put(MySQLAdapter.class.getName(), MySQLPkGenerator.class)
-                .put(OpenBaseAdapter.class.getName(), 
OpenBasePkGenerator.class)
                 .put(OracleAdapter.class.getName(), OraclePkGenerator.class)
                 .put(Oracle8Adapter.class.getName(), OraclePkGenerator.class)
                 .put(PostgresAdapter.class.getName(), 
PostgresPkGenerator.class)
@@ -402,7 +382,6 @@ public class ServerModule implements Module {
                 .put(SybaseAdapter.class.getName(), SybasePkGenerator.class);
 
         // configure a filter chain with only one TransactionFilter as default
-        contributeDomainFilters(binder);
         contributeDomainQueryFilters(binder);
         contributeDomainSyncFilters(binder).add(TransactionFilter.class);
 
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
deleted file mode 100644
index 91c2a3a24..000000000
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
+++ /dev/null
@@ -1,288 +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
- *
- *    https://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.dba.openbase;
-
-import java.sql.CallableStatement;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.Types;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.access.sqlbuilder.sqltree.SQLTreeProcessor;
-import org.apache.cayenne.access.types.ByteType;
-import org.apache.cayenne.access.types.CharType;
-import org.apache.cayenne.access.types.ExtendedType;
-import org.apache.cayenne.access.types.ExtendedTypeFactory;
-import org.apache.cayenne.access.types.ExtendedTypeMap;
-import org.apache.cayenne.access.types.ValueObjectTypeRegistry;
-import org.apache.cayenne.configuration.Constants;
-import org.apache.cayenne.configuration.RuntimeProperties;
-import org.apache.cayenne.dba.JdbcAdapter;
-import org.apache.cayenne.dba.PkGenerator;
-import org.apache.cayenne.dba.TypesMapping;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbJoin;
-import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.resource.ResourceLocator;
-
-/**
- * DbAdapter implementation for <a href="http://www.openbase.com";>OpenBase</a>.
- * Sample connection settings to use with OpenBase are shown below:
- * <p>
- * <pre>
- * openbase.jdbc.username = test
- * openbase.jdbc.password = secret
- * openbase.jdbc.url = jdbc:openbase://serverhostname/cayenne
- * openbase.jdbc.driver = com.openbase.jdbc.ObDriver
- * </pre>
- *
- * @since 1.1
- * @deprecated since 4.2, OpenBase is pretty much obsolete and not tested
- */
-@Deprecated
-public class OpenBaseAdapter extends JdbcAdapter {
-
-    public OpenBaseAdapter(@Inject RuntimeProperties runtimeProperties,
-                           @Inject(Constants.SERVER_DEFAULT_TYPES_LIST) 
List<ExtendedType> defaultExtendedTypes,
-                           @Inject(Constants.SERVER_USER_TYPES_LIST) 
List<ExtendedType> userExtendedTypes,
-                           @Inject(Constants.SERVER_TYPE_FACTORIES_LIST) 
List<ExtendedTypeFactory> extendedTypeFactories,
-                           @Inject(Constants.SERVER_RESOURCE_LOCATOR) 
ResourceLocator resourceLocator,
-                           @Inject ValueObjectTypeRegistry 
valueObjectTypeRegistry) {
-        super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, 
extendedTypeFactories, resourceLocator, valueObjectTypeRegistry);
-
-        // init defaults
-        this.setSupportsUniqueConstraints(false);
-    }
-
-    /**
-     * @since 4.2
-     */
-    @Override
-    public SQLTreeProcessor getSqlTreeProcessor() {
-        return new OpenBaseSQLTreeProcessor();
-    }
-
-    @Override
-    protected void configureExtendedTypes(ExtendedTypeMap map) {
-        super.configureExtendedTypes(map);
-
-        // Byte handling doesn't work on read...
-        // need special converter
-        map.registerType(new OpenBaseByteType());
-
-        map.registerType(new OpenBaseCharType());
-    }
-
-    @Override
-    public DbAttribute buildAttribute(String name, String typeName, int type, 
int size, int scale, boolean allowNulls) {
-
-        // OpenBase makes no distinction between CHAR and VARCHAR
-        // so lets use VARCHAR, since it seems more generic
-        if (type == Types.CHAR) {
-            type = Types.VARCHAR;
-        }
-
-        return super.buildAttribute(name, typeName, type, size, scale, 
allowNulls);
-    }
-
-    /**
-     * Returns word "go".
-     */
-    @Override
-    public String getBatchTerminator() {
-        return "go";
-    }
-
-    /**
-     * Returns null, since views are not yet supported in openbase.
-     */
-    @Override
-    public String tableTypeForView() {
-        // TODO: according to OpenBase docs views *ARE* supported.
-        return null;
-    }
-
-    /**
-     * Creates and returns a primary key generator. Overrides superclass
-     * implementation to return an instance of OpenBasePkGenerator that uses
-     * built-in multi-server primary key generation.
-     */
-    @Override
-    protected PkGenerator createPkGenerator() {
-        return new OpenBasePkGenerator(this);
-    }
-
-    /**
-     * Returns a SQL string that can be used to create database table
-     * corresponding to <code>ent</code> parameter.
-     */
-    @Override
-    public String createTable(DbEntity ent) {
-
-        StringBuilder buf = new StringBuilder();
-
-        buf.append("CREATE TABLE ");
-        buf.append(quotingStrategy.quotedFullyQualifiedName(ent));
-        buf.append(" (");
-
-        // columns
-        Iterator<DbAttribute> it = ent.getAttributes().iterator();
-        boolean first = true;
-        while (it.hasNext()) {
-            if (first) {
-                first = false;
-            } else {
-                buf.append(", ");
-            }
-
-            DbAttribute at = it.next();
-
-            // attribute may not be fully valid, do a simple check
-            if (at.getType() == TypesMapping.NOT_DEFINED) {
-                throw new CayenneRuntimeException("Undefined type for 
attribute '%s.%s'"
-                        , ent.getFullyQualifiedName(), at.getName());
-            }
-
-            String[] types = externalTypesForJdbcType(at.getType());
-            if (types == null || types.length == 0) {
-                throw new CayenneRuntimeException("Undefined type for 
attribute '%s.%s': %s"
-                        , ent.getFullyQualifiedName(), at.getName(), 
at.getType());
-            }
-
-            String type = types[0];
-            buf.append(quotingStrategy.quotedName(at)).append(' 
').append(type);
-
-            // append size and precision (if applicable)
-            if (typeSupportsLength(at.getType())) {
-                int len = at.getMaxLength();
-                int scale = TypesMapping.isDecimal(at.getType()) ? 
at.getScale() : -1;
-
-                // sanity check
-                if (scale > len) {
-                    scale = -1;
-                }
-
-                if (len > 0) {
-                    buf.append('(').append(len);
-
-                    if (scale >= 0) {
-                        buf.append(", ").append(scale);
-                    }
-
-                    buf.append(')');
-                }
-            }
-
-            if (at.isMandatory()) {
-                buf.append(" NOT NULL");
-            } else {
-                buf.append(" NULL");
-            }
-        }
-
-        buf.append(')');
-        return buf.toString();
-    }
-
-    /**
-     * Returns a SQL string that can be used to create a foreign key constraint
-     * for the relationship.
-     */
-    @Override
-    public String createFkConstraint(DbRelationship rel) {
-        StringBuilder buf = new StringBuilder();
-
-        // OpendBase Specifics is that we need to create a constraint going
-        // from destination to source for this to work...
-
-        DbEntity sourceEntity = (DbEntity) rel.getSourceEntity();
-        DbEntity targetEntity = (DbEntity) rel.getTargetEntity();
-        String toMany = (!rel.isToMany()) ? "'1'" : "'0'";
-
-        // TODO: doesn't seem like OpenBase supports compound joins...
-        // need to doublecheck that
-
-        int joinsLen = rel.getJoins().size();
-        if (joinsLen == 0) {
-            throw new CayenneRuntimeException("Relationship has no joins: %s", 
rel.getName());
-        } else if (joinsLen > 1) {
-            // ignore extra joins
-        }
-
-        DbJoin join = rel.getJoins().get(0);
-
-        buf.append("INSERT INTO _SYS_RELATIONSHIP (").append("dest_table, 
dest_column, source_table, source_column, ")
-                .append("block_delete, cascade_delete, one_to_many, operator, 
relationshipName").append(") VALUES ('")
-                .append(sourceEntity.getFullyQualifiedName()).append("', 
'").append(join.getSourceName())
-                .append("', 
'").append(targetEntity.getFullyQualifiedName()).append("', '")
-                .append(join.getTargetName()).append("', 0, 0, 
").append(toMany).append(", '=', '")
-                .append(rel.getName()).append("')");
-
-        return buf.toString();
-    }
-
-    // OpenBase JDBC driver has trouble reading "integer" as byte
-    // this converter addresses such problem
-    static class OpenBaseByteType extends ByteType {
-
-        OpenBaseByteType() {
-            super(true);
-        }
-
-        @Override
-        public Byte materializeObject(ResultSet rs, int index, int type) 
throws Exception {
-
-            // read value as int, and then narrow it down
-            int val = rs.getInt(index);
-            return (rs.wasNull()) ? null : (byte) val;
-        }
-
-        @Override
-        public Byte materializeObject(CallableStatement rs, int index, int 
type) throws Exception {
-
-            // read value as int, and then narrow it down
-            int val = rs.getInt(index);
-            return (rs.wasNull()) ? null : (byte) val;
-        }
-    }
-
-    static class OpenBaseCharType extends CharType {
-
-        OpenBaseCharType() {
-            super(false, true);
-        }
-
-        @Override
-        public void setJdbcObject(PreparedStatement st, String val, int pos, 
int type, int precision) throws Exception {
-
-            // These to types map to "text"; and when setting "text" as object
-            // OB assumes that the object is the actual CLOB... weird
-            if (type == Types.CLOB || type == Types.LONGVARCHAR) {
-                st.setString(pos, val);
-            } else {
-                super.setJdbcObject(st, val, pos, type, precision);
-            }
-        }
-    }
-}
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBasePkGenerator.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBasePkGenerator.java
deleted file mode 100644
index ba3d2b95f..000000000
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBasePkGenerator.java
+++ /dev/null
@@ -1,289 +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
- *
- *    https://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.dba.openbase;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.access.DataNode;
-import org.apache.cayenne.dba.JdbcAdapter;
-import org.apache.cayenne.dba.JdbcPkGenerator;
-import org.apache.cayenne.dba.QuotingStrategy;
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.util.IDUtil;
-
-/**
- * @since 1.1
- * @deprecated since 4.2
- */
-@Deprecated
-public class OpenBasePkGenerator extends JdbcPkGenerator {
-
-    /**
-     * Used by DI
-     * @since 4.1
-     */
-    public OpenBasePkGenerator() {
-        super();
-    }
-
-    protected OpenBasePkGenerator(JdbcAdapter adapter) {
-        super(adapter);
-    }
-
-    /**
-     * Returns a non-repeating primary key for a given PK attribute. Since
-     * OpenBase-specific mechanism is used, key caching is disabled. Instead a
-     * database operation is performed on every call.
-     *
-     * @since 3.0
-     */
-    @Override
-    public Object generatePk(DataNode node, DbAttribute pk) throws Exception {
-
-        DbEntity entity = pk.getEntity();
-
-        switch (pk.getType()) {
-            case Types.BINARY:
-            case Types.VARBINARY:
-                return 
IDUtil.pseudoUniqueSecureByteSequence(pk.getMaxLength());
-        }
-
-        long value = longPkFromDatabase(node, entity);
-
-        if (pk.getType() == Types.BIGINT) {
-            return value;
-        } else {
-            // leaving it up to the user to ensure that PK does not exceed max
-            // int...
-            return (int) value;
-        }
-    }
-
-    /**
-     * Generates new (unique and non-repeating) primary key for specified
-     * DbEntity. Executed SQL looks like this:
-     *
-     * <pre>
-     *  NEWID FOR Table Column
-     * </pre>
-     * <p>
-     * COLUMN must be marked as UNIQUE in order for this to work properly.
-     *
-     * @since 3.0
-     */
-    @Override
-    protected long longPkFromDatabase(DataNode node, DbEntity entity) throws 
Exception {
-
-        String sql = newIDString(entity);
-        adapter.getJdbcEventLogger().log(sql);
-
-        try (Connection con = node.getDataSource().getConnection()) {
-            try (Statement st = con.createStatement()) {
-                try (ResultSet rs = st.executeQuery(sql)) {
-                    // Object pk = null;
-                    if (!rs.next()) {
-                        throw new CayenneRuntimeException("Error generating pk 
for DbEntity %s", entity.getName());
-                    }
-                    return rs.getLong(1);
-                }
-            }
-        }
-    }
-
-    /**
-     * Returns SQL string that can generate new (unique and non-repeating)
-     * primary key for specified DbEntity. No actual database operations are
-     * performed.
-     *
-     * @since 1.2
-     */
-    protected String newIDString(DbEntity ent) {
-        if (ent.getPrimaryKeys() == null || ent.getPrimaryKeys().size() != 1) {
-            throw new CayenneRuntimeException("Error generating pk for 
DbEntity %s"
-                    + ": pk must be single attribute", ent.getName());
-        }
-        DbAttribute primaryKeyAttribute = 
ent.getPrimaryKeys().iterator().next();
-
-        return "NEWID FOR " + ent.getName() + ' ' + 
primaryKeyAttribute.getName();
-    }
-
-    @Override
-    public void createAutoPk(DataNode node, List<DbEntity> dbEntities) throws 
Exception {
-        // looks like generating a PK on top of an existing one does not
-        // result in errors...
-
-        // create needed sequences
-        for (DbEntity dbEntity : dbEntities) {
-            // the caller must take care of giving us the right entities
-            // but lets check anyway
-            if (!canCreatePK(dbEntity)) {
-                continue;
-            }
-
-            runUpdate(node, createPKString(dbEntity));
-            runUpdate(node, createUniquePKIndexString(dbEntity));
-        }
-    }
-
-    /**
-     *
-     */
-    @Override
-    public List<String> createAutoPkStatements(List<DbEntity> dbEntities) {
-        List<String> list = new ArrayList<>(2 * dbEntities.size());
-        for (DbEntity dbEntity : dbEntities) {
-            // the caller must take care of giving us the right entities
-            // but lets check anyway
-            if (!canCreatePK(dbEntity)) {
-                continue;
-            }
-
-            list.add(createPKString(dbEntity));
-            list.add(createUniquePKIndexString(dbEntity));
-        }
-
-        return list;
-    }
-
-    protected boolean canCreatePK(DbEntity entity) {
-        return entity.getPrimaryKeys().size() > 0;
-    }
-
-    /**
-     *
-     */
-    @Override
-    public void dropAutoPk(DataNode node, List<DbEntity> dbEntities) throws 
Exception {
-        // there is no simple way to do that... probably requires
-        // editing metadata tables...
-        // Good thing is that it doesn't matter, since PK support
-        // is attached to the table itself, so if a table is dropped,
-        // it will be dropped as well
-    }
-
-    /**
-     * Returns an empty list, since OpenBase doesn't support this operation.
-     */
-    @Override
-    public List<String> dropAutoPkStatements(List<DbEntity> dbEntities) {
-        return Collections.emptyList();
-    }
-
-    /**
-     * Returns a String to create PK support for an entity.
-     */
-    protected String createPKString(DbEntity entity) {
-        Collection<DbAttribute> pk = entity.getPrimaryKeys();
-
-        if (pk == null || pk.size() == 0) {
-            throw new CayenneRuntimeException("Entity '%s' has no PK 
defined.", entity.getName());
-        }
-
-        StringBuilder buffer = new StringBuilder();
-        buffer.append("CREATE PRIMARY KEY ");
-
-        QuotingStrategy context = getAdapter().getQuotingStrategy();
-
-        buffer.append(context.quotedIdentifier(entity, entity.getName()));
-
-        buffer.append(" (");
-
-        Iterator<DbAttribute> it = pk.iterator();
-
-        // at this point we know that there is at least on PK column
-        DbAttribute firstColumn = it.next();
-        buffer.append(context.quotedName(firstColumn));
-
-        while (it.hasNext()) {
-            DbAttribute column = it.next();
-            buffer.append(", ");
-            buffer.append(context.quotedName(column));
-        }
-
-        buffer.append(")");
-        return buffer.toString();
-    }
-
-    /**
-     * Returns a String to create a unique index on table primary key columns
-     * per OpenBase recommendations.
-     */
-    protected String createUniquePKIndexString(DbEntity entity) {
-        Collection<DbAttribute> pk = entity.getPrimaryKeys();
-
-        QuotingStrategy context = getAdapter().getQuotingStrategy();
-        if (pk == null || pk.size() == 0) {
-            throw new CayenneRuntimeException("Entity '%s' has no PK 
defined.", entity.getName());
-        }
-
-        StringBuilder buffer = new StringBuilder();
-
-        // compound PK doesn't work well with UNIQUE index...
-        // create a regular one in this case
-        buffer.append(pk.size() == 1 ? "CREATE UNIQUE INDEX " : "CREATE INDEX 
");
-
-        buffer.append(context.quotedIdentifier(entity, entity.getName()));
-        buffer.append(" (");
-
-        Iterator<DbAttribute> it = pk.iterator();
-
-        // at this point we know that there is at least on PK column
-        DbAttribute firstColumn = it.next();
-        buffer.append(context.quotedName(firstColumn));
-
-        while (it.hasNext()) {
-            DbAttribute column = it.next();
-            buffer.append(", ");
-            buffer.append(context.quotedName(column));
-        }
-        buffer.append(")");
-        return buffer.toString();
-    }
-
-    @Override
-    public void reset() {
-        // noop
-    }
-
-    /**
-     * Returns zero, since PK caching is not feasible with OpenBase PK
-     * generation mechanism.
-     */
-    @Override
-    public int getPkCacheSize() {
-        return 0;
-    }
-
-    @Override
-    public void setPkCacheSize(int pkCacheSize) {
-        // noop, no PK caching
-    }
-
-}
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSQLTreeProcessor.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSQLTreeProcessor.java
deleted file mode 100644
index 42690dbe0..000000000
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSQLTreeProcessor.java
+++ /dev/null
@@ -1,111 +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
- *
- *    https://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.dba.openbase;
-
-import org.apache.cayenne.access.sqlbuilder.QuotingAppendable;
-import org.apache.cayenne.access.sqlbuilder.sqltree.FunctionNode;
-import org.apache.cayenne.access.sqlbuilder.sqltree.LikeNode;
-import org.apache.cayenne.access.sqlbuilder.sqltree.LimitOffsetNode;
-import org.apache.cayenne.access.sqlbuilder.sqltree.Node;
-import org.apache.cayenne.access.sqlbuilder.sqltree.NodeType;
-import org.apache.cayenne.access.sqlbuilder.sqltree.ValueNode;
-import org.apache.cayenne.access.translator.select.BaseSQLTreeProcessor;
-
-/**
- * @since 4.2
- * @deprecated since 4.2
- */
-@Deprecated
-public class OpenBaseSQLTreeProcessor extends BaseSQLTreeProcessor {
-
-    @Override
-    protected void onLikeNode(Node parent, LikeNode child, int index) {
-        // OpenBase is case-insensitive by default
-        if(child.isIgnoreCase()) {
-            replaceChild(parent, index, new LikeNode(false, child.isNot(), 
child.getEscape()));
-        }
-    }
-
-    @Override
-    protected void onValueNode(Node parent, ValueNode child, int index) {
-        // Special handling of string matching is needed:
-        // Case-sensitive LIKE must be converted to [x][Y][z] format
-        if(parent.getType() == NodeType.LIKE) {
-            if(!((LikeNode)parent).isIgnoreCase() && child.getValue() 
instanceof CharSequence) {
-                replaceChild(parent, index,
-                        new 
ValueNode(caseSensitiveLikePattern((CharSequence)child.getValue()), 
child.isArray(), child.getAttribute()));
-            }
-        }
-    }
-
-    @Override
-    protected void onLimitOffsetNode(Node parent, LimitOffsetNode child, int 
index) {
-        replaceChild(parent, index, new OpenBaseLimitNode(child));
-    }
-
-    @Override
-    protected void onFunctionNode(Node parent, FunctionNode child, int index) {
-        switch (child.getFunctionName()) {
-            case "DAY_OF_WEEK":
-            case "DAY_OF_MONTH":
-            case "DAY_OF_YEAR":
-                replaceChild(parent, index, new 
FunctionNode(child.getFunctionName().replace("_", ""), child.getAlias()));
-                break;
-        }
-    }
-
-    private String caseSensitiveLikePattern(CharSequence pattern) {
-        int len = pattern.length();
-        StringBuilder buffer = new StringBuilder(len * 3);
-
-        for (int i = 0; i < len; i++) {
-            char c = pattern.charAt(i);
-            if (c == '%' || c == '?') {
-                buffer.append(c);
-            } else {
-                buffer.append("[").append(c).append("]");
-            }
-        }
-
-        return buffer.toString();
-    }
-
-    private static class OpenBaseLimitNode extends Node {
-
-        private final LimitOffsetNode child;
-
-        public OpenBaseLimitNode(LimitOffsetNode child) {
-            this.child = child;
-        }
-
-        @Override
-        public QuotingAppendable append(QuotingAppendable buffer) {
-            if(child.getLimit() > 0) {
-                buffer.append(" RETURN RESULTS ").append(child.getLimit());
-            }
-            return buffer;
-        }
-
-        @Override
-        public Node copy() {
-            return new OpenBaseLimitNode(child);
-        }
-    }
-}
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSniffer.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSniffer.java
deleted file mode 100644
index d0e4fcc92..000000000
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSniffer.java
+++ /dev/null
@@ -1,57 +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
- *
- *    https://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.dba.openbase;
-
-import java.sql.DatabaseMetaData;
-import java.sql.SQLException;
-
-import org.apache.cayenne.configuration.server.DbAdapterDetector;
-import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.di.AdhocObjectFactory;
-import org.apache.cayenne.di.Inject;
-
-/**
- * Detects OpenBase DB from JDBC metadata.
- * 
- * @since 1.2
- * @deprecated since 4.2
- */
-@Deprecated
-public class OpenBaseSniffer implements DbAdapterDetector {
-
-    protected AdhocObjectFactory objectFactory;
-
-    public OpenBaseSniffer(@Inject AdhocObjectFactory objectFactory) {
-        this.objectFactory = objectFactory;
-    }
-
-    @Override
-    public DbAdapter createAdapter(DatabaseMetaData md) throws SQLException {
-        String dbName = md.getDatabaseProductName();
-        if (dbName == null || !dbName.toUpperCase().contains("OPENBASE")) {
-            return null;
-        }
-
-        return objectFactory.newInstance(
-                DbAdapter.class,
-                OpenBaseAdapter.class.getName());
-    }
-
-}
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/package.html 
b/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/package.html
deleted file mode 100644
index cbf95ee49..000000000
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/package.html
+++ /dev/null
@@ -1,26 +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
-
-     https://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.
--->
-<html>
-<body>
-OpenBase DbAdapter.
-<p>
-    Deprecated since Cayenne 4.2, as it can't be effectively tested and 
supported.
-</p>
-</body>
-</html>
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java 
b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
index a332f8588..7d4d0e613 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
@@ -20,7 +20,7 @@
 package org.apache.cayenne;
 
 import org.apache.cayenne.dba.frontbase.FrontBaseAdapter;
-import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
+import org.apache.cayenne.dba.mysql.MySQLAdapter;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.map.DataMap;
@@ -113,7 +113,7 @@ public class CayenneIT extends ServerCase {
                 FrontBaseAdapter.class.getName(),
                 "SELECT COUNT(ARTIST_ID) AS X FROM ARTIST");
         query.setTemplate(
-                OpenBaseAdapter.class.getName(),
+                MySQLAdapter.class.getName(),
                 "SELECT COUNT(ARTIST_ID) AS X FROM ARTIST");
         query.setColumnNamesCapitalization(CapsStrategy.UPPER);
 
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
index bc752e466..0ba53e03f 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
@@ -24,7 +24,7 @@ import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.QueryResponse;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.dba.frontbase.FrontBaseAdapter;
-import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
+import org.apache.cayenne.dba.mysql.MySQLAdapter;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.event.EventManager;
 import org.apache.cayenne.graph.GraphDiff;
@@ -67,7 +67,7 @@ public class DataContextDecoratedStackIT extends ServerCase {
                 FrontBaseAdapter.class.getName(),
                 "select #result('COUNT(ARTIST_ID)' 'int' 'x') from ARTIST");
         query.setTemplate(
-                OpenBaseAdapter.class.getName(),
+                MySQLAdapter.class.getName(),
                 "select #result('COUNT(ARTIST_ID)' 'int' 'x') from ARTIST");
         Map<?, ?> count = (Map<?, ?>) Cayenne.objectForQuery(context, query);
         assertNotNull(count);
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
index a4e0e9391..2bc672719 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
@@ -24,7 +24,7 @@ import org.apache.cayenne.DataRow;
 import org.apache.cayenne.ResultIterator;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.dba.frontbase.FrontBaseAdapter;
-import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
+import org.apache.cayenne.dba.mysql.MySQLAdapter;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.EntityResult;
@@ -161,7 +161,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
                DataMap map = context.getEntityResolver().getDataMap("testmap");
                SQLTemplate query = new SQLTemplate(map, sql, false);
                query.setTemplate(FrontBaseAdapter.class.getName(), "SELECT 
COUNT(ARTIST_ID) X FROM ARTIST");
-               query.setTemplate(OpenBaseAdapter.class.getName(), "SELECT 
COUNT(ARTIST_ID) X FROM ARTIST");
+               query.setTemplate(MySQLAdapter.class.getName(), "SELECT 
COUNT(ARTIST_ID) X FROM ARTIST");
                query.setColumnNamesCapitalization(CapsStrategy.UPPER);
 
                SQLResult rsMap = new SQLResult();
@@ -185,7 +185,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
                DataMap map = context.getEntityResolver().getDataMap("testmap");
                SQLTemplate query = new SQLTemplate(map, sql, false);
                query.setTemplate(FrontBaseAdapter.class.getName(), "SELECT 
COUNT(ARTIST_ID) X, 77 Y FROM ARTIST GROUP BY Y");
-               query.setTemplate(OpenBaseAdapter.class.getName(), "SELECT 
COUNT(ARTIST_ID) X, 77 Y FROM ARTIST GROUP BY 77");
+               query.setTemplate(MySQLAdapter.class.getName(), "SELECT 
COUNT(ARTIST_ID) X, 77 Y FROM ARTIST GROUP BY 77");
                query.setColumnNamesCapitalization(CapsStrategy.UPPER);
 
                SQLResult rsMap = new SQLResult();
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java
index 37a126147..84d816c79 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java
@@ -80,9 +80,6 @@ import org.apache.cayenne.dba.mariadb.MariaDBSniffer;
 import org.apache.cayenne.dba.mysql.MySQLAdapter;
 import org.apache.cayenne.dba.mysql.MySQLPkGenerator;
 import org.apache.cayenne.dba.mysql.MySQLSniffer;
-import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
-import org.apache.cayenne.dba.openbase.OpenBasePkGenerator;
-import org.apache.cayenne.dba.openbase.OpenBaseSniffer;
 import org.apache.cayenne.dba.oracle.Oracle8Adapter;
 import org.apache.cayenne.dba.oracle.OracleAdapter;
 import org.apache.cayenne.dba.oracle.OraclePkGenerator;
@@ -175,12 +172,11 @@ public class DataDomainProviderTest {
             ServerModule.contributeProperties(binder);
 
             
ServerModule.contributeAdapterDetectors(binder).add(FirebirdSniffer.class)
-                    
.add(OpenBaseSniffer.class).add(FrontBaseSniffer.class).add(IngresSniffer.class)
+                    .add(FrontBaseSniffer.class).add(IngresSniffer.class)
                     
.add(SQLiteSniffer.class).add(DB2Sniffer.class).add(H2Sniffer.class).add(HSQLDBSniffer.class)
                     
.add(SybaseSniffer.class).add(DerbySniffer.class).add(SQLServerSniffer.class)
                     
.add(OracleSniffer.class).add(PostgresSniffer.class).add(MySQLSniffer.class)
                     .add(MariaDBSniffer.class);
-            ServerModule.contributeDomainFilters(binder);
             ServerModule.contributeDomainQueryFilters(binder);
             ServerModule.contributeDomainSyncFilters(binder);
             ServerModule.contributeDomainListeners(binder).add(mockListener);
@@ -195,7 +191,6 @@ public class DataDomainProviderTest {
                     .put(H2Adapter.class.getName(), H2PkGenerator.class)
                     .put(IngresAdapter.class.getName(), 
IngresPkGenerator.class)
                     .put(MySQLAdapter.class.getName(), MySQLPkGenerator.class)
-                    .put(OpenBaseAdapter.class.getName(), 
OpenBasePkGenerator.class)
                     .put(OracleAdapter.class.getName(), 
OraclePkGenerator.class)
                     .put(Oracle8Adapter.class.getName(), 
OraclePkGenerator.class)
                     .put(PostgresAdapter.class.getName(), 
PostgresPkGenerator.class)
diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
index 08e38015a..2429cbc05 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
@@ -92,8 +92,6 @@ import org.apache.cayenne.dba.ingres.IngresAdapter;
 import org.apache.cayenne.dba.ingres.IngresPkGenerator;
 import org.apache.cayenne.dba.mysql.MySQLAdapter;
 import org.apache.cayenne.dba.mysql.MySQLPkGenerator;
-import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
-import org.apache.cayenne.dba.openbase.OpenBasePkGenerator;
 import org.apache.cayenne.dba.oracle.Oracle8Adapter;
 import org.apache.cayenne.dba.oracle.OracleAdapter;
 import org.apache.cayenne.dba.oracle.OraclePkGenerator;
@@ -170,7 +168,6 @@ public class ServerCaseModule implements Module {
                 .put(SybaseAdapter.class.getName(), 
SybaseUnitDbAdapter.class.getName())
                 .put(MySQLAdapter.class.getName(), 
MySQLUnitDbAdapter.class.getName())
                 .put(PostgresAdapter.class.getName(), 
PostgresUnitDbAdapter.class.getName())
-                .put(OpenBaseAdapter.class.getName(), 
OpenBaseUnitDbAdapter.class.getName())
                 .put(SQLServerAdapter.class.getName(), 
SQLServerUnitDbAdapter.class.getName())
                 .put(DB2Adapter.class.getName(), 
DB2UnitDbAdapter.class.getName())
                 .put(HSQLDBAdapter.class.getName(), 
HSQLDBUnitDbAdapter.class.getName())
@@ -183,7 +180,6 @@ public class ServerCaseModule implements Module {
                 // Should remove problems with random-failing tests (those 
that are GC-sensitive).
                 .put(Constants.SERVER_OBJECT_RETAIN_STRATEGY_PROPERTY, "soft");
 
-        ServerModule.contributeDomainFilters(binder);
         ServerModule.contributeDomainSyncFilters(binder);
         ServerModule.contributeDomainQueryFilters(binder);
 
@@ -196,7 +192,6 @@ public class ServerCaseModule implements Module {
                 .put(H2Adapter.class.getName(), H2PkGenerator.class)
                 .put(IngresAdapter.class.getName(), IngresPkGenerator.class)
                 .put(MySQLAdapter.class.getName(), MySQLPkGenerator.class)
-                .put(OpenBaseAdapter.class.getName(), 
OpenBasePkGenerator.class)
                 .put(OracleAdapter.class.getName(), OraclePkGenerator.class)
                 .put(Oracle8Adapter.class.getName(), OraclePkGenerator.class)
                 .put(PostgresAdapter.class.getName(), 
PostgresPkGenerator.class)
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/AdapterMapping.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/AdapterMapping.java
index 36b59a594..a59982c94 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/AdapterMapping.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/AdapterMapping.java
@@ -30,7 +30,6 @@ import org.apache.cayenne.dba.h2.H2Adapter;
 import org.apache.cayenne.dba.hsqldb.HSQLDBAdapter;
 import org.apache.cayenne.dba.ingres.IngresAdapter;
 import org.apache.cayenne.dba.mysql.MySQLAdapter;
-import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
 import org.apache.cayenne.dba.oracle.OracleAdapter;
 import org.apache.cayenne.dba.postgres.PostgresAdapter;
 import org.apache.cayenne.dba.sqlite.SQLiteAdapter;
@@ -69,7 +68,6 @@ public class AdapterMapping {
         jdbcDriverToAdapterMap.put("org.hsqldb.jdbcDriver", 
HSQLDBAdapter.class.getName());
         jdbcDriverToAdapterMap.put("org.h2.Driver", H2Adapter.class.getName());
         jdbcDriverToAdapterMap.put("org.postgresql.Driver", 
PostgresAdapter.class.getName());
-        jdbcDriverToAdapterMap.put("com.openbase.jdbc.ObDriver", 
OpenBaseAdapter.class.getName());
         
jdbcDriverToAdapterMap.put("com.microsoft.sqlserver.jdbc.SQLServerDriver", 
SQLServerAdapter.class.getName());
         jdbcDriverToAdapterMap.put("org.apache.derby.jdbc.EmbeddedDriver", 
DerbyAdapter.class.getName());
         jdbcDriverToAdapterMap.put("jdbc.FrontBase.FBJDriver", 
FrontBaseAdapter.class.getName());
@@ -85,7 +83,6 @@ public class AdapterMapping {
         adapterToJDBCURLMap.put(HSQLDBAdapter.class.getName(), 
"jdbc:hsqldb:hsql://localhost/database");
         adapterToJDBCURLMap.put(H2Adapter.class.getName(), 
"jdbc:h2:mem:database;MVCC=TRUE");
         adapterToJDBCURLMap.put(PostgresAdapter.class.getName(), 
"jdbc:postgresql://localhost:5432/database");
-        adapterToJDBCURLMap.put(OpenBaseAdapter.class.getName(), 
"jdbc:openbase://localhost/database");
         adapterToJDBCURLMap.put(SQLServerAdapter.class.getName(),
                 
"jdbc:sqlserver://localhost:1433;databaseName=database;SelectMethod=cursor");
         adapterToJDBCURLMap.put(SQLiteAdapter.class.getName(), 
"jdbc:sqlite:testdb");
@@ -106,7 +103,6 @@ public class AdapterMapping {
         adapterToJDBCDriverMap.put(HSQLDBAdapter.class.getName(), 
"org.hsqldb.jdbcDriver");
         adapterToJDBCDriverMap.put(H2Adapter.class.getName(), "org.h2.Driver");
         adapterToJDBCDriverMap.put(PostgresAdapter.class.getName(), 
"org.postgresql.Driver");
-        adapterToJDBCDriverMap.put(OpenBaseAdapter.class.getName(), 
"com.openbase.jdbc.ObDriver");
         adapterToJDBCDriverMap.put(SQLServerAdapter.class.getName(), 
"com.microsoft.sqlserver.jdbc.SQLServerDriver");
         adapterToJDBCDriverMap.put(DerbyAdapter.class.getName(), 
"org.apache.derby.jdbc.EmbeddedDriver");
 
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAdapterInfo.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAdapterInfo.java
index 12fbc2443..49b18e42f 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAdapterInfo.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAdapterInfo.java
@@ -37,7 +37,6 @@ import org.apache.cayenne.dba.h2.H2Adapter;
 import org.apache.cayenne.dba.hsqldb.HSQLDBAdapter;
 import org.apache.cayenne.dba.ingres.IngresAdapter;
 import org.apache.cayenne.dba.mysql.MySQLAdapter;
-import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
 import org.apache.cayenne.dba.oracle.OracleAdapter;
 import org.apache.cayenne.dba.postgres.PostgresAdapter;
 import org.apache.cayenne.dba.sqlite.SQLiteAdapter;
@@ -51,7 +50,7 @@ public final class DbAdapterInfo {
             MySQLAdapter.class.getName(), OracleAdapter.class.getName(), 
SybaseAdapter.class.getName(),
             PostgresAdapter.class.getName(), H2Adapter.class.getName(), 
HSQLDBAdapter.class.getName(),
             DB2Adapter.class.getName(), SQLServerAdapter.class.getName(), 
FrontBaseAdapter.class.getName(),
-            FirebirdAdapter.class.getName(), OpenBaseAdapter.class.getName(), 
DerbyAdapter.class.getName(),
+            FirebirdAdapter.class.getName(), DerbyAdapter.class.getName(),
             IngresAdapter.class.getName(), SQLiteAdapter.class.getName() };
 
     private static final Map<String, String> IMMUTABLE_LABELS = 
Collections.unmodifiableMap(DEFAULT_ADAPTER_LABELS);
@@ -68,7 +67,6 @@ public final class DbAdapterInfo {
         DEFAULT_ADAPTER_LABELS.put(SQLServerAdapter.class.getName(), "MS 
SQLServer Adapter");
         DEFAULT_ADAPTER_LABELS.put(FrontBaseAdapter.class.getName(), 
"FrontBase Adapter");
         DEFAULT_ADAPTER_LABELS.put(FirebirdAdapter.class.getName(), "Firebird 
Adapter");
-        DEFAULT_ADAPTER_LABELS.put(OpenBaseAdapter.class.getName(), "OpenBase 
Adapter");
         DEFAULT_ADAPTER_LABELS.put(DerbyAdapter.class.getName(), "Derby 
Adapter");
         DEFAULT_ADAPTER_LABELS.put(IngresAdapter.class.getName(), "Ingres 
Adapter");
         DEFAULT_ADAPTER_LABELS.put(SQLiteAdapter.class.getName(), "SQLite 
Adapter");

Reply via email to