gemfire-jruby 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/gemfire-jruby.gemspec +1 -1
- data/lib/examples.rb +125 -8
- data/lib/gemfire-jruby.rb +9 -1
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.9
|
data/gemfire-jruby.gemspec
CHANGED
data/lib/examples.rb
CHANGED
@@ -4,8 +4,74 @@ require 'gemfire-jruby'
|
|
4
4
|
|
5
5
|
## create the server
|
6
6
|
server = GemFireServer.new('localhost:10355')
|
7
|
-
# copy and paste the ExampleCacheListener
|
7
|
+
# copy and paste the ExampleCacheListener, ExampleCacheWriter and ExampleCacheLoader classes (below) into the server shell
|
8
|
+
|
9
|
+
class ExampleCacheListener
|
10
|
+
def afterCreate(entryEvent)
|
11
|
+
puts YAML::load(entryEvent.getKey).to_s + ' was created with ' + YAML::load(entryEvent.getNewValue).to_s
|
12
|
+
end
|
13
|
+
def afterUpdate(entryEvent)
|
14
|
+
puts YAML::load(entryEvent.getKey).to_s + ' was updated to ' + YAML::load(entryEvent.getNewValue).to_s
|
15
|
+
end
|
16
|
+
def afterDestroy(entryEvent)
|
17
|
+
puts YAML::load(entryEvent.getKey).to_s + ' was destroyed'
|
18
|
+
end
|
19
|
+
def afterInvalidate(entryEvent)
|
20
|
+
end
|
21
|
+
def afterRegionCreate(regionEvent)
|
22
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was created'
|
23
|
+
end
|
24
|
+
def afterRegionDestroy(regionEvent)
|
25
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was destroyed'
|
26
|
+
end
|
27
|
+
def afterRegionClear(regionEvent)
|
28
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was cleared'
|
29
|
+
end
|
30
|
+
def afterRegionInvalidate(regionEvent)
|
31
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was invalidated'
|
32
|
+
end
|
33
|
+
def afterRegionLive(regionEvent)
|
34
|
+
raise 'Not supported in gemfire-jruby'
|
35
|
+
end
|
36
|
+
def close
|
37
|
+
puts 'CacheListener is closing'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class ExampleCacheWriter
|
42
|
+
def beforeCreate(entryEvent)
|
43
|
+
puts YAML::load(entryEvent.getKey).to_s + ' is about to be created with ' + YAML::load(entryEvent.getNewValue).to_s
|
44
|
+
end
|
45
|
+
def beforeUpdate(entryEvent)
|
46
|
+
puts YAML::load(entryEvent.getKey).to_s + ' is about to be updated to ' + YAML::load(entryEvent.getNewValue).to_s
|
47
|
+
end
|
48
|
+
def beforeDestroy(entryEvent)
|
49
|
+
puts YAML::load(entryEvent.getKey).to_s + ' is about to be destroyed'
|
50
|
+
end
|
51
|
+
def beforeRegionDestroy(regionEvent)
|
52
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' is about to be destroyed'
|
53
|
+
end
|
54
|
+
def beforeRegionClear(regionEvent)
|
55
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' is about to be cleared'
|
56
|
+
end
|
57
|
+
def close
|
58
|
+
puts 'CacheWriter is closing'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class ExampleCacheLoader
|
63
|
+
def load(helper)
|
64
|
+
puts 'Loading ' + YAML::load(helper.getKey).to_s
|
65
|
+
'V' + YAML::load(helper.getKey).to_s
|
66
|
+
end
|
67
|
+
def close
|
68
|
+
puts 'CacheLoader is closing'
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
8
72
|
server.addListener(ExampleCacheListener.new)
|
73
|
+
server.setWriter(ExampleCacheWriter.new)
|
74
|
+
server.setLoader(ExampleCacheLoader.new)
|
9
75
|
|
10
76
|
# Now, in another jirb shell
|
11
77
|
require 'rubygems'
|
@@ -13,28 +79,76 @@ require 'gemfire-jruby'
|
|
13
79
|
|
14
80
|
## create the client
|
15
81
|
client = GemFireClient.new('localhost:10355')
|
82
|
+
|
16
83
|
# copy and paste the ExampleCacheListener class (below) into the server shell
|
84
|
+
class ExampleCacheListener
|
85
|
+
def afterCreate(entryEvent)
|
86
|
+
puts YAML::load(entryEvent.getKey).to_s + ' was created with ' + YAML::load(entryEvent.getNewValue).to_s
|
87
|
+
end
|
88
|
+
def afterUpdate(entryEvent)
|
89
|
+
puts YAML::load(entryEvent.getKey).to_s + ' was updated to ' + YAML::load(entryEvent.getNewValue).to_s
|
90
|
+
end
|
91
|
+
def afterDestroy(entryEvent)
|
92
|
+
puts YAML::load(entryEvent.getKey).to_s + ' was destroyed'
|
93
|
+
end
|
94
|
+
def afterInvalidate(entryEvent)
|
95
|
+
end
|
96
|
+
def afterRegionCreate(regionEvent)
|
97
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was created'
|
98
|
+
end
|
99
|
+
def afterRegionDestroy(regionEvent)
|
100
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was destroyed'
|
101
|
+
end
|
102
|
+
def afterRegionClear(regionEvent)
|
103
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was cleared'
|
104
|
+
end
|
105
|
+
def afterRegionInvalidate(regionEvent)
|
106
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was invalidated'
|
107
|
+
end
|
108
|
+
def afterRegionLive(regionEvent)
|
109
|
+
raise 'Not supported in gemfire-jruby'
|
110
|
+
end
|
111
|
+
def close
|
112
|
+
puts 'CacheListener is closing'
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
17
116
|
client.addListener(ExampleCacheListener.new)
|
18
117
|
|
19
118
|
# Put some data into the client shell ... the listeners should fire in both shells
|
20
119
|
(1..12).each do |key| client.write(key, Date.new(key,key,key)) end
|
21
120
|
|
22
|
-
# Explore the client api in the client shell
|
121
|
+
# Explore the client memcached api in the client shell
|
23
122
|
client.read(1)
|
24
123
|
client.keys
|
25
124
|
client.exist?(1)
|
26
125
|
|
27
|
-
#
|
126
|
+
# Now some of the GemFire api
|
127
|
+
client.create(200,200)
|
128
|
+
client.put(200,200)
|
129
|
+
client.invalidate(200)
|
130
|
+
client.destroy(200)
|
131
|
+
|
132
|
+
# Try the server memcached api in the server shell
|
28
133
|
server.read(1)
|
29
134
|
server.keys
|
30
135
|
server.exist?(1)
|
31
136
|
|
137
|
+
# Now the server GemFire api
|
138
|
+
server.create(200,200)
|
139
|
+
server.put(200,200)
|
140
|
+
server.invalidate(200)
|
141
|
+
server.destroy(200)
|
142
|
+
|
32
143
|
# Back in the client shell
|
33
144
|
client.delete(1)
|
34
145
|
client.exist?(1)
|
146
|
+
client.clear
|
35
147
|
|
36
148
|
# Check in the server shell
|
37
|
-
server.
|
149
|
+
server.create(100,100)
|
150
|
+
server.exist?(100)
|
151
|
+
server.clear
|
38
152
|
|
39
153
|
class ExampleCacheListener
|
40
154
|
def afterCreate(entryEvent)
|
@@ -44,22 +158,25 @@ class ExampleCacheListener
|
|
44
158
|
puts YAML::load(entryEvent.getKey).to_s + ' was updated to ' + YAML::load(entryEvent.getNewValue).to_s
|
45
159
|
end
|
46
160
|
def afterDestroy(entryEvent)
|
47
|
-
puts YAML::load(entryEvent.getKey).to_s + 'was destroyed'
|
161
|
+
puts YAML::load(entryEvent.getKey).to_s + ' was destroyed'
|
48
162
|
end
|
49
163
|
def afterInvalidate(entryEvent)
|
164
|
+
puts YAML::load(entryEvent.getKey).to_s + ' was invalidated'
|
50
165
|
end
|
51
166
|
def afterRegionCreate(regionEvent)
|
52
|
-
puts 'Region ' + regionEvent.getRegion.getName + 'was created'
|
167
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was created'
|
53
168
|
end
|
54
169
|
def afterRegionDestroy(regionEvent)
|
55
|
-
puts 'Region ' + regionEvent.getRegion.getName + 'was destroyed'
|
170
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was destroyed'
|
56
171
|
end
|
57
172
|
def afterRegionClear(regionEvent)
|
58
|
-
puts 'Region ' + regionEvent.getRegion.getName + 'was cleared'
|
173
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was cleared'
|
59
174
|
end
|
60
175
|
def afterRegionInvalidate(regionEvent)
|
176
|
+
puts 'Region ' + regionEvent.getRegion.getName + ' was invalidated'
|
61
177
|
end
|
62
178
|
def afterRegionLive(regionEvent)
|
179
|
+
raise 'Not supported in gemfire-jruby'
|
63
180
|
end
|
64
181
|
def close
|
65
182
|
puts 'CacheListener is closing'
|
data/lib/gemfire-jruby.rb
CHANGED
@@ -135,11 +135,15 @@ module ActiveSupport
|
|
135
135
|
logger.error("GemfireCache Error (#{e}): #{e.message}")
|
136
136
|
end
|
137
137
|
|
138
|
-
# Add
|
138
|
+
# Add and remove CacheListeners to the cache region
|
139
139
|
def addListener(cacheListener)
|
140
140
|
@region.getAttributesMutator.addCacheListener(cacheListener)
|
141
141
|
end
|
142
142
|
|
143
|
+
def removeListener(cacheListener)
|
144
|
+
@region.getAttributesMutator.removeCacheListener(cacheListener)
|
145
|
+
end
|
146
|
+
|
143
147
|
# Install a CacheWriter into the client's cache region
|
144
148
|
def setWriter(cacheWriter)
|
145
149
|
if @role == 'server' then
|
@@ -289,6 +293,10 @@ class GemFireCacher
|
|
289
293
|
@gemfire.addListener(cacheListener)
|
290
294
|
end
|
291
295
|
|
296
|
+
def removeListener(cacheListener)
|
297
|
+
@gemfire.removeListener(cacheListener)
|
298
|
+
end
|
299
|
+
|
292
300
|
# Memcached api
|
293
301
|
def read(key)
|
294
302
|
@gemfire.read(key)
|