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");