IN PROGRESS - issue BATCH-7: Remove transaction synchronization and state management from input/output sources (formerly buffering)
http://jira.springframework.org/browse/BATCH-7 Remove GenericStreamContext
This commit is contained in:
@@ -16,10 +16,7 @@
|
||||
|
||||
package org.springframework.batch.core.domain;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -52,7 +49,7 @@ public class StepInstance extends Entity {
|
||||
|
||||
private BatchStatus status;
|
||||
|
||||
private StreamContext streamContext = new GenericStreamContext(new Properties());
|
||||
private StreamContext streamContext = new StreamContext();
|
||||
|
||||
private int stepExecutionCount = 0;
|
||||
|
||||
|
||||
@@ -18,8 +18,6 @@ package org.springframework.batch.core.domain;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
@@ -47,7 +45,9 @@ public class StepContributionTests extends TestCase {
|
||||
*/
|
||||
public void testSetStreamContext() {
|
||||
assertEquals(null, contribution.getStreamContext());
|
||||
contribution.setStreamContext(new GenericStreamContext(PropertiesConverter.stringToProperties("foo=bar")));
|
||||
StreamContext context = new StreamContext();
|
||||
context.putString("foo", "bar");
|
||||
contribution.setStreamContext(context);
|
||||
assertEquals(1, contribution.getStreamContext().getProperties().size());
|
||||
}
|
||||
|
||||
|
||||
@@ -15,11 +15,10 @@
|
||||
*/
|
||||
package org.springframework.batch.core.domain;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
@@ -51,9 +50,7 @@ public class StepInstanceTests extends TestCase {
|
||||
public void testGetStreamContext() {
|
||||
assertNotNull(instance.getStreamContext());
|
||||
assertTrue(instance.getStreamContext().getProperties().isEmpty());
|
||||
instance.setStreamContext(new GenericStreamContext(new Properties() {{
|
||||
setProperty("foo", "bar");
|
||||
}}));
|
||||
instance.setStreamContext(new StreamContext(PropertiesConverter.stringToProperties("foo=bar")));
|
||||
assertEquals("bar", instance.getStreamContext().getProperties().getProperty("foo"));
|
||||
}
|
||||
|
||||
|
||||
@@ -19,13 +19,12 @@ package org.springframework.batch.execution.repository;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.batch.core.domain.Job;
|
||||
import org.springframework.batch.core.domain.JobSupport;
|
||||
import org.springframework.batch.core.domain.JobExecution;
|
||||
import org.springframework.batch.core.domain.JobInstance;
|
||||
import org.springframework.batch.core.domain.JobParameters;
|
||||
import org.springframework.batch.core.domain.JobSupport;
|
||||
import org.springframework.batch.core.domain.Step;
|
||||
import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.core.domain.StepInstance;
|
||||
@@ -34,7 +33,7 @@ import org.springframework.batch.core.repository.JobExecutionAlreadyRunningExcep
|
||||
import org.springframework.batch.core.repository.JobRepository;
|
||||
import org.springframework.batch.execution.repository.dao.JobDao;
|
||||
import org.springframework.batch.execution.repository.dao.StepDao;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.transaction.annotation.Isolation;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@@ -303,8 +302,8 @@ public class SimpleJobRepository implements JobRepository {
|
||||
Step step = (Step) i.next();
|
||||
StepInstance stepInstance = stepDao.createStep(job, step.getName());
|
||||
// Ensure valid restart data is being returned.
|
||||
if (stepInstance.getStreamContext() == null || stepInstance.getStreamContext().getProperties() == null) {
|
||||
stepInstance.setStreamContext(new GenericStreamContext(new Properties()));
|
||||
if (stepInstance.getStreamContext() == null || stepInstance.getStreamContext() == null) {
|
||||
stepInstance.setStreamContext(new StreamContext());
|
||||
}
|
||||
stepInstances.add(stepInstance);
|
||||
}
|
||||
@@ -326,8 +325,8 @@ public class SimpleJobRepository implements JobRepository {
|
||||
|
||||
step.setStepExecutionCount(stepDao.getStepExecutionCount(step));
|
||||
// Ensure valid restart data is being returned.
|
||||
if (step.getStreamContext() == null || step.getStreamContext().getProperties() == null) {
|
||||
step.setStreamContext(new GenericStreamContext(new Properties()));
|
||||
if (step.getStreamContext() == null || step.getStreamContext() == null) {
|
||||
step.setStreamContext(new StreamContext());
|
||||
}
|
||||
stepInstances.add(step);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,6 @@ import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.core.domain.StepInstance;
|
||||
import org.springframework.batch.execution.repository.dao.JdbcJobDao.JobExecutionRowMapper;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.repeat.ExitStatus;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
@@ -161,9 +160,7 @@ public class JdbcStepDao implements StepDao, InitializingBean {
|
||||
|
||||
StepInstance step = new StepInstance(new Long(rs.getLong(1)));
|
||||
step.setStatus(BatchStatus.getStatus(rs.getString(2)));
|
||||
step
|
||||
.setStreamContext(new GenericStreamContext(PropertiesConverter.stringToProperties(rs
|
||||
.getString(3))));
|
||||
step.setStreamContext(new StreamContext(PropertiesConverter.stringToProperties(rs.getString(3))));
|
||||
return step;
|
||||
}
|
||||
|
||||
@@ -213,8 +210,8 @@ public class JdbcStepDao implements StepDao, InitializingBean {
|
||||
stepExecution.setStatus(BatchStatus.getStatus(rs.getString(5)));
|
||||
stepExecution.setCommitCount(rs.getInt(6));
|
||||
stepExecution.setTaskCount(rs.getInt(7));
|
||||
stepExecution.setStreamContext(new GenericStreamContext(PropertiesConverter.stringToProperties(rs
|
||||
.getString(8))));
|
||||
stepExecution.setStreamContext(new StreamContext(PropertiesConverter
|
||||
.stringToProperties(rs.getString(8))));
|
||||
stepExecution.setExitStatus(new ExitStatus("Y".equals(rs.getString(9)), rs.getString(10), rs
|
||||
.getString(11)));
|
||||
return stepExecution;
|
||||
@@ -247,7 +244,7 @@ public class JdbcStepDao implements StepDao, InitializingBean {
|
||||
String status = rs.getString(3);
|
||||
step.setStatus(BatchStatus.getStatus(status));
|
||||
step
|
||||
.setStreamContext(new GenericStreamContext(PropertiesConverter.stringToProperties(rs
|
||||
.setStreamContext(new StreamContext(PropertiesConverter.stringToProperties(rs
|
||||
.getString(3))));
|
||||
return step;
|
||||
}
|
||||
|
||||
@@ -25,11 +25,11 @@ import junit.framework.TestCase;
|
||||
|
||||
import org.easymock.ArgumentsMatcher;
|
||||
import org.easymock.MockControl;
|
||||
import org.springframework.batch.core.domain.JobSupport;
|
||||
import org.springframework.batch.core.domain.JobExecution;
|
||||
import org.springframework.batch.core.domain.JobInstance;
|
||||
import org.springframework.batch.core.domain.JobParameters;
|
||||
import org.springframework.batch.core.domain.JobParametersBuilder;
|
||||
import org.springframework.batch.core.domain.JobSupport;
|
||||
import org.springframework.batch.core.domain.Step;
|
||||
import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.core.domain.StepInstance;
|
||||
@@ -37,7 +37,7 @@ import org.springframework.batch.core.domain.StepSupport;
|
||||
import org.springframework.batch.core.repository.BatchRestartException;
|
||||
import org.springframework.batch.execution.repository.dao.JobDao;
|
||||
import org.springframework.batch.execution.repository.dao.StepDao;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
|
||||
/*
|
||||
* Test SimpleJobRepository. The majority of test cases are tested using EasyMock,
|
||||
@@ -408,7 +408,7 @@ public class SimpleJobRepositoryTests extends TestCase {
|
||||
databaseStep1.setStreamContext(null);
|
||||
stepDaoControl.setReturnValue(databaseStep1);
|
||||
stepDao.createStep(databaseJob, "TestStep2");
|
||||
databaseStep2.setStreamContext(new GenericStreamContext(null));
|
||||
databaseStep2.setStreamContext(new StreamContext());
|
||||
stepDaoControl.setReturnValue(databaseStep2);
|
||||
jobDao.save(new JobExecution(databaseJob));
|
||||
jobDaoControl.setMatcher(new ArgumentsMatcher(){
|
||||
@@ -443,7 +443,7 @@ public class SimpleJobRepositoryTests extends TestCase {
|
||||
stepDao.getStepExecutionCount(databaseStep1);
|
||||
stepDaoControl.setReturnValue(1);
|
||||
stepDao.findStep(databaseJob, "TestStep2");
|
||||
databaseStep2.setStreamContext(new GenericStreamContext(null));
|
||||
databaseStep2.setStreamContext(new StreamContext());
|
||||
stepDaoControl.setReturnValue(databaseStep2);
|
||||
stepDao.getStepExecutionCount(databaseStep2);
|
||||
stepDaoControl.setReturnValue(1);
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.springframework.batch.execution.repository.dao;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.batch.core.domain.BatchStatus;
|
||||
import org.springframework.batch.core.domain.Job;
|
||||
@@ -30,8 +29,8 @@ import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.core.domain.StepInstance;
|
||||
import org.springframework.batch.core.runtime.ExitCodeExceptionClassifier;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.repeat.ExitStatus;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
import org.springframework.dao.OptimisticLockingFailureException;
|
||||
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
|
||||
import org.springframework.util.ClassUtils;
|
||||
@@ -151,9 +150,7 @@ public abstract class AbstractStepDaoTests extends AbstractTransactionalDataSour
|
||||
public void testUpdateStepWithStreamContext() {
|
||||
|
||||
step1.setStatus(BatchStatus.COMPLETED);
|
||||
Properties data = new Properties();
|
||||
data.setProperty("restart.key1", "restartData");
|
||||
StreamContext streamContext = new GenericStreamContext(data);
|
||||
StreamContext streamContext = new StreamContext(PropertiesConverter.stringToProperties("key1=restartData"));
|
||||
step1.setStreamContext(streamContext);
|
||||
stepDao.update(step1);
|
||||
StepInstance tempStep = stepDao.findStep(jobInstance, step1.getName());
|
||||
@@ -166,10 +163,7 @@ public abstract class AbstractStepDaoTests extends AbstractTransactionalDataSour
|
||||
StepExecution execution = new StepExecution(step2, jobExecution, null);
|
||||
execution.setStatus(BatchStatus.STARTED);
|
||||
execution.setStartTime(new Date(System.currentTimeMillis()));
|
||||
Properties statistics = new Properties();
|
||||
statistics.setProperty("statistic.key1", "0");
|
||||
statistics.setProperty("statistic.key2", "5");
|
||||
execution.setStreamContext(new GenericStreamContext(statistics));
|
||||
execution.setStreamContext(new StreamContext(PropertiesConverter.stringToProperties("key1=0,key2=5")));
|
||||
execution.setExitStatus(new ExitStatus(false, ExitCodeExceptionClassifier.FATAL_EXCEPTION,
|
||||
"java.lang.Exception"));
|
||||
stepDao.save(execution);
|
||||
@@ -177,8 +171,7 @@ public abstract class AbstractStepDaoTests extends AbstractTransactionalDataSour
|
||||
assertEquals(1, executions.size());
|
||||
StepExecution tempExecution = (StepExecution) executions.get(0);
|
||||
assertEquals(execution, tempExecution);
|
||||
assertEquals(execution.getStreamContext().getString("statistic.key1"), tempExecution.getStreamContext()
|
||||
.getString("statistic.key1"));
|
||||
assertEquals(execution.getStreamContext().getString("key1"), tempExecution.getStreamContext().getString("key1"));
|
||||
assertEquals(execution.getExitStatus(), tempExecution.getExitStatus());
|
||||
}
|
||||
|
||||
@@ -234,7 +227,7 @@ public abstract class AbstractStepDaoTests extends AbstractTransactionalDataSour
|
||||
|
||||
public void testUpdateStepExecutionOptimisticLocking() throws Exception {
|
||||
stepExecution.incrementVersion(); // not really allowed outside dao
|
||||
// code
|
||||
// code
|
||||
try {
|
||||
stepDao.update(stepExecution);
|
||||
fail("Expected OptimisticLockingFailureException");
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package org.springframework.batch.execution.repository.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
@@ -26,9 +25,8 @@ import org.springframework.batch.core.domain.JobInstance;
|
||||
import org.springframework.batch.core.domain.JobParameters;
|
||||
import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.core.domain.StepInstance;
|
||||
import org.springframework.batch.execution.repository.dao.MapStepDao;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
|
||||
public class MapStepDaoTests extends TestCase {
|
||||
|
||||
@@ -109,9 +107,7 @@ public class MapStepDaoTests extends TestCase {
|
||||
public void testSaveStreamContext() throws Exception {
|
||||
assertEquals(null, dao.getStreamContext(step.getId()));
|
||||
step.setStatus(BatchStatus.COMPLETED);
|
||||
Properties data = new Properties();
|
||||
data.setProperty("restart.key1", "restartData");
|
||||
StreamContext streamContext = new GenericStreamContext(data);
|
||||
StreamContext streamContext = new StreamContext(PropertiesConverter.stringToProperties("key1=restartData"));
|
||||
step.setStreamContext(streamContext);
|
||||
dao.update(step);
|
||||
StepInstance tempStep = dao.findStep(job, step.getName());
|
||||
|
||||
@@ -25,7 +25,6 @@ import junit.framework.TestCase;
|
||||
import org.springframework.batch.core.domain.StepExecution;
|
||||
import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.item.stream.ItemStreamAdapter;
|
||||
import org.springframework.batch.item.stream.SimpleStreamManager;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
@@ -166,7 +165,7 @@ public class SimpleStepContextTests extends TestCase {
|
||||
}
|
||||
|
||||
public StreamContext getStreamContext(Object key) {
|
||||
return new GenericStreamContext(PropertiesConverter.stringToProperties("foo=bar"));
|
||||
return new StreamContext(PropertiesConverter.stringToProperties("foo=bar"));
|
||||
}
|
||||
|
||||
public void open(Object key) {
|
||||
|
||||
@@ -43,7 +43,6 @@ import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.StreamException;
|
||||
import org.springframework.batch.item.reader.ListItemReader;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.item.stream.ItemStreamAdapter;
|
||||
import org.springframework.batch.item.stream.SimpleStreamManager;
|
||||
import org.springframework.batch.item.writer.AbstractItemWriter;
|
||||
@@ -306,7 +305,7 @@ public class SimpleStepExecutorTests extends TestCase {
|
||||
JobExecution jobExecutionContext = new JobExecution(jobInstance);
|
||||
StepExecution stepExecution = new StepExecution(step, jobExecutionContext);
|
||||
stepExecution.getStep().setStreamContext(
|
||||
new GenericStreamContext(PropertiesConverter.stringToProperties("foo=bar")));
|
||||
new StreamContext(PropertiesConverter.stringToProperties("foo=bar")));
|
||||
|
||||
stepExecutor.execute(stepExecution);
|
||||
|
||||
@@ -415,7 +414,7 @@ public class SimpleStepExecutorTests extends TestCase {
|
||||
stepExecutor.setStreamManager(new SimpleStreamManager(new ResourcelessTransactionManager()) {
|
||||
public StreamContext getStreamContext(Object key) {
|
||||
// TODO Auto-generated method stub
|
||||
return new GenericStreamContext(PropertiesConverter.stringToProperties("foo=bar"));
|
||||
return new StreamContext(PropertiesConverter.stringToProperties("foo=bar"));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -447,7 +446,7 @@ public class SimpleStepExecutorTests extends TestCase {
|
||||
|
||||
public StreamContext getStreamContext() {
|
||||
getStreamContextCalled = true;
|
||||
return new GenericStreamContext(PropertiesConverter.stringToProperties("spam=bucket"));
|
||||
return new StreamContext(PropertiesConverter.stringToProperties("spam=bucket"));
|
||||
}
|
||||
|
||||
public void restoreFrom(StreamContext data) {
|
||||
|
||||
@@ -27,7 +27,6 @@ import org.springframework.batch.io.Skippable;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.reader.AbstractItemStreamItemReader;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -180,8 +179,7 @@ public class HibernateCursorItemReader extends AbstractItemStreamItemReader impl
|
||||
props.setProperty(RESTART_DATA_ROW_NUMBER_KEY, "" + currentProcessedRow);
|
||||
String skipped = skippedRows.toString();
|
||||
props.setProperty(SKIPPED_ROWS, skipped.substring(1, skipped.length() - 1));
|
||||
|
||||
return new GenericStreamContext(props);
|
||||
return new StreamContext(props);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -33,7 +33,6 @@ import org.springframework.batch.io.support.AbstractTransactionalIoSource;
|
||||
import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.KeyedItemReader;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
@@ -393,7 +392,7 @@ public class JdbcCursorItemReader extends AbstractTransactionalIoSource implemen
|
||||
*/
|
||||
public StreamContext getStreamContext() {
|
||||
String skipped = skippedRows.toString();
|
||||
StreamContext context = new GenericStreamContext();
|
||||
StreamContext context = new StreamContext();
|
||||
context.putString(SKIPPED_ROWS, skipped.substring(1, skipped.length() - 1));
|
||||
context.putLong(CURRENT_PROCESSED_ROW, currentProcessedRow);
|
||||
context.putLong(SKIP_COUNT, skipCount);
|
||||
|
||||
@@ -13,7 +13,6 @@ import java.util.Properties;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.core.CollectionFactory;
|
||||
import org.springframework.jdbc.core.ColumnMapRowMapper;
|
||||
import org.springframework.jdbc.core.PreparedStatementSetter;
|
||||
@@ -60,7 +59,7 @@ public class ColumnMapStreamContextRowMapper extends ColumnMapRowMapper implemen
|
||||
}
|
||||
|
||||
|
||||
private static class ColumnMapStreamContext extends GenericStreamContext {
|
||||
private static class ColumnMapStreamContext extends StreamContext {
|
||||
|
||||
private final Map keys;
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import java.util.Properties;
|
||||
import org.springframework.batch.io.driving.DrivingQueryItemReader;
|
||||
import org.springframework.batch.io.driving.KeyGenerator;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.orm.ibatis.SqlMapClientTemplate;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@@ -48,7 +47,7 @@ public class IbatisKeyGenerator implements KeyGenerator {
|
||||
Properties props = new Properties();
|
||||
props.setProperty(RESTART_KEY, key.toString());
|
||||
|
||||
return new GenericStreamContext(props);
|
||||
return new StreamContext(props);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,12 +17,10 @@ package org.springframework.batch.io.driving.support;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.commons.lang.ClassUtils;
|
||||
import org.springframework.batch.io.driving.KeyGenerator;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.core.RowMapper;
|
||||
import org.springframework.jdbc.core.SingleColumnRowMapper;
|
||||
@@ -101,12 +99,10 @@ public class SingleColumnJdbcKeyGenerator implements KeyGenerator {
|
||||
* @throws IllegalArgumentException if key is null.
|
||||
*/
|
||||
public StreamContext getKeyAsStreamContext(Object key) {
|
||||
|
||||
Assert.notNull(key, "The key must not be null.");
|
||||
|
||||
Properties props = new Properties();
|
||||
props.setProperty(RESTART_KEY, key.toString());
|
||||
return new GenericStreamContext(props);
|
||||
StreamContext context = new StreamContext();
|
||||
context.putString(RESTART_KEY, key.toString());
|
||||
return context;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -35,7 +35,6 @@ import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.StreamException;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.item.writer.ItemTransformer;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
@@ -72,7 +71,7 @@ public class FlatFileItemWriter extends AbstractTransactionalIoSource implements
|
||||
|
||||
private Resource resource;
|
||||
|
||||
private StreamContext streamContext = new GenericStreamContext(new Properties());
|
||||
private StreamContext streamContext = new StreamContext();
|
||||
|
||||
private OutputState state = null;
|
||||
|
||||
|
||||
@@ -41,6 +41,10 @@ public class StreamContext {
|
||||
map = new HashMap();
|
||||
}
|
||||
|
||||
public StreamContext(Map map) {
|
||||
this.map = map;
|
||||
}
|
||||
|
||||
public void putString(String key, String value) {
|
||||
|
||||
Assert.notNull(value);
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Copyright 2006-2007 the original author or authors.
|
||||
*
|
||||
* 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 org.springframework.batch.item.stream;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Properties;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
|
||||
public class GenericStreamContext extends StreamContext {
|
||||
|
||||
public GenericStreamContext() {
|
||||
super();
|
||||
}
|
||||
|
||||
public GenericStreamContext(Properties data) {
|
||||
super();
|
||||
if (data != null) {
|
||||
for (Iterator it = data.entrySet().iterator(); it.hasNext();) {
|
||||
Entry entry = (Entry) it.next();
|
||||
putString(entry.getKey().toString(), entry.getValue().toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,8 +15,6 @@
|
||||
*/
|
||||
package org.springframework.batch.item.stream;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.StreamException;
|
||||
@@ -53,7 +51,7 @@ public class ItemStreamAdapter implements ItemStream {
|
||||
* @see org.springframework.batch.item.StreamContextProvider#getStreamContext()
|
||||
*/
|
||||
public StreamContext getStreamContext() {
|
||||
return new GenericStreamContext(new Properties());
|
||||
return new StreamContext();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
||||
@@ -107,7 +107,7 @@ public class SimpleStreamManager implements StreamManager {
|
||||
}
|
||||
}
|
||||
}
|
||||
return new GenericStreamContext(result);
|
||||
return new StreamContext(result);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package org.springframework.batch.item.writer;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.batch.io.Skippable;
|
||||
import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@@ -60,7 +57,7 @@ public class DelegatingItemWriter implements ItemWriter, Skippable, Initializing
|
||||
return ((ItemStream) writer).getStreamContext();
|
||||
}
|
||||
else {
|
||||
return new GenericStreamContext(new Properties());
|
||||
return new StreamContext();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ import org.springframework.batch.io.sample.domain.Foo;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -118,7 +117,7 @@ public class DrivingQueryItemReaderTests extends TestCase {
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testRestoreFromEmptyData() throws Exception {
|
||||
StreamContext streamContext = new GenericStreamContext(new Properties());
|
||||
StreamContext streamContext = new StreamContext();
|
||||
|
||||
getAsRestartable(source).restoreFrom(streamContext);
|
||||
|
||||
@@ -174,7 +173,7 @@ public class DrivingQueryItemReaderTests extends TestCase {
|
||||
//restart data properties cannot be empty.
|
||||
props.setProperty("", "");
|
||||
|
||||
streamContext = new GenericStreamContext(props);
|
||||
streamContext = new StreamContext(props);
|
||||
}
|
||||
|
||||
public MockKeyGenerator() {
|
||||
|
||||
@@ -12,7 +12,6 @@ import junit.framework.TestCase;
|
||||
|
||||
import org.easymock.MockControl;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.core.CollectionFactory;
|
||||
import org.springframework.jdbc.core.PreparedStatementSetter;
|
||||
|
||||
@@ -78,7 +77,7 @@ public class ColumnMapRestartDataRowMapperTests extends TestCase {
|
||||
Properties props = new Properties();
|
||||
props.setProperty(KEY + "0", "1");
|
||||
props.setProperty(KEY + "1", "2");
|
||||
StreamContext streamContext = new GenericStreamContext(props);
|
||||
StreamContext streamContext = new StreamContext(props);
|
||||
PreparedStatementSetter setter = mapper.createSetter(streamContext);
|
||||
ps = (PreparedStatement)psControl.getMock();
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.core.CollectionFactory;
|
||||
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
|
||||
|
||||
@@ -49,7 +48,7 @@ public class MultipleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTran
|
||||
Properties props = new Properties();
|
||||
props.setProperty(ColumnMapStreamContextRowMapper.KEY_PREFIX + "0", "3");
|
||||
props.setProperty(ColumnMapStreamContextRowMapper.KEY_PREFIX + "1", "3");
|
||||
StreamContext streamContext = new GenericStreamContext(props);
|
||||
StreamContext streamContext = new StreamContext(props);
|
||||
|
||||
List keys = keyStrategy.restoreKeys(streamContext);
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
|
||||
|
||||
/**
|
||||
@@ -44,7 +43,7 @@ public class SingleColumnJdbcKeyGeneratorIntegrationTests extends AbstractTransa
|
||||
|
||||
Properties props = new Properties();
|
||||
props.setProperty(SingleColumnJdbcKeyGenerator.RESTART_KEY, "3");
|
||||
StreamContext streamContext = new GenericStreamContext(props);
|
||||
StreamContext streamContext = new StreamContext(props);
|
||||
|
||||
List keys = keyStrategy.restoreKeys(streamContext);
|
||||
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package org.springframework.batch.io.sql;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.batch.io.sample.domain.Foo;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
|
||||
@@ -123,7 +120,7 @@ public abstract class AbstractJdbcItemReaderIntegrationTests extends AbstractTra
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testRestoreFromEmptyData() throws Exception {
|
||||
StreamContext streamContext = new GenericStreamContext(new Properties());
|
||||
StreamContext streamContext = new StreamContext();
|
||||
|
||||
getAsRestartable(source).restoreFrom(streamContext);
|
||||
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
package org.springframework.batch.io.support;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.batch.io.Skippable;
|
||||
import org.springframework.batch.io.sample.domain.Foo;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
|
||||
@@ -130,7 +127,7 @@ public abstract class AbstractDataSourceItemReaderIntegrationTests extends Abstr
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testRestoreFromEmptyData() throws Exception {
|
||||
StreamContext streamContext = new GenericStreamContext(new Properties());
|
||||
StreamContext streamContext = new StreamContext();
|
||||
|
||||
getAsRestartable(source).restoreFrom(streamContext);
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ import org.springframework.batch.io.Skippable;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemStream;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
|
||||
/**
|
||||
@@ -83,7 +82,7 @@ public class DelegatingItemReaderTests extends TestCase {
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testRestoreFrom() throws Exception {
|
||||
itemProvider.restoreFrom(new GenericStreamContext(PropertiesConverter.stringToProperties("value=bar")));
|
||||
itemProvider.restoreFrom(new StreamContext(PropertiesConverter.stringToProperties("value=bar")));
|
||||
assertEquals("bar", itemProvider.read());
|
||||
}
|
||||
|
||||
@@ -101,7 +100,7 @@ public class DelegatingItemReaderTests extends TestCase {
|
||||
}
|
||||
|
||||
public StreamContext getStreamContext() {
|
||||
return new GenericStreamContext(PropertiesConverter.stringToProperties("value=foo"));
|
||||
return new StreamContext(PropertiesConverter.stringToProperties("value=foo"));
|
||||
}
|
||||
|
||||
public void restoreFrom(StreamContext data) {
|
||||
|
||||
@@ -24,7 +24,6 @@ import junit.framework.TestCase;
|
||||
import org.springframework.batch.io.Skippable;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
|
||||
/**
|
||||
@@ -66,7 +65,7 @@ public class ItemWriterItemProcessorTests extends TestCase {
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testRestoreFrom() throws Exception {
|
||||
processor.restoreFrom(new GenericStreamContext(PropertiesConverter.stringToProperties("value=bar")));
|
||||
processor.restoreFrom(new StreamContext(PropertiesConverter.stringToProperties("value=bar")));
|
||||
processor.write("foo");
|
||||
assertEquals("bar:foo", list.get(0));
|
||||
}
|
||||
@@ -93,7 +92,7 @@ public class ItemWriterItemProcessorTests extends TestCase {
|
||||
public void testRestoreFromWithoutRestartable() throws Exception {
|
||||
processor.setDelegate(null);
|
||||
try {
|
||||
processor.restoreFrom(new GenericStreamContext(PropertiesConverter.stringToProperties("value=bar")));
|
||||
processor.restoreFrom(new StreamContext(PropertiesConverter.stringToProperties("value=bar")));
|
||||
fail("Expected IllegalStateException");
|
||||
}
|
||||
catch (IllegalStateException e) {
|
||||
@@ -145,12 +144,8 @@ public class ItemWriterItemProcessorTests extends TestCase {
|
||||
public void open() {
|
||||
}
|
||||
|
||||
public Properties getStatistics() {
|
||||
return PropertiesConverter.stringToProperties("a=b");
|
||||
}
|
||||
|
||||
public StreamContext getStreamContext() {
|
||||
return new GenericStreamContext(PropertiesConverter.stringToProperties("value=foo"));
|
||||
return new StreamContext(PropertiesConverter.stringToProperties("value=foo"));
|
||||
}
|
||||
|
||||
public void restoreFrom(StreamContext data) {
|
||||
|
||||
@@ -19,7 +19,6 @@ package org.springframework.batch.sample.tasklet;
|
||||
import org.springframework.batch.core.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.StreamContext;
|
||||
import org.springframework.batch.item.StreamContextProvider;
|
||||
import org.springframework.batch.item.stream.GenericStreamContext;
|
||||
import org.springframework.batch.repeat.ExitStatus;
|
||||
import org.springframework.batch.support.PropertiesConverter;
|
||||
|
||||
@@ -53,7 +52,7 @@ public class InfiniteLoopTasklet implements Tasklet, StreamContextProvider {
|
||||
* @see org.springframework.batch.item.stream.ItemStreamAdapter#getStreamContext()
|
||||
*/
|
||||
public StreamContext getStreamContext() {
|
||||
return new GenericStreamContext(PropertiesConverter.stringToProperties("count=" + count));
|
||||
return new StreamContext(PropertiesConverter.stringToProperties("count=" + count));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user