gemfire-jruby 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|