gemfire-jruby 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|