RESOLVED - issue BATCH-127: Allow job configuration to control re-entrant behavior

http://opensource.atlassian.com/projects/spring/browse/BATCH-127

Remove Recoverable interface (obsolete).
This commit is contained in:
dsyer
2007-12-16 18:06:05 +00:00
parent c117a44354
commit 611811d459
2 changed files with 5 additions and 44 deletions

View File

@@ -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);
}

View File

@@ -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).<br/>
*
* 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