From ecaaef92279e679d2ce7fb2971c8453395ab3f12 Mon Sep 17 00:00:00 2001 From: Willem Date: Sat, 20 Jun 2015 16:19:57 +0200 Subject: [PATCH] added valueType checking --- pom.xml | 5 + .../net/forwardfire/tpquery/TPQFactory.java | 163 ++++++++++++------ .../tpquery/config/AbstractTPQConfig.java | 14 +- .../forwardfire/tpquery/config/TPQConfig.java | 16 ++ .../forwardfire/tpquery/model/TPQuery.java | 4 +- .../store/manager/TPQStoreManagerConfig.java | 15 +- .../store/manager/TPQStoreManagerEntry.java | 9 +- .../TPQStoreManagerExecutorContext.java | 2 +- .../forwardfire/tpquery/TPQFactoryTest.java | 1 - .../TPQueryParameterDefaultValueTest.java | 6 +- 10 files changed, 172 insertions(+), 63 deletions(-) diff --git a/pom.xml b/pom.xml index 4a2187a..cb1a6f1 100644 --- a/pom.xml +++ b/pom.xml @@ -441,6 +441,11 @@ LATER error ERROR + temp + TEMP + mmm + MMM + ??? diff --git a/tpquery-store/src/main/java/net/forwardfire/tpquery/TPQFactory.java b/tpquery-store/src/main/java/net/forwardfire/tpquery/TPQFactory.java index 44be940..808432f 100644 --- a/tpquery-store/src/main/java/net/forwardfire/tpquery/TPQFactory.java +++ b/tpquery-store/src/main/java/net/forwardfire/tpquery/TPQFactory.java @@ -38,6 +38,7 @@ import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.xml.bind.JAXBException; +import org.apache.commons.lang3.ClassUtils; import org.apache.commons.lang3.Validate; import net.forwardfire.tpquery.config.TPQConfig; @@ -68,6 +69,7 @@ public final class TPQFactory { private static final List DEFAULT_CONFIG_INITIALIZERS = Collections.unmodifiableList(Arrays.asList( new StatementLanguage(), new StatementParameter(), + new ParameterValueType(), new ParameterValueTypeAlias(), new ParameterValueFunction(), new TPQConfigInitializer() { @@ -194,7 +196,7 @@ public final class TPQFactory { } } - public static final class ParameterValueType { + public static final class ParameterValueType implements TPQConfigInitializer { // java type /** The class name of an Object. */ public static final String JAVA_OBJECT = Object.class.getName(); @@ -243,46 +245,110 @@ public final class TPQFactory { /** The class name of an java.sql.Timestamp. */ public static final String SQL_TIMESTAMP = java.sql.Timestamp.class.getName(); - protected ParameterValueType() { + private ParameterValueType() { + } + + @Override + public void initializeConfig(TPQConfig config) { + addValueType(config, JAVA_OBJECT); + addValueType(config, BIGDECIMAL); + addValueType(config, BOOLEAN); + addValueType(config, INTEGER); + addValueType(config, STRING); + addValueType(config, DOUBLE); + addValueType(config, LONG); + addValueType(config, FLOAT); + addValueType(config, SHORT); + addValueType(config, URL); + addValueType(config, BYTE_DATA); + + addValueType(config, SQL_ARRAY); + addValueType(config, SQL_BLOB); + addValueType(config, SQL_CLOB); + addValueType(config, SQL_DATE); + addValueType(config, SQL_NCLOB); + addValueType(config, SQL_REF); + addValueType(config, SQL_ROWID); + addValueType(config, SQL_STRUCT); + addValueType(config, SQL_XML); + addValueType(config, SQL_TIME); + addValueType(config, SQL_TIMESTAMP); + } + + // load here because in builder we like to use static fields.(as text) + private void addValueType(TPQConfig config,String className) { + try { + config.addValueType(ClassUtils.getClass(className)); + } catch (ClassNotFoundException e) { + throw new IllegalArgumentException(e.getMessage(),e); + } } } public static final class ParameterValueTypeAlias implements TPQConfigInitializer { + /** Alias for bigdecimal. */ public static final String NUMERIC = "numeric"; + /** Alias for short. */ public static final String SHORT = "short"; + /** Alias for short. */ public static final String INT2 = "int2"; + /** Alias for short. */ public static final String SMALLINT = "smallint"; + /** Alias for integer. */ public static final String INTEGER = "integer"; + /** Alias for integer. */ public static final String INT = "int"; + /** Alias for integer. */ public static final String INT4 = "int4"; + /** Alias for long. */ public static final String LONG = "long"; + /** Alias for long. */ public static final String INT8 = "int8"; + /** Alias for long. */ public static final String BIGINT = "bigint"; + /** Alias for boolean. */ public static final String BOOLEAN = "boolean"; + /** Alias for boolean. */ public static final String BOOL = "bool"; + /** Alias for float. */ public static final String FLOAT = "float"; + /** Alias for float. */ public static final String FLOAT4 = "float4"; + /** Alias for float. */ public static final String REAL = "real"; + /** Alias for double. */ public static final String DOUBLE = "double"; + /** Alias for double. */ public static final String FLOAT8 = "float8"; + /** Alias for double. */ public static final String DOUBLE_PRECISION = "double precision"; + /** Alias for string. */ public static final String STRING = "string"; + /** Alias for string. */ public static final String TEXT = "text"; + /** Alias for string. */ public static final String VARCHAR = "varchar"; + /** Alias for string. */ public static final String LONGVARCHAR = "longvarchar"; + /** Alias for string. */ public static final String CHARACTER_VARYING = "character varying"; + /** Alias for string. */ public static final String CHAR = "char"; + /** Alias for string. */ public static final String CHARACTER = "character"; + /** Alias for date. */ public static final String DATE = "date"; + /** Alias for time. */ public static final String TIME = "time"; + /** Alias for timestamp. */ public static final String TIMESTAMP = "timestamp"; private ParameterValueTypeAlias() { @@ -290,26 +356,26 @@ public final class TPQFactory { @Override public void initializeConfig(TPQConfig config) { - config.addValueTypeAlias(NUMERIC, ParameterValueType.BIGDECIMAL); + config.addValueTypeAlias(NUMERIC, ParameterValueType.BIGDECIMAL); - config.addValueTypeAlias(SHORT, ParameterValueType.SHORT); - config.addValueTypeAlias(INT2, ParameterValueType.SHORT); - config.addValueTypeAlias(SMALLINT, ParameterValueType.SHORT); + config.addValueTypeAlias(SHORT, ParameterValueType.SHORT); + config.addValueTypeAlias(INT2, ParameterValueType.SHORT); + config.addValueTypeAlias(SMALLINT, ParameterValueType.SHORT); - config.addValueTypeAlias(INTEGER, ParameterValueType.INTEGER); - config.addValueTypeAlias(INT, ParameterValueType.INTEGER); - config.addValueTypeAlias(INT4, ParameterValueType.INTEGER); + config.addValueTypeAlias(INTEGER, ParameterValueType.INTEGER); + config.addValueTypeAlias(INT, ParameterValueType.INTEGER); + config.addValueTypeAlias(INT4, ParameterValueType.INTEGER); - config.addValueTypeAlias(LONG, ParameterValueType.LONG); - config.addValueTypeAlias(INT8, ParameterValueType.LONG); - config.addValueTypeAlias(BIGINT, ParameterValueType.LONG); + config.addValueTypeAlias(LONG, ParameterValueType.LONG); + config.addValueTypeAlias(INT8, ParameterValueType.LONG); + config.addValueTypeAlias(BIGINT, ParameterValueType.LONG); - config.addValueTypeAlias(BOOLEAN, ParameterValueType.BOOLEAN); - config.addValueTypeAlias(BOOL, ParameterValueType.BOOLEAN); + config.addValueTypeAlias(BOOLEAN, ParameterValueType.BOOLEAN); + config.addValueTypeAlias(BOOL, ParameterValueType.BOOLEAN); - config.addValueTypeAlias(FLOAT, ParameterValueType.FLOAT); - config.addValueTypeAlias(FLOAT4, ParameterValueType.FLOAT); - config.addValueTypeAlias(REAL, ParameterValueType.FLOAT); + config.addValueTypeAlias(FLOAT, ParameterValueType.FLOAT); + config.addValueTypeAlias(FLOAT4, ParameterValueType.FLOAT); + config.addValueTypeAlias(REAL, ParameterValueType.FLOAT); config.addValueTypeAlias(DOUBLE, ParameterValueType.DOUBLE); config.addValueTypeAlias(DOUBLE_PRECISION, ParameterValueType.DOUBLE); @@ -327,37 +393,37 @@ public final class TPQFactory { config.addValueTypeAlias(TIME, ParameterValueType.SQL_TIME); config.addValueTypeAlias(TIMESTAMP, ParameterValueType.SQL_TIMESTAMP); - // new jdbc names (missing; DISTINCT and REF_CURSOR) - config.addValueTypeAlias(JDBCType.ARRAY.name(), ParameterValueType.SQL_ARRAY); - config.addValueTypeAlias(JDBCType.BIGINT.name(), ParameterValueType.BIGDECIMAL); - config.addValueTypeAlias(JDBCType.BINARY.name(), ParameterValueType.BYTE_DATA); - config.addValueTypeAlias(JDBCType.BIT.name(), ParameterValueType.BOOLEAN); - config.addValueTypeAlias(JDBCType.BLOB.name(), ParameterValueType.SQL_BLOB); - config.addValueTypeAlias(JDBCType.BOOLEAN.name(), ParameterValueType.BOOLEAN); - config.addValueTypeAlias(JDBCType.CHAR.name(), ParameterValueType.STRING); - config.addValueTypeAlias(JDBCType.CLOB.name(), ParameterValueType.SQL_CLOB); - config.addValueTypeAlias(JDBCType.DATALINK.name(), ParameterValueType.URL); - config.addValueTypeAlias(JDBCType.DATE.name(), ParameterValueType.SQL_DATE); - config.addValueTypeAlias(JDBCType.DECIMAL.name(), ParameterValueType.BIGDECIMAL); - config.addValueTypeAlias(JDBCType.DOUBLE.name(), ParameterValueType.DOUBLE); - config.addValueTypeAlias(JDBCType.FLOAT.name(), ParameterValueType.FLOAT); - config.addValueTypeAlias(JDBCType.INTEGER.name(), ParameterValueType.INTEGER); - config.addValueTypeAlias(JDBCType.JAVA_OBJECT.name(), ParameterValueType.JAVA_OBJECT); - config.addValueTypeAlias(JDBCType.LONGNVARCHAR.name(), ParameterValueType.STRING); - config.addValueTypeAlias(JDBCType.LONGVARBINARY.name(), ParameterValueType.BYTE_DATA); - config.addValueTypeAlias(JDBCType.LONGVARCHAR.name(), ParameterValueType.STRING); - config.addValueTypeAlias(JDBCType.NCHAR.name(), ParameterValueType.STRING); - config.addValueTypeAlias(JDBCType.NCLOB.name(), ParameterValueType.SQL_NCLOB); - config.addValueTypeAlias(JDBCType.NULL.name(), ParameterValueType.JAVA_OBJECT); - config.addValueTypeAlias(JDBCType.NUMERIC.name(), ParameterValueType.BIGDECIMAL); - config.addValueTypeAlias(JDBCType.NVARCHAR.name(), ParameterValueType.STRING); - config.addValueTypeAlias(JDBCType.OTHER.name(), ParameterValueType.JAVA_OBJECT); - config.addValueTypeAlias(JDBCType.REAL.name(), ParameterValueType.FLOAT); - config.addValueTypeAlias(JDBCType.REF.name(), ParameterValueType.SQL_REF); - config.addValueTypeAlias(JDBCType.ROWID.name(), ParameterValueType.SQL_ROWID); - config.addValueTypeAlias(JDBCType.SMALLINT.name(), ParameterValueType.INTEGER); - config.addValueTypeAlias(JDBCType.SQLXML.name(), ParameterValueType.SQL_XML); - config.addValueTypeAlias(JDBCType.STRUCT.name(), ParameterValueType.SQL_STRUCT); + // new jdbc names in uppercase; (missing; DISTINCT and REF_CURSOR) + config.addValueTypeAlias(JDBCType.ARRAY.name(), ParameterValueType.SQL_ARRAY); + config.addValueTypeAlias(JDBCType.BIGINT.name(), ParameterValueType.BIGDECIMAL); + config.addValueTypeAlias(JDBCType.BINARY.name(), ParameterValueType.BYTE_DATA); + config.addValueTypeAlias(JDBCType.BIT.name(), ParameterValueType.BOOLEAN); + config.addValueTypeAlias(JDBCType.BLOB.name(), ParameterValueType.SQL_BLOB); + config.addValueTypeAlias(JDBCType.BOOLEAN.name(), ParameterValueType.BOOLEAN); + config.addValueTypeAlias(JDBCType.CHAR.name(), ParameterValueType.STRING); + config.addValueTypeAlias(JDBCType.CLOB.name(), ParameterValueType.SQL_CLOB); + config.addValueTypeAlias(JDBCType.DATALINK.name(), ParameterValueType.URL); + config.addValueTypeAlias(JDBCType.DATE.name(), ParameterValueType.SQL_DATE); + config.addValueTypeAlias(JDBCType.DECIMAL.name(), ParameterValueType.BIGDECIMAL); + config.addValueTypeAlias(JDBCType.DOUBLE.name(), ParameterValueType.DOUBLE); + config.addValueTypeAlias(JDBCType.FLOAT.name(), ParameterValueType.FLOAT); + config.addValueTypeAlias(JDBCType.INTEGER.name(), ParameterValueType.INTEGER); + config.addValueTypeAlias(JDBCType.JAVA_OBJECT.name(), ParameterValueType.JAVA_OBJECT); + config.addValueTypeAlias(JDBCType.LONGNVARCHAR.name(), ParameterValueType.STRING); + config.addValueTypeAlias(JDBCType.LONGVARBINARY.name(), ParameterValueType.BYTE_DATA); + config.addValueTypeAlias(JDBCType.LONGVARCHAR.name(), ParameterValueType.STRING); + config.addValueTypeAlias(JDBCType.NCHAR.name(), ParameterValueType.STRING); + config.addValueTypeAlias(JDBCType.NCLOB.name(), ParameterValueType.SQL_NCLOB); + config.addValueTypeAlias(JDBCType.NULL.name(), ParameterValueType.JAVA_OBJECT); + config.addValueTypeAlias(JDBCType.NUMERIC.name(), ParameterValueType.BIGDECIMAL); + config.addValueTypeAlias(JDBCType.NVARCHAR.name(), ParameterValueType.STRING); + config.addValueTypeAlias(JDBCType.OTHER.name(), ParameterValueType.JAVA_OBJECT); + config.addValueTypeAlias(JDBCType.REAL.name(), ParameterValueType.FLOAT); + config.addValueTypeAlias(JDBCType.REF.name(), ParameterValueType.SQL_REF); + config.addValueTypeAlias(JDBCType.ROWID.name(), ParameterValueType.SQL_ROWID); + config.addValueTypeAlias(JDBCType.SMALLINT.name(), ParameterValueType.INTEGER); + config.addValueTypeAlias(JDBCType.SQLXML.name(), ParameterValueType.SQL_XML); + config.addValueTypeAlias(JDBCType.STRUCT.name(), ParameterValueType.SQL_STRUCT); config.addValueTypeAlias(JDBCType.TIME.name(), ParameterValueType.SQL_TIME); config.addValueTypeAlias(JDBCType.TIME_WITH_TIMEZONE.name(), ParameterValueType.SQL_TIME); config.addValueTypeAlias(JDBCType.TIMESTAMP.name(), ParameterValueType.SQL_TIMESTAMP); @@ -365,7 +431,6 @@ public final class TPQFactory { config.addValueTypeAlias(JDBCType.TINYINT.name(), ParameterValueType.SHORT); config.addValueTypeAlias(JDBCType.VARBINARY.name(), ParameterValueType.BYTE_DATA); config.addValueTypeAlias(JDBCType.VARCHAR.name(), ParameterValueType.STRING); - } } diff --git a/tpquery-store/src/main/java/net/forwardfire/tpquery/config/AbstractTPQConfig.java b/tpquery-store/src/main/java/net/forwardfire/tpquery/config/AbstractTPQConfig.java index 8a2e23d..8b50216 100644 --- a/tpquery-store/src/main/java/net/forwardfire/tpquery/config/AbstractTPQConfig.java +++ b/tpquery-store/src/main/java/net/forwardfire/tpquery/config/AbstractTPQConfig.java @@ -54,9 +54,10 @@ public abstract class AbstractTPQConfig { protected final Map valueTypeAliases; protected final List configValidators; protected final List parameterValueScripts; + protected final List> valueTypes; protected AbstractTPQConfig() { - this(new HashMap<>(),new HashMap<>(),new HashMap<>(),new HashMap<>(),new ArrayList<>(),new ArrayList<>()); + this(new HashMap<>(),new HashMap<>(),new HashMap<>(),new HashMap<>(),new ArrayList<>(),new ArrayList<>(),new ArrayList<>()); } protected AbstractTPQConfig( @@ -65,7 +66,8 @@ public abstract class AbstractTPQConfig { Map statementLanguages, Map valueTypeAliases, List configValidators, - List parameterValueScripts + List parameterValueScripts, + List> valueTypes ) { this.querySets=querySets; this.statementParameters=statementParameters; @@ -73,6 +75,7 @@ public abstract class AbstractTPQConfig { this.valueTypeAliases=valueTypeAliases; this.configValidators=configValidators; this.parameterValueScripts=parameterValueScripts; + this.valueTypes=valueTypes; } /** @@ -158,4 +161,11 @@ public abstract class AbstractTPQConfig { public List getParameterValueScripts() { return parameterValueScripts; } + + /** + * @return the valueTypes + */ + public List> getValueTypes() { + return valueTypes; + } } diff --git a/tpquery-store/src/main/java/net/forwardfire/tpquery/config/TPQConfig.java b/tpquery-store/src/main/java/net/forwardfire/tpquery/config/TPQConfig.java index 01077d8..df46435 100644 --- a/tpquery-store/src/main/java/net/forwardfire/tpquery/config/TPQConfig.java +++ b/tpquery-store/src/main/java/net/forwardfire/tpquery/config/TPQConfig.java @@ -206,4 +206,20 @@ public class TPQConfig extends AbstractTPQConfig { public void removeParameterValueScript(String script) { parameterValueScripts.remove(Validate.notNull(script,"Can't remove null script.")); } + + /** + * Adds a value type. + * @param valueType The value type to add. + */ + public void addValueType(Class valueType) { + valueTypes.add(Validate.notNull(valueType,"Can't add null valueType.")); + } + + /** + * Removes a value type. + * @param valueType The value type to remove. + */ + public void removeValueType(Class valueType) { + valueTypes.add(Validate.notNull(valueType,"Can't remove null valueType.")); + } } diff --git a/tpquery-store/src/main/java/net/forwardfire/tpquery/model/TPQuery.java b/tpquery-store/src/main/java/net/forwardfire/tpquery/model/TPQuery.java index aff035e..c13f229 100644 --- a/tpquery-store/src/main/java/net/forwardfire/tpquery/model/TPQuery.java +++ b/tpquery-store/src/main/java/net/forwardfire/tpquery/model/TPQuery.java @@ -69,12 +69,12 @@ public final class TPQuery extends AbstractTPQueryNode { public List getQueryParts() { return queryParts; } - /* + public void setQueryParts(List parts) { Objects.requireNonNull(parts,"Can't set null list"); queryParts = parts; } - */ + /** * Adds an query part. diff --git a/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerConfig.java b/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerConfig.java index a9a560a..068ef18 100644 --- a/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerConfig.java +++ b/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerConfig.java @@ -8,6 +8,7 @@ import java.util.Map; import java.util.regex.Pattern; import java.util.stream.Collectors; +import org.apache.commons.lang3.ClassUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.Validate; import org.slf4j.Logger; @@ -47,7 +48,8 @@ public final class TPQStoreManagerConfig extends AbstractTPQConfig { Collections.unmodifiableMap(new HashMap<>(config.getStatementLanguages())), Collections.unmodifiableMap(new HashMap<>(config.getValueTypeAliases())), Collections.unmodifiableList(new ArrayList<>(config.getConfigValidators())), - Collections.unmodifiableList(new ArrayList<>(config.getParameterValueScripts())) + Collections.unmodifiableList(new ArrayList<>(config.getParameterValueScripts())), + Collections.unmodifiableList(new ArrayList<>(config.getValueTypes())) ); treePathSeperator = config.getTreePathSeperator(); defaultParameterType = config.getDefaultParameterType(); @@ -197,7 +199,18 @@ public final class TPQStoreManagerConfig extends AbstractTPQConfig { qp.setNullable(getDefaultParameterNullable()); LOG.debug("Set nullable on parameter: {} value: {} as default type.",qp.getName(),qp.getNullable()); } + + Class clazz = loadClass(qp.getValueType()); + Validate.isTrue(getValueTypes().contains(clazz),"Unsupported valueType: %s",clazz.getName()); } return entry; } + + private Class loadClass(String valueType) { + try { + return ClassUtils.getClass(valueType); + } catch (ClassNotFoundException e) { + throw new IllegalArgumentException(e); + } + } } diff --git a/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerEntry.java b/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerEntry.java index 804ca2d..87570c8 100644 --- a/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerEntry.java +++ b/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerEntry.java @@ -84,12 +84,13 @@ public final class TPQStoreManagerEntry { */ public void initEntry() { Map parameterMetaDataBuild = new HashMap<>(); - getQuery().getQueryParameters().forEach(p -> + getQuery().getQueryParameters().forEach(p -> { + Class valueType = loadValueType(p.getValueType()); // check if we van get this from config ? parameterMetaDataBuild.put(p.getName(), new TPQStoreManagerEntryParameterMetaData( - p.getName(),loadValueType(p.getValueType()),p.getNullable(),defineRequired(p) - ) - ) + p.getName(),valueType,p.getNullable(),defineRequired(p) + )); + } ); this.parameterMetaData=Collections.unmodifiableMap(parameterMetaDataBuild); } diff --git a/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerExecutorContext.java b/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerExecutorContext.java index c87db83..dcbf7a6 100644 --- a/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerExecutorContext.java +++ b/tpquery-store/src/main/java/net/forwardfire/tpquery/store/manager/TPQStoreManagerExecutorContext.java @@ -203,7 +203,7 @@ public class TPQStoreManagerExecutorContext implements TPQExecutorContext { try { result = script.eval(); } catch (Exception e) { - throw new TPQueryStoreScriptEngineException("query: "+entry.getQuery().getName()+" param: "+param.getName()+" script: "+param.getDefaultValue(),e); + throw new TPQueryStoreScriptEngineException("query: "+entry.getQuery().getName()+" param: "+param.getName()+" script: "+param.getDefaultValue()+" error: "+e.getMessage(),e); } if (result instanceof TPQConfigParameterValueHolder) { TPQConfigParameterValueHolder valueHolderResult = (TPQConfigParameterValueHolder)result; diff --git a/tpquery-store/src/test/java/net/forwardfire/tpquery/TPQFactoryTest.java b/tpquery-store/src/test/java/net/forwardfire/tpquery/TPQFactoryTest.java index 473e31f..d90be41 100644 --- a/tpquery-store/src/test/java/net/forwardfire/tpquery/TPQFactoryTest.java +++ b/tpquery-store/src/test/java/net/forwardfire/tpquery/TPQFactoryTest.java @@ -35,7 +35,6 @@ public class TPQFactoryTest { @Test() public void testFactoryConstructors() throws Exception { assertNotNull(new TPQFactory()); - assertNotNull(new TPQFactory.ParameterValueType()); } } diff --git a/tpquery-store/src/test/java/net/forwardfire/tpquery/statement/parameter/TPQueryParameterDefaultValueTest.java b/tpquery-store/src/test/java/net/forwardfire/tpquery/statement/parameter/TPQueryParameterDefaultValueTest.java index 9669c6b..97e9636 100644 --- a/tpquery-store/src/test/java/net/forwardfire/tpquery/statement/parameter/TPQueryParameterDefaultValueTest.java +++ b/tpquery-store/src/test/java/net/forwardfire/tpquery/statement/parameter/TPQueryParameterDefaultValueTest.java @@ -108,8 +108,8 @@ public class TPQueryParameterDefaultValueTest { .setLanguage(TPQFactory.StatementLanguage.SQL) .createQuery("test") .parseStatement("select * from foobar where a=$$a$$") - .createQueryParameter("a", "java.util.Date") - .setDefaultValue("js:createObject(java.util.Date)") + .createQueryParameter("a", "java.lang.Integer") + .setDefaultValue("js:createObject(java.lang.Integer,'123')") .build() .build() .build() @@ -118,7 +118,7 @@ public class TPQueryParameterDefaultValueTest { TPQExecutorStatement prepared = store.getQueryExecutorContext().prepareQuery("junit.test", para); assertTrue(!prepared.getParameters().isEmpty()); assertTrue(prepared.getParameters().get(0) != null); - assertTrue(prepared.getParameters().get(0) instanceof java.util.Date); + assertTrue(prepared.getParameters().get(0) instanceof java.lang.Integer); } @Test(expected=Exception.class)