3 Hazelcast Factory Beans - Reference Documentation
Authors: Bud Byrd, Anil Manthina, Aaron Brown
Version: 1.0.3
Table of Contents
3 Hazelcast Factory Beans
The plugin provides a set of factory beans which can be used to easily create sturctures such asMap
, List
, and
Set
, that are integrated with Hazelcast.
3.1 HazelcastMapFactoryBean
The HazelcastMapFactoryBean can be used to create Hazelcast Maps as beans by declaring them ingrails-app/init/<package>/Application.groovy
:class Application extends GrailsAutoConfiguration { static void main(String[] args) { GrailsApp.run(Application, args) } @Override Closure doWithSpring() {{-> 'myMap'(HazelcastMapFactoryBean) { instanceName = 'myInstance' mapName = 'myMap' } 'myClass'(MyClass) { // For Maps, it may be best to reference // rather than use @Autowired due to bean // validation logic. myMap = ref('myMap') } }} }
class MyClass { /** * MyMap */ Map<String, Object> myMap cache(String key, Object value) { myMap[(key)[ = value } Object fetch(String key) { return myMap[key] } }
3.2 HazelcastSetFactoryBean
The HazelcastSetFactoryBean can be used to create Hazelcast Sets as beans by declaring them ingrails-app/init/<package>/Application.groovy
:class Application extends GrailsAutoConfiguration { static void main(String[] args) { GrailsApp.run(Application, args) } @Override Closure doWithSpring() {{-> 'myLSet'(HazelcastSetFactoryBean) { instanceName = 'myInstance' setName = 'mySet' } }} }
class MyClass { /** * MySet */ @Autowired Set<String> mySet void process() { mySet.putAll('foo', 'bar', 'baz') String foo = myList[0] myList << ['foo'] myList[0] != myList[-1] } }
3.3 HazelcastListFactoryBean
The HazelcastListFactoryBean can be used to create Hazelcast Lists as beans by declaring them ingrails-app/init/<package>/Application.groovy
:class Application extends GrailsAutoConfiguration { static void main(String[] args) { GrailsApp.run(Application, args) } @Override Closure doWithSpring() {{-> 'myList'(HazelcastListFactoryBean) { instanceName = 'myInstance' listName = 'myList' } }} }
class MyClass { /** * MyList */ @Autowired List<String> myList void process() { myList.putAll('foo', 'bar', 'baz') String foo = myList[0] myList << ['foo'] myList[0] == myList[-1] } }
3.4 HazelcastLockFactoryBean
The HazelcastLockFactoryBean can be used to create Hazelcast Locks as beans by declaring them ingrails-app/init/<package>/Application.groovy
:class Application extends GrailsAutoConfiguration { static void main(String[] args) { GrailsApp.run(Application, args) } @Override Closure doWithSpring() {{-> 'myLLock'(HazelcastLockFactoryBean) { instanceName = 'myInstance' lockName = 'myLock' } }} }
@Slf4j class MyClass { /** * MyLock */ @Autowired ILock myLock void process() { if (!lock.tryLock(60000, TimeUnit.MILLISECONDS, 600000, TimeUnit.MILLISECONDS)) { log.warn("Lock failed.") return } try { // … } catch (Exception e) { // … } finally { try { lock.unlock() log.trace("Mutex lock released") } catch (IllegalMonitorStateException ignored) { log.warn("lock expired") } } } }