gemfire-jruby 0.0.4 → 0.0.5
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/README +29 -0
- data/VERSION +1 -1
- data/doc/classes/ActiveSupport/Cache/GemFire.html +19 -4
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000001.html +3 -3
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000002.html +21 -9
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000003.html +1 -2
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000004.html +1 -3
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000005.html +1 -2
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000006.html +1 -1
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000007.html +6 -3
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000008.html +1 -4
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000009.html +1 -1
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000010.html +1 -1
- data/doc/classes/ActiveSupport/Cache/GemFire.src/M000011.html +1 -1
- data/doc/created.rid +1 -1
- data/doc/files/lib/gemfire-jruby_rb.html +2 -2
- data/doc/fr_method_index.html +1 -0
- data/gemfire-jruby.gemspec +2 -1
- data/lib/gemfire-jruby.rb +77 -75
- metadata +3 -1
data/README
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
Role must be specified as either 'client' or 'server'
|
2
|
+
ActiveSupport::Cache::GemFire.getInstance('server', {...})
|
3
|
+
|
4
|
+
Universal Required Options
|
5
|
+
These options are required for both clients and servers. The 'locators' is used by servers to join its peers. It is used by a client's pool to connect to the server tier.
|
6
|
+
|
7
|
+
'region-name' == nameString
|
8
|
+
'locators' == addressOrHostname:portNumber
|
9
|
+
|
10
|
+
Example:
|
11
|
+
ActiveSupport::Cache::GemFire.getInstance('server', {'region-name'=>'data, 'locators=>localhost:10355, , ...})
|
12
|
+
|
13
|
+
Client Options
|
14
|
+
'caching-enabled' => 'true' || 'false' ... default is 'false'
|
15
|
+
|
16
|
+
Server Options
|
17
|
+
'cacheserver-port'=> 40404 # required
|
18
|
+
'data-policy' => 'partition' || 'replicate' # default is replicate
|
19
|
+
'redundancy-level' => '0..3' # applicable only if 'data-policy' is 'partition'
|
20
|
+
|
21
|
+
Example of Creating a Server
|
22
|
+
require 'rubygems'
|
23
|
+
require 'lib/gemfire-jruby'
|
24
|
+
gfe = ActiveSupport::Cache::GemFire.getInstance('server', {'locators'=>'localhost:10355', 'region-name'=>'data', 'cacheserver-port'=>40405})
|
25
|
+
|
26
|
+
require 'rubygems'
|
27
|
+
require 'lib/gemfire-jruby'
|
28
|
+
gfe = ActiveSupport::Cache::GemFire.getInstance('client', {'locators'=>'localhost:10355', 'region-name'=>'data'})
|
29
|
+
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
@@ -103,6 +103,7 @@ href="GemFire.html">GemFire</a> cache.
|
|
103
103
|
<a href="#M000009">increment</a>
|
104
104
|
<a href="#M000006">keys</a>
|
105
105
|
<a href="#M000002">new</a>
|
106
|
+
<a href="#M000012">query</a>
|
106
107
|
<a href="#M000003">read</a>
|
107
108
|
<a href="#M000004">write</a>
|
108
109
|
</div>
|
@@ -151,7 +152,7 @@ href="GemFire.html">GemFire</a> cache.
|
|
151
152
|
<div class="method-heading">
|
152
153
|
<a href="GemFire.src/M000001.html" target="Code" class="method-signature"
|
153
154
|
onclick="popupCode('GemFire.src/M000001.html');return false;">
|
154
|
-
<span class="method-name">getInstance</span><span class="method-args">(
|
155
|
+
<span class="method-name">getInstance</span><span class="method-args">(role, options={})</span>
|
155
156
|
</a>
|
156
157
|
</div>
|
157
158
|
|
@@ -164,8 +165,8 @@ href="GemFire.html">GemFire</a> instance and to launch <a
|
|
164
165
|
href="GemFire.html">GemFire</a>.
|
165
166
|
</p>
|
166
167
|
<pre>
|
167
|
-
|
168
|
-
For example, GemFire.getInstance('
|
168
|
+
The required Hash is used to configure clients and servers.
|
169
|
+
For example, GemFire.getInstance('server', {'region-name'=> 'data', 'locators' => 'localhost:10355'})
|
169
170
|
</pre>
|
170
171
|
<p>
|
171
172
|
Since it is a Singleton, successive calls to <a
|
@@ -181,7 +182,7 @@ single instance that was instantiated by the first call.
|
|
181
182
|
<div class="method-heading">
|
182
183
|
<a href="GemFire.src/M000002.html" target="Code" class="method-signature"
|
183
184
|
onclick="popupCode('GemFire.src/M000002.html');return false;">
|
184
|
-
<span class="method-name">new</span><span class="method-args">(
|
185
|
+
<span class="method-name">new</span><span class="method-args">(role, options)</span>
|
185
186
|
</a>
|
186
187
|
</div>
|
187
188
|
|
@@ -319,6 +320,20 @@ objects.
|
|
319
320
|
</div>
|
320
321
|
</div>
|
321
322
|
|
323
|
+
<div id="method-M000012" class="method-detail">
|
324
|
+
<a name="M000012"></a>
|
325
|
+
|
326
|
+
<div class="method-heading">
|
327
|
+
<a href="GemFire.src/M000012.html" target="Code" class="method-signature"
|
328
|
+
onclick="popupCode('GemFire.src/M000012.html');return false;">
|
329
|
+
<span class="method-name">query</span><span class="method-args">(queryString)</span>
|
330
|
+
</a>
|
331
|
+
</div>
|
332
|
+
|
333
|
+
<div class="method-description">
|
334
|
+
</div>
|
335
|
+
</div>
|
336
|
+
|
322
337
|
<div id="method-M000003" class="method-detail">
|
323
338
|
<a name="M000003"></a>
|
324
339
|
|
@@ -10,9 +10,9 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
14
|
-
|
15
|
-
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">new</span>(<span class="ruby-identifier">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 29</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">GemFire</span>.<span class="ruby-identifier">getInstance</span>(<span class="ruby-identifier">role</span>, <span class="ruby-identifier">options</span>={})
|
15
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">new</span>(<span class="ruby-identifier">role</span>, <span class="ruby-identifier">options</span>)
|
16
16
|
<span class="ruby-keyword kw">end</span></pre>
|
17
17
|
</body>
|
18
18
|
</html>
|
@@ -10,18 +10,30 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">
|
15
|
-
<span class="ruby-
|
16
|
-
<span class="ruby-
|
17
|
-
|
18
|
-
<span class="ruby-
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 101</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">role</span>, <span class="ruby-identifier">options</span>)
|
15
|
+
<span class="ruby-comment cmt"># fill the GemFire properties from the options</span>
|
16
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">check_required_options</span>(<span class="ruby-identifier">role</span>, <span class="ruby-identifier">options</span>)
|
17
|
+
<span class="ruby-comment cmt"># join the distributed system</span>
|
18
|
+
<span class="ruby-identifier">properties</span> = <span class="ruby-identifier">get_gemfire_properties</span>(<span class="ruby-identifier">role</span>, <span class="ruby-identifier">options</span>)
|
19
19
|
<span class="ruby-identifier">system</span> = <span class="ruby-constant">DistributedSystem</span>.<span class="ruby-identifier">connect</span>(<span class="ruby-identifier">properties</span>)
|
20
|
-
<span class="ruby-
|
21
|
-
<span class="ruby-ivar">@
|
20
|
+
<span class="ruby-comment cmt"># create the cache ... this will read a cache.xml</span>
|
21
|
+
<span class="ruby-ivar">@cache</span> = <span class="ruby-constant">CacheFactory</span>.<span class="ruby-identifier">create</span>(<span class="ruby-identifier">system</span>)
|
22
|
+
<span class="ruby-comment cmt"># there is only one region</span>
|
23
|
+
<span class="ruby-identifier">regionAttributes</span> = <span class="ruby-keyword kw">nil</span>
|
24
|
+
<span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">role</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'client'</span>) <span class="ruby-keyword kw">then</span>
|
25
|
+
<span class="ruby-comment cmt"># it's a client</span>
|
26
|
+
<span class="ruby-identifier">regionAttributes</span> = <span class="ruby-identifier">get_client_attributes</span>(<span class="ruby-identifier">options</span>)
|
27
|
+
<span class="ruby-keyword kw">else</span>
|
28
|
+
<span class="ruby-comment cmt"># it's a server</span>
|
29
|
+
<span class="ruby-identifier">cacheServer</span> = <span class="ruby-ivar">@cache</span>.<span class="ruby-identifier">addCacheServer</span>
|
30
|
+
<span class="ruby-identifier">cacheServer</span>.<span class="ruby-identifier">setPort</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value str">'cacheserver-port'</span>])
|
31
|
+
<span class="ruby-identifier">cacheServer</span>.<span class="ruby-identifier">start</span>
|
32
|
+
<span class="ruby-identifier">regionAttributes</span> = <span class="ruby-identifier">get_server_attributes</span>(<span class="ruby-identifier">options</span>)
|
33
|
+
<span class="ruby-keyword kw">end</span>
|
34
|
+
<span class="ruby-ivar">@region</span> = <span class="ruby-ivar">@cache</span>.<span class="ruby-identifier">createRegion</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value str">'region-name'</span>], <span class="ruby-identifier">regionAttributes</span>)
|
22
35
|
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">CacheException</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
23
36
|
<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">"GemfireCache Creation Error (#{e}): #{e.message}"</span>)
|
24
|
-
<span class="ruby-keyword kw">false</span>
|
25
37
|
<span class="ruby-keyword kw">end</span></pre>
|
26
38
|
</body>
|
27
39
|
</html>
|
@@ -10,13 +10,12 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 127</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">key</span>)
|
15
15
|
<span class="ruby-keyword kw">super</span>
|
16
16
|
<span class="ruby-ivar">@region</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>)
|
17
17
|
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">CacheException</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
18
18
|
<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">"GemfireCache Error (#{e}): #{e.message}"</span>)
|
19
|
-
<span class="ruby-keyword kw">false</span>
|
20
19
|
<span class="ruby-keyword kw">end</span></pre>
|
21
20
|
</body>
|
22
21
|
</html>
|
@@ -10,14 +10,12 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 135</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
|
15
15
|
<span class="ruby-keyword kw">super</span>
|
16
16
|
<span class="ruby-ivar">@region</span>.<span class="ruby-identifier">put</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
|
17
|
-
<span class="ruby-keyword kw">true</span>
|
18
17
|
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">CacheException</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
19
18
|
<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">"GemfireCache Error (#{e}): #{e.message}"</span>)
|
20
|
-
<span class="ruby-keyword kw">false</span>
|
21
19
|
<span class="ruby-keyword kw">end</span></pre>
|
22
20
|
</body>
|
23
21
|
</html>
|
@@ -10,13 +10,12 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 143</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>)
|
15
15
|
<span class="ruby-keyword kw">super</span>
|
16
16
|
<span class="ruby-ivar">@region</span>.<span class="ruby-identifier">destroy</span>(<span class="ruby-identifier">key</span>)
|
17
17
|
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">CacheException</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
18
18
|
<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">"GemfireCache Error (#{e}): #{e.message}"</span>)
|
19
|
-
<span class="ruby-keyword kw">false</span>
|
20
19
|
<span class="ruby-keyword kw">end</span></pre>
|
21
20
|
</body>
|
22
21
|
</html>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 151</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">keys</span>
|
15
15
|
<span class="ruby-ivar">@region</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">to_a</span>
|
16
16
|
<span class="ruby-keyword kw">end</span></pre>
|
@@ -10,10 +10,13 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 156</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">key</span>)
|
15
|
-
<span class="ruby-keyword kw">
|
16
|
-
|
15
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@region</span>.<span class="ruby-identifier">getAttributes</span>.<span class="ruby-identifier">getPoolName</span> <span class="ruby-keyword kw">then</span>
|
16
|
+
<span class="ruby-ivar">@region</span>.<span class="ruby-identifier">containsKey</span>(<span class="ruby-identifier">key</span>)
|
17
|
+
<span class="ruby-keyword kw">else</span>
|
18
|
+
<span class="ruby-ivar">@region</span>.<span class="ruby-identifier">containsKeyOnServer</span>(<span class="ruby-identifier">key</span>)
|
19
|
+
<span class="ruby-keyword kw">end</span>
|
17
20
|
<span class="ruby-keyword kw">end</span></pre>
|
18
21
|
</body>
|
19
22
|
</html>
|
@@ -10,14 +10,11 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 165</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear</span>
|
15
|
-
<span class="ruby-keyword kw">super</span>
|
16
15
|
<span class="ruby-ivar">@region</span>.<span class="ruby-identifier">clear</span>
|
17
|
-
<span class="ruby-keyword kw">true</span>
|
18
16
|
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">CacheException</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
19
17
|
<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">"GemfireCache Error (#{e}): #{e.message}"</span>)
|
20
|
-
<span class="ruby-keyword kw">false</span>
|
21
18
|
<span class="ruby-keyword kw">end</span></pre>
|
22
19
|
</body>
|
23
20
|
</html>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 172</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">increment</span>(<span class="ruby-identifier">key</span>)
|
15
15
|
<span class="ruby-identifier">raise</span> <span class="ruby-value str">"Not supported by Gemfire"</span>
|
16
16
|
<span class="ruby-keyword kw">end</span></pre>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 177</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">decrement</span>(<span class="ruby-identifier">key</span>)
|
15
15
|
<span class="ruby-identifier">raise</span> <span class="ruby-value str">"Not supported by Gemfire"</span>
|
16
16
|
<span class="ruby-keyword kw">end</span></pre>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/gemfire-jruby.rb, line 182</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_matched</span>(<span class="ruby-identifier">matcher</span>)
|
15
15
|
<span class="ruby-identifier">raise</span> <span class="ruby-value str">"Not supported by Gemfire"</span>
|
16
16
|
<span class="ruby-keyword kw">end</span></pre>
|
data/doc/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Fri, 29 Jan 2010 10:49:13 -0800
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>
|
59
|
+
<td>Fri Jan 29 10:45:01 -0800 2010</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -73,7 +73,7 @@
|
|
73
73
|
<h3 class="section-bar">Required files</h3>
|
74
74
|
|
75
75
|
<div class="name-list">
|
76
|
-
|
76
|
+
active_support
|
77
77
|
</div>
|
78
78
|
</div>
|
79
79
|
|
data/doc/fr_method_index.html
CHANGED
@@ -29,6 +29,7 @@
|
|
29
29
|
<a href="classes/ActiveSupport/Cache/GemFire.html#M000009">increment (ActiveSupport::Cache::GemFire)</a><br />
|
30
30
|
<a href="classes/ActiveSupport/Cache/GemFire.html#M000006">keys (ActiveSupport::Cache::GemFire)</a><br />
|
31
31
|
<a href="classes/ActiveSupport/Cache/GemFire.html#M000002">new (ActiveSupport::Cache::GemFire)</a><br />
|
32
|
+
<a href="classes/ActiveSupport/Cache/GemFire.html#M000012">query (ActiveSupport::Cache::GemFire)</a><br />
|
32
33
|
<a href="classes/ActiveSupport/Cache/GemFire.html#M000003">read (ActiveSupport::Cache::GemFire)</a><br />
|
33
34
|
<a href="classes/ActiveSupport/Cache/GemFire.html#M000004">write (ActiveSupport::Cache::GemFire)</a><br />
|
34
35
|
</div>
|
data/gemfire-jruby.gemspec
CHANGED
@@ -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
|
+
s.version = "0.0.5"
|
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"]
|
@@ -14,6 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.email = %q{alan.mckean@gemstone.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
+
"README",
|
17
18
|
"README.rdoc"
|
18
19
|
]
|
19
20
|
s.files = [
|
data/lib/gemfire-jruby.rb
CHANGED
@@ -30,77 +30,9 @@ module ActiveSupport
|
|
30
30
|
self.instance ||= new(role, options)
|
31
31
|
end
|
32
32
|
|
33
|
-
def check_required_options(role, options)
|
34
|
-
# role must be client or server
|
35
|
-
if(role != 'client' && role != 'server') then
|
36
|
-
raise "The member role must be either client or server"
|
37
|
-
end
|
38
|
-
# ensure that we are using locators ... no multicast distribution is allowed
|
39
|
-
if (!options.include?('locators')) then
|
40
|
-
raise "Locators must be specified in the options"
|
41
|
-
end
|
42
|
-
if (role == 'server' && !options.include?('cacheserver-port')) then
|
43
|
-
raise "The server must have a cacheserver-port specified in the options"
|
44
|
-
end
|
45
|
-
if (!options.include?('region-name')) then
|
46
|
-
raise "The region name must be specified in the options"
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def get_gemfire_properties(role, options)
|
51
|
-
properties = Properties.new
|
52
|
-
properties.setProperty('mcast-port', '0')
|
53
|
-
options.each do |key, value|
|
54
|
-
properties.setProperty(key, value) unless ((key == 'cacheserver-port') || (key == 'region-name') || (key == 'locators' && role == 'client'))
|
55
|
-
end
|
56
|
-
properties
|
57
|
-
end
|
58
|
-
|
59
|
-
def get_client_attributes(options)
|
60
|
-
# configure the region attributes for client usage
|
61
|
-
attributesFactory = AttributesFactory.new
|
62
|
-
# clients have a Pool
|
63
|
-
poolFactory = PoolManager.createFactory
|
64
|
-
ipAndPort = options['locators'].split(':')
|
65
|
-
puts ipAndPort[0]
|
66
|
-
puts ipAndPort[1]
|
67
|
-
poolFactory.addLocator(ipAndPort[0], ipAndPort[1].to_i)
|
68
|
-
poolFactory.create("clientPool")
|
69
|
-
# clients do no peer-to-peer distribution
|
70
|
-
attributesFactory.setScope(Scope::LOCAL)
|
71
|
-
# clients either cache data locally (DataPolicy::NORMAL) or not (DataPolicy::EMPTY)
|
72
|
-
if (options['caching-enabled'] == 'true') then
|
73
|
-
attributesFactory.setDataPolicy(DataPolicy::NORMAL)
|
74
|
-
else
|
75
|
-
attributesFactory.setDataPolicy(DataPolicy::EMPTY)
|
76
|
-
end
|
77
|
-
attributesFactory.setPoolName("clientPool")
|
78
|
-
regionAttributes = attributesFactory.create
|
79
|
-
end
|
80
|
-
|
81
|
-
def get_server_attributes(options)
|
82
|
-
attributesFactory = AttributesFactory.new
|
83
|
-
if (options['data-policy'] == 'partition') then
|
84
|
-
# it's a partitioned region
|
85
|
-
attributesFactory.setDataPolicy(DataPolicy::PARTITION)
|
86
|
-
if (options['redundant-copies']) then
|
87
|
-
partitionAttributesFactory = PartitionAttributesFactory.new
|
88
|
-
partitionattributesFactory.setRedundantCopies(options['redundant-copies'].to_s)
|
89
|
-
partitionAttributes = partitionAttributesFactory.create
|
90
|
-
attributesFactory.setPartitionAttributes(partitionAttributes)
|
91
|
-
end
|
92
|
-
elsif (!options['data-policy'] || (options['data-policy'] == 'replicate'))
|
93
|
-
# it's a replicate region
|
94
|
-
attributesFactory.setDataPolicy(DataPolicy::REPLICATE)
|
95
|
-
else
|
96
|
-
raise "Data policy must be either 'replicate', 'partition', or unset (the default is replicate)"
|
97
|
-
end
|
98
|
-
regionAttributes = attributesFactory.create
|
99
|
-
end
|
100
|
-
|
101
33
|
def initialize(role, options)
|
102
34
|
# fill the GemFire properties from the options
|
103
|
-
|
35
|
+
check_required_options(role, options)
|
104
36
|
# join the distributed system
|
105
37
|
properties = get_gemfire_properties(role, options)
|
106
38
|
system = DistributedSystem.connect(properties)
|
@@ -126,7 +58,7 @@ module ActiveSupport
|
|
126
58
|
# Read a value from the GemFire cache. _key_ can be any JRuby object. Returns the value stored at _key_.
|
127
59
|
def read(key)
|
128
60
|
super
|
129
|
-
@region.get(key)
|
61
|
+
Marshal.load(@region.get(Marshal.dump(key)))
|
130
62
|
rescue CacheException => e
|
131
63
|
logger.error("GemfireCache Error (#{e}): #{e.message}")
|
132
64
|
end
|
@@ -134,7 +66,7 @@ module ActiveSupport
|
|
134
66
|
# Write a value to the GemFire cache. _key_ is used to read the value from the cache and can be any JRuby object. Returns the value that was stored at _key_.
|
135
67
|
def write(key, value)
|
136
68
|
super
|
137
|
-
@region.put(key, value)
|
69
|
+
@region.put(Marshal.dump(key), Marshal.dump(value))
|
138
70
|
rescue CacheException => e
|
139
71
|
logger.error("GemfireCache Error (#{e}): #{e.message}")
|
140
72
|
end
|
@@ -183,6 +115,76 @@ module ActiveSupport
|
|
183
115
|
raise "Not supported by Gemfire"
|
184
116
|
end
|
185
117
|
|
118
|
+
private
|
119
|
+
def check_required_options(role, options)
|
120
|
+
# role must be client or server
|
121
|
+
if(role != 'client' && role != 'server') then
|
122
|
+
raise "The member role must be either client or server"
|
123
|
+
end
|
124
|
+
# ensure that we are using locators ... no multicast distribution is allowed
|
125
|
+
if (!options.include?('locators')) then
|
126
|
+
raise "Locators must be specified in the options"
|
127
|
+
end
|
128
|
+
if (role == 'server' && !options.include?('cacheserver-port')) then
|
129
|
+
raise "The server must have a cacheserver-port specified in the options"
|
130
|
+
end
|
131
|
+
if (!options.include?('region-name')) then
|
132
|
+
raise "The region name must be specified in the options"
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def get_gemfire_properties(role, options)
|
137
|
+
properties = Properties.new
|
138
|
+
properties.setProperty('mcast-port', '0')
|
139
|
+
options.each do |key, value|
|
140
|
+
properties.setProperty(key, value) unless ((key == 'cacheserver-port') || (key == 'region-name') || (key == 'locators' && role == 'client'))
|
141
|
+
end
|
142
|
+
properties
|
143
|
+
end
|
144
|
+
|
145
|
+
def get_client_attributes(options)
|
146
|
+
# configure the region attributes for client usage
|
147
|
+
attributesFactory = AttributesFactory.new
|
148
|
+
# clients have a Pool
|
149
|
+
poolFactory = PoolManager.createFactory
|
150
|
+
ipAndPort = options['locators'].split(':')
|
151
|
+
puts ipAndPort[0]
|
152
|
+
puts ipAndPort[1]
|
153
|
+
poolFactory.addLocator(ipAndPort[0], ipAndPort[1].to_i)
|
154
|
+
poolFactory.create("clientPool")
|
155
|
+
# clients do no peer-to-peer distribution
|
156
|
+
attributesFactory.setScope(Scope::LOCAL)
|
157
|
+
# clients either cache data locally (DataPolicy::NORMAL) or not (DataPolicy::EMPTY)
|
158
|
+
if (options['caching-enabled'] == 'true') then
|
159
|
+
attributesFactory.setDataPolicy(DataPolicy::NORMAL)
|
160
|
+
else
|
161
|
+
attributesFactory.setDataPolicy(DataPolicy::EMPTY)
|
162
|
+
end
|
163
|
+
attributesFactory.setPoolName("clientPool")
|
164
|
+
regionAttributes = attributesFactory.create
|
165
|
+
end
|
166
|
+
|
167
|
+
def get_server_attributes(options)
|
168
|
+
attributesFactory = AttributesFactory.new
|
169
|
+
if (options['data-policy'] == 'partition') then
|
170
|
+
# it's a partitioned region
|
171
|
+
attributesFactory.setDataPolicy(DataPolicy::PARTITION)
|
172
|
+
if (options['redundant-copies']) then
|
173
|
+
partitionAttributesFactory = PartitionAttributesFactory.new
|
174
|
+
partitionattributesFactory.setRedundantCopies(options['redundant-copies'].to_s)
|
175
|
+
partitionAttributes = partitionAttributesFactory.create
|
176
|
+
attributesFactory.setPartitionAttributes(partitionAttributes)
|
177
|
+
end
|
178
|
+
elsif (!options['data-policy'] || (options['data-policy'] == 'replicate'))
|
179
|
+
# it's a replicate region
|
180
|
+
attributesFactory.setDataPolicy(DataPolicy::REPLICATE)
|
181
|
+
else
|
182
|
+
raise "Data policy must be either 'replicate', 'partition', or unset (the default is replicate)"
|
183
|
+
end
|
184
|
+
regionAttributes = attributesFactory.create
|
185
|
+
end
|
186
|
+
|
187
|
+
public
|
186
188
|
def toList(selectResults)
|
187
189
|
results = []
|
188
190
|
iterator = selectResults.iterator
|
@@ -202,14 +204,14 @@ module ActiveSupport
|
|
202
204
|
found
|
203
205
|
end
|
204
206
|
|
205
|
-
|
206
|
-
|
207
|
+
public
|
208
|
+
# Query the cache. Optional serverData arg allows querying local client cache
|
209
|
+
def query(queryString, serverData=true)
|
210
|
+
queryService = @region.getAttributes.getPoolName && serverData ? PoolManager.find(@region).getQueryService : @cache.getQueryService
|
207
211
|
query = queryService.newQuery(queryString)
|
208
212
|
result = query.execute
|
209
213
|
selectResults?(result) ? toList(result) : result
|
210
214
|
end
|
211
|
-
|
212
|
-
private :check_required_options, :get_gemfire_properties, :get_server_attributes, :get_client_attributes,:toList, :selectResults?
|
213
215
|
end
|
214
216
|
end
|
215
217
|
end
|
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.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alan McKean
|
@@ -30,6 +30,7 @@ extensions: []
|
|
30
30
|
|
31
31
|
extra_rdoc_files:
|
32
32
|
- LICENSE
|
33
|
+
- README
|
33
34
|
- README.rdoc
|
34
35
|
files:
|
35
36
|
- .document
|
@@ -64,6 +65,7 @@ files:
|
|
64
65
|
- lib/gemfire-jruby.rb
|
65
66
|
- test/helper.rb
|
66
67
|
- test/test_gemfire-jruby.rb
|
68
|
+
- README
|
67
69
|
has_rdoc: true
|
68
70
|
homepage: http://github.com/amckean/gemfire-jruby
|
69
71
|
licenses: []
|