diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/tasklet/Recoverable.java b/spring-batch-core/src/main/java/org/springframework/batch/core/tasklet/Recoverable.java deleted file mode 100644 index 3f44026e6..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/tasklet/Recoverable.java +++ /dev/null @@ -1,39 +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.core.tasklet; - -/** - * Marker interface for {@link Tasklet} implementations that are able to take a - * recovery action in the case that an exception is thrown inside - * {@link Tasklet#execute()}. Containers must ensure that the recover method is - * called in a different transactional context than the failed execution, e.g. - * by creating a new transaction with propagation REQUIRES_NEW. - * - * @author Dave Syer - * - */ -public interface Recoverable { - - /** - * Take some action to recover the current batch operation. E.g. send a - * message to an error queue, or append a bad record to a special file. - * - * @param cause the exception that caused the recovery step to be called. - */ - void recover(Throwable cause); - -} diff --git a/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTasklet.java b/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTasklet.java index 1271bda95..60fd7c8f5 100644 --- a/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTasklet.java +++ b/spring-batch-execution/src/main/java/org/springframework/batch/execution/tasklet/ItemProviderProcessTasklet.java @@ -22,7 +22,6 @@ import java.util.Map; import java.util.Properties; import java.util.Set; -import org.springframework.batch.core.tasklet.Recoverable; import org.springframework.batch.core.tasklet.Tasklet; import org.springframework.batch.io.Skippable; import org.springframework.batch.item.ItemProcessor; @@ -58,11 +57,12 @@ import org.springframework.util.Assert; * case because a transaction would have rolled back and the item would be * represented).
* - * If a {@link RetryPolicy} is not provided then the {@link Recoverable} + * If a {@link RetryPolicy} is not provided then the {@link ItemRecoverer} * interface can be used to attempt to recover immediately (with no retry) from - * a processing error. Clients of this class must call - * {@link Recoverable#recover(Throwable)} directly, which is simply delegated to - * {@link ItemProvider#recover(Object, Throwable)}. + * a processing error. Clients of this class should ensure that the recovery + * takes place in a separate transaction (e.g. with propagation REQUIRES_NEW) if + * necessary. This can easily be achieved by injecting an {@link ItemRecoverer} + * that has a transactional recover method. * * @see ItemProvider * @see ItemProcessor