From 85bea59286d2f1de9c440bec2373ca1fa9ce09c2 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Wed, 18 Feb 2009 22:00:07 +0000 Subject: Allow object type to be used with JDBC. --- .../carbonado/repo/jdbc/H2SchemaResolver.java | 3 ++ .../com/amazon/carbonado/repo/jdbc/TestH2.java | 22 ++++++++++--- .../amazon/carbonado/stored/WithPropertyOther.java | 36 ++++++++++++++++++++++ 3 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 src/test/java/com/amazon/carbonado/stored/WithPropertyOther.java (limited to 'src') diff --git a/src/test/java/com/amazon/carbonado/repo/jdbc/H2SchemaResolver.java b/src/test/java/com/amazon/carbonado/repo/jdbc/H2SchemaResolver.java index a5ca1e7..dfb02a8 100644 --- a/src/test/java/com/amazon/carbonado/repo/jdbc/H2SchemaResolver.java +++ b/src/test/java/com/amazon/carbonado/repo/jdbc/H2SchemaResolver.java @@ -120,6 +120,9 @@ public class H2SchemaResolver implements SchemaResolver { typeName = "CLOB"; } else if (type == BigDecimal.class || type == BigInteger.class) { typeName = "NUMBER"; + } else if (type == Object.class) { + // Object type is used by some tests. + typeName = "VARCHAR"; } else { return false; } diff --git a/src/test/java/com/amazon/carbonado/repo/jdbc/TestH2.java b/src/test/java/com/amazon/carbonado/repo/jdbc/TestH2.java index f0d54e0..9e472ef 100644 --- a/src/test/java/com/amazon/carbonado/repo/jdbc/TestH2.java +++ b/src/test/java/com/amazon/carbonado/repo/jdbc/TestH2.java @@ -38,6 +38,7 @@ import com.amazon.carbonado.repo.indexed.IndexedRepositoryBuilder; import com.amazon.carbonado.TestUtilities; import com.amazon.carbonado.stored.StorableWithLobs; +import com.amazon.carbonado.stored.WithPropertyOther; /** * @@ -59,6 +60,17 @@ public class TestH2 extends com.amazon.carbonado.TestStorables { super(name); } + public void test_propertyOther() throws Exception { + Storage storage = getRepository().storageFor(WithPropertyOther.class); + WithPropertyOther other = storage.prepare(); + other.setId(1); + other.setObject("hello"); + other.insert(); + + other.load(); + assertEquals("hello", other.getObject()); + } + @Override public void test_derivedJoinIndex() throws Exception { // Needs to use custom indexing for this test to work. @@ -79,11 +91,6 @@ public class TestH2 extends com.amazon.carbonado.TestStorables { } */ - @Override - protected Repository buildRepository(boolean isMaster) throws RepositoryException { - return jdbcBuilder(isMaster).build(); - } - // Override because H2 does not fully support LOBs. @Override public void test_lobInsert() throws Exception { @@ -369,6 +376,11 @@ public class TestH2 extends com.amazon.carbonado.TestStorables { return bd; } + @Override + protected Repository buildRepository(boolean isMaster) throws RepositoryException { + return jdbcBuilder(isMaster).build(); + } + private RepositoryBuilder jdbcBuilder(boolean isMaster) throws RepositoryException { JDBCRepositoryBuilder builder = new JDBCRepositoryBuilder(); builder.setName("jdbc"); diff --git a/src/test/java/com/amazon/carbonado/stored/WithPropertyOther.java b/src/test/java/com/amazon/carbonado/stored/WithPropertyOther.java new file mode 100644 index 0000000..88e5939 --- /dev/null +++ b/src/test/java/com/amazon/carbonado/stored/WithPropertyOther.java @@ -0,0 +1,36 @@ +/* + * Copyright 2009 Amazon Technologies, Inc. or its affiliates. + * Amazon, Amazon.com and Carbonado are trademarks or registered trademarks + * of Amazon Technologies, Inc. or its affiliates. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.amazon.carbonado.stored; + +import com.amazon.carbonado.*; + +/** + * Tests use of Object property type with JDBC. + * + * @author Brian S O'Neill + */ +@PrimaryKey("id") +public interface WithPropertyOther extends Storable { + int getId(); + void setId(int id); + + @Alias("THE_OBJECT") + Object getObject(); + void setObject(Object obj); +} -- cgit v1.2.3