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 CHANGED
@@ -1 +1 @@
1
- 0.0.8
1
+ 0.0.9
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{gemfire-jruby}
8
- s.version = "0.0.8"
8
+ s.version = "0.0.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Alan McKean"]
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 class (below) into the server shell
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
- # Try the server api in the server shell
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.exist?(1)
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 a CacheListener to the cache region
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)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemfire-jruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan McKean