package com.hazelcast.spring.transaction;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;
import com.hazelcast.util.EmptyStatement;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class TransactionManagerExample {
public static void main(String[] args) throws Exception {
ApplicationContext context = new GenericXmlApplicationContext("applicationContext.xml");
HazelcastInstance instance = (HazelcastInstance) context.getBean("instance");
ServiceWithTransactionalMethod service = (ServiceWithTransactionalMethod) context.getBean("transactionalService");
System.out.println("####### BEGIN #######");
System.out.println("####### Call to transactional method #######");
service.transactionalPut("key1", "value1");
IMap<String, String> testMap = instance.getMap("testMap");
System.out.println("Map contains \"key1\" : " + testMap.containsKey("key1"));
System.out.println("####### Call to transactional method with exception #######");
try {
service.transactionalPutWithException("key2", "value2");
} catch (RuntimeException ex) {
EmptyStatement.ignore(ex);
}
System.out.println("Map contains \"key2\" : " + testMap.containsKey("key2"));
System.out.println("####### END #######");
Hazelcast.shutdownAll();
}
}