DATAGEODE-272 - Write Unit Tests for transaction event handler framework code.
This commit is contained in:
@@ -22,6 +22,8 @@ import org.apache.geode.cache.TransactionEvent;
|
||||
import org.apache.geode.cache.TransactionWriter;
|
||||
import org.apache.geode.cache.TransactionWriterException;
|
||||
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@@ -45,8 +47,8 @@ public class ComposableTransactionWriter implements TransactionWriter {
|
||||
* the composition of both {@link TransactionWriter} one and {@link TransactionWriter} two.
|
||||
* @see org.apache.geode.cache.TransactionWriter
|
||||
*/
|
||||
public static TransactionWriter compose(TransactionWriter transactionWriterOne,
|
||||
TransactionWriter transactionWriterTwo) {
|
||||
public static @Nullable TransactionWriter compose(@Nullable TransactionWriter transactionWriterOne,
|
||||
@Nullable TransactionWriter transactionWriterTwo) {
|
||||
|
||||
return transactionWriterOne == null ? transactionWriterTwo
|
||||
: transactionWriterTwo == null ? transactionWriterOne
|
||||
@@ -56,7 +58,8 @@ public class ComposableTransactionWriter implements TransactionWriter {
|
||||
private final TransactionWriter transactionWriterOne;
|
||||
private final TransactionWriter transactionWriterTwo;
|
||||
|
||||
private ComposableTransactionWriter(TransactionWriter transactionWriterOne, TransactionWriter transactionWriterTwo) {
|
||||
private ComposableTransactionWriter(@NonNull TransactionWriter transactionWriterOne,
|
||||
@NonNull TransactionWriter transactionWriterTwo) {
|
||||
|
||||
Assert.notNull(transactionWriterOne, "TransactionWriter one must not be null");
|
||||
Assert.notNull(transactionWriterTwo, "TransactionWriter two must not be null");
|
||||
@@ -65,14 +68,34 @@ public class ComposableTransactionWriter implements TransactionWriter {
|
||||
this.transactionWriterTwo = transactionWriterTwo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a reference to the first {@link TransactionWriter} in the composition.
|
||||
*
|
||||
* @return a reference to the first {@link TransactionWriter} in the composition.
|
||||
* @see org.apache.geode.cache.TransactionWriter
|
||||
*/
|
||||
protected TransactionWriter getTransactionWriterOne() {
|
||||
return this.transactionWriterOne;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a reference to the second {@link TransactionWriter} in the composition.
|
||||
*
|
||||
* @return a reference to the second {@link TransactionWriter} in the composition.
|
||||
* @see org.apache.geode.cache.TransactionWriter
|
||||
*/
|
||||
protected TransactionWriter getTransactionWriterTwo() {
|
||||
return this.transactionWriterTwo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
@Override
|
||||
public void beforeCommit(TransactionEvent event) throws TransactionWriterException {
|
||||
|
||||
this.transactionWriterOne.beforeCommit(event);
|
||||
this.transactionWriterTwo.beforeCommit(event);
|
||||
getTransactionWriterOne().beforeCommit(event);
|
||||
getTransactionWriterTwo().beforeCommit(event);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -81,8 +104,8 @@ public class ComposableTransactionWriter implements TransactionWriter {
|
||||
@Override
|
||||
public void close() {
|
||||
|
||||
this.transactionWriterOne.close();
|
||||
this.transactionWriterTwo.close();
|
||||
getTransactionWriterOne().close();
|
||||
getTransactionWriterTwo().close();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -91,8 +114,8 @@ public class ComposableTransactionWriter implements TransactionWriter {
|
||||
@Override
|
||||
public void init(Properties properties) {
|
||||
|
||||
this.transactionWriterOne.init(properties);
|
||||
this.transactionWriterTwo.init(properties);
|
||||
getTransactionWriterOne().init(properties);
|
||||
getTransactionWriterTwo().init(properties);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -101,7 +124,7 @@ public class ComposableTransactionWriter implements TransactionWriter {
|
||||
@Override
|
||||
public void initialize(Cache cache, Properties properties) {
|
||||
|
||||
this.transactionWriterOne.initialize(cache, properties);
|
||||
this.transactionWriterTwo.initialize(cache, properties);
|
||||
getTransactionWriterOne().initialize(cache, properties);
|
||||
getTransactionWriterTwo().initialize(cache, properties);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.apache.geode.cache.TransactionWriter;
|
||||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@@ -57,6 +58,16 @@ public class TransactionListenerAdapter implements TransactionListener, Transact
|
||||
this.applicationEventPublisher = applicationEventPublisher;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a reference to the configured {@link ApplicationEventPublisher}.
|
||||
*
|
||||
* @return a reference to the configured {@link ApplicationEventPublisher}.
|
||||
* @see org.springframework.context.ApplicationEventPublisher
|
||||
*/
|
||||
protected @NonNull ApplicationEventPublisher getApplicationEventPublisher() {
|
||||
return this.applicationEventPublisher;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
@@ -68,7 +79,7 @@ public class TransactionListenerAdapter implements TransactionListener, Transact
|
||||
// all application @TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT) annotated transaction
|
||||
// event handler methods are invoked.
|
||||
|
||||
//this.applicationEventPublisher.publishEvent(TransactionApplicationEvent.of(event));
|
||||
//getApplicationEventPublisher().publishEvent(TransactionApplicationEvent.of(event));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,7 +87,7 @@ public class TransactionListenerAdapter implements TransactionListener, Transact
|
||||
*/
|
||||
@Override
|
||||
public void afterCommit(TransactionEvent event) {
|
||||
this.applicationEventPublisher.publishEvent(TransactionApplicationEvent.of(event));
|
||||
getApplicationEventPublisher().publishEvent(TransactionApplicationEvent.of(event));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,6 +101,6 @@ public class TransactionListenerAdapter implements TransactionListener, Transact
|
||||
*/
|
||||
@Override
|
||||
public void afterRollback(TransactionEvent event) {
|
||||
this.applicationEventPublisher.publishEvent(TransactionApplicationEvent.of(event));
|
||||
getApplicationEventPublisher().publishEvent(TransactionApplicationEvent.of(event));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user