INT-1762: add DEFAULT NULL to UPDATED_DATE and lock hint voodoo for sybase

This commit is contained in:
Dave Syer
2011-02-04 09:42:38 +00:00
parent 51f5ae0ea6
commit 8b5077281a
13 changed files with 46 additions and 17 deletions

View File

@@ -110,9 +110,16 @@ public class BeanFactoryTypeConverter implements TypeConverter, BeanFactoryAware
if (!String.class.isAssignableFrom(sourceType.getType())) {
PropertyEditor editor = delegate.findCustomEditor(sourceType.getType(), null);
if (editor==null) {
editor = delegate.getDefaultEditor(sourceType.getType());
}
if (editor != null){ // INT-1441
editor.setValue(value);
return editor.getAsText();
String text = editor.getAsText();
if (String.class.isAssignableFrom(targetType.getClass())) {
return text;
}
return convertValue(text, TypeDescriptor.valueOf(String.class), targetType);
}
}
return delegate.convertIfNecessary(value, targetType.getType());

View File

@@ -6,9 +6,12 @@ package org.springframework.integration.util;
import static junit.framework.Assert.assertEquals;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.junit.Test;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.core.convert.TypeDescriptor;
/**
@@ -27,4 +30,22 @@ public class BeanFactoryTypeConverterTests {
(ArrayList<BeanFactoryTypeConverterTests>) typeConverter.convertValue(sourceObject, null, TypeDescriptor.forObject(new ArrayList<BeanFactoryTypeConverterTests>()));
assertEquals(sourceObject, convertedCollection);
}
@Test
public void testToStringConversion(){
BeanFactoryTypeConverter typeConverter = new BeanFactoryTypeConverter();
typeConverter.setBeanFactory(new DefaultListableBeanFactory());
String converted = (String) typeConverter.convertValue(new Integer(1234), TypeDescriptor.valueOf(Integer.class), TypeDescriptor.valueOf(String.class));
assertEquals("1234", converted);
}
@Test
public void testToNonStringConversionNotSupportedByGenericConversionService(){
BeanFactoryTypeConverter typeConverter = new BeanFactoryTypeConverter();
typeConverter.setBeanFactory(new DefaultListableBeanFactory());
@SuppressWarnings("unchecked")
Collection<Integer> converted = (Collection<Integer>) typeConverter.convertValue(new Integer(1234), TypeDescriptor.valueOf(Integer.class), TypeDescriptor.forObject(new ArrayList<Integer>(Arrays.asList(1))));
assertEquals(Arrays.asList(1234), converted);
}
}

View File

@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION VARCHAR(100),
MARKED BIGINT,
CREATED_DATE TIMESTAMP NOT NULL,
UPDATED_DATE TIMESTAMP,
UPDATED_DATE TIMESTAMP DEFAULT NULL,
MESSAGE_BYTES BLOB,
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);

View File

@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION VARCHAR(100),
MARKED BIGINT,
CREATED_DATE TIMESTAMP NOT NULL,
UPDATED_DATE TIMESTAMP,
UPDATED_DATE TIMESTAMP DEFAULT NULL,
MESSAGE_BYTES BLOB,
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);

View File

@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION VARCHAR(100),
MARKED BIGINT,
CREATED_DATE TIMESTAMP NOT NULL,
UPDATED_DATE TIMESTAMP,
UPDATED_DATE TIMESTAMP DEFAULT NULL,
MESSAGE_BYTES LONGVARBINARY,
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);

View File

@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION VARCHAR(100),
MARKED BIGINT,
CREATED_DATE TIMESTAMP NOT NULL,
UPDATED_DATE TIMESTAMP,
UPDATED_DATE TIMESTAMP DEFAULT NULL,
MESSAGE_BYTES LONGVARBINARY,
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);

View File

@@ -5,7 +5,7 @@ CREATE TABLE INT_MESSAGE (
REGION VARCHAR(100),
CREATED_DATE DATETIME NOT NULL,
MESSAGE_BYTES BLOB
);
) ENGINE=InnoDB;
CREATE TABLE INT_MESSAGE_GROUP (
MESSAGE_ID CHAR(36) NOT NULL,
@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION VARCHAR(100),
MARKED BIGINT,
CREATED_DATE DATETIME NOT NULL,
UPDATED_DATE DATETIME,
UPDATED_DATE DATETIME DEFAULT NULL,
MESSAGE_BYTES BLOB,
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);
) ENGINE=InnoDB;

View File

@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION VARCHAR2(100),
MARKED NUMBER(19,0),
CREATED_DATE TIMESTAMP NOT NULL,
UPDATED_DATE TIMESTAMP,
UPDATED_DATE TIMESTAMP DEFAULT NULL,
MESSAGE_BYTES BLOB,
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);

View File

@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION VARCHAR(100),
MARKED BIGINT,
CREATED_DATE TIMESTAMP NOT NULL,
UPDATED_DATE TIMESTAMP,
UPDATED_DATE TIMESTAMP DEFAULT NULL,
MESSAGE_BYTES BYTEA,
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);

View File

@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION VARCHAR(100),
MARKED BIGINT,
CREATED_DATE DATETIME NOT NULL,
UPDATED_DATE DATETIME,
UPDATED_DATE DATETIME DEFAULT NULL,
MESSAGE_BYTES IMAGE,
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);

View File

@@ -5,7 +5,7 @@ CREATE TABLE INT_MESSAGE (
REGION VARCHAR(100),
CREATED_DATE DATETIME NOT NULL,
MESSAGE_BYTES IMAGE
);
) LOCK DATAROWS WITH EXP_ROW_SIZE=1;
CREATE TABLE INT_MESSAGE_GROUP (
MESSAGE_ID CHAR(36) NOT NULL,
@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION VARCHAR(100),
MARKED BIGINT,
CREATED_DATE DATETIME NOT NULL,
UPDATED_DATE DATETIME,
UPDATED_DATE DATETIME DEFAULT NULL,
MESSAGE_BYTES IMAGE,
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);
) LOCK DATAROWS WITH EXP_ROW_SIZE=1;

View File

@@ -5,7 +5,7 @@ CREATE TABLE INT_MESSAGE (
REGION ${VARCHAR}(100),
CREATED_DATE ${TIMESTAMP} NOT NULL,
MESSAGE_BYTES ${BLOB}
);
)#if(${VOODOO}) ${VOODOO}#end;
CREATE TABLE INT_MESSAGE_GROUP (
MESSAGE_ID CHAR(36) NOT NULL,
@@ -13,7 +13,7 @@ CREATE TABLE INT_MESSAGE_GROUP (
REGION ${VARCHAR}(100),
MARKED ${BIGINT},
CREATED_DATE ${TIMESTAMP} NOT NULL,
UPDATED_DATE ${TIMESTAMP},
UPDATED_DATE ${TIMESTAMP} DEFAULT NULL,
MESSAGE_BYTES ${BLOB},
constraint MESSAGE_GROUP_PK primary key (MESSAGE_ID, GROUP_KEY)
);
)#if(${VOODOO}) ${VOODOO}#end;

View File

@@ -10,3 +10,4 @@ VARCHAR = VARCHAR
NULL = NULL
# for generating drop statements...
SEQUENCE = TABLE
VOODOO = LOCK DATAROWS