jruby-ehcache-rails2 1.2.0 → 1.3.0
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/.gitignore +2 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +15 -0
- data/History.txt +15 -0
- data/License.txt +23 -0
- data/Manifest.txt +37 -0
- data/PostInstall.txt +2 -0
- data/README.txt +9 -0
- data/Rakefile +13 -0
- data/VERSION +1 -0
- data/config/ehcache.yml +22 -0
- data/config/ehcache_manual_rmi.yml +27 -0
- data/examples/ehcache.xml +44 -0
- data/examples/jruby-ehcache.rb +13 -0
- data/ext/ehcache-2.4.6/ehcache-core-2.4.6.jar +0 -0
- data/ext/ehcache-2.4.6/ehcache-terracotta-2.4.6.jar +0 -0
- data/ext/ehcache-2.4.6/slf4j-api-1.6.1.jar +0 -0
- data/ext/ehcache-2.4.6/slf4j-jdk14-1.6.1.jar +0 -0
- data/ext/ehcache-2.4.6/terracotta-toolkit-1.3-runtime-3.3.0.jar +0 -0
- data/ext/marshaled-ruby-object.jar +0 -0
- data/jruby-ehcache-rails2.gemspec +27 -0
- data/jruby-ehcache-rails3.gemspec +27 -0
- data/jruby-ehcache.gemspec +23 -0
- data/lib/ehcache.rb +22 -0
- data/lib/ehcache/active_support_store.rb +12 -1
- data/lib/ehcache/cache.rb +74 -0
- data/lib/ehcache/cache_manager.rb +69 -0
- data/lib/ehcache/config.rb +51 -0
- data/lib/ehcache/element.rb +36 -0
- data/lib/ehcache/java.rb +57 -0
- data/lib/ehcache/version.rb +3 -0
- data/lib/ehcache/yaml_config.rb +251 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +82 -0
- data/spec/cache_manager_spec.rb +81 -0
- data/spec/cache_spec.rb +86 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +12 -0
- data/src/net/sf/ehcache/MarshaledRubyObject.java +15 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +17 -0
- data/test/ehcache.xml +44 -0
- data/test/ehcache.yml +67 -0
- data/test/test_cache.rb +36 -0
- data/test/test_cache_manager.rb +27 -0
- data/test/test_configuration.rb +29 -0
- data/test/test_ehcache.rb +22 -0
- data/test/test_element.rb +37 -0
- data/test/test_helper.rb +22 -0
- data/test/test_yaml_config.rb +159 -0
- data/website/index.html +141 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +138 -0
- data/website/template.html.erb +48 -0
- metadata +76 -97
data/script/console
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# File: script/console
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
+
|
5
|
+
libs = " -r irb/completion"
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/ehcache.rb'}"
|
9
|
+
puts "Loading ehcache gem"
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/destroy'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/generate'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/script/txt2html
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
GEM_NAME = 'ehcache' # what ppl will type to install your gem
|
4
|
+
RUBYFORGE_PROJECT = 'ehcache'
|
5
|
+
|
6
|
+
require 'rubygems'
|
7
|
+
begin
|
8
|
+
require 'newgem'
|
9
|
+
require 'rubyforge'
|
10
|
+
rescue LoadError
|
11
|
+
puts "\n\nGenerating the website requires the newgem RubyGem"
|
12
|
+
puts "Install: gem install newgem\n\n"
|
13
|
+
exit(1)
|
14
|
+
end
|
15
|
+
require 'redcloth'
|
16
|
+
require 'syntax/convertors/html'
|
17
|
+
require 'erb'
|
18
|
+
require File.dirname(__FILE__) + "/../lib/#{GEM_NAME}/version.rb"
|
19
|
+
|
20
|
+
version = Ehcache::VERSION::STRING
|
21
|
+
download = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
|
22
|
+
|
23
|
+
def rubyforge_project_id
|
24
|
+
RubyForge.new.autoconfig["group_ids"][RUBYFORGE_PROJECT]
|
25
|
+
end
|
26
|
+
|
27
|
+
class Fixnum
|
28
|
+
def ordinal
|
29
|
+
# teens
|
30
|
+
return 'th' if (10..19).include?(self % 100)
|
31
|
+
# others
|
32
|
+
case self % 10
|
33
|
+
when 1: return 'st'
|
34
|
+
when 2: return 'nd'
|
35
|
+
when 3: return 'rd'
|
36
|
+
else return 'th'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class Time
|
42
|
+
def pretty
|
43
|
+
return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def convert_syntax(syntax, source)
|
48
|
+
return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
|
49
|
+
end
|
50
|
+
|
51
|
+
if ARGV.length >= 1
|
52
|
+
src, template = ARGV
|
53
|
+
template ||= File.join(File.dirname(__FILE__), '/../website/template.html.erb')
|
54
|
+
else
|
55
|
+
puts("Usage: #{File.split($0).last} source.txt [template.html.erb] > output.html")
|
56
|
+
exit!
|
57
|
+
end
|
58
|
+
|
59
|
+
template = ERB.new(File.open(template).read)
|
60
|
+
|
61
|
+
title = nil
|
62
|
+
body = nil
|
63
|
+
File.open(src) do |fsrc|
|
64
|
+
title_text = fsrc.readline
|
65
|
+
body_text_template = fsrc.read
|
66
|
+
body_text = ERB.new(body_text_template).result(binding)
|
67
|
+
syntax_items = []
|
68
|
+
body_text.gsub!(%r!<(pre|code)[^>]*?syntax=['"]([^'"]+)[^>]*>(.*?)</\1>!m){
|
69
|
+
ident = syntax_items.length
|
70
|
+
element, syntax, source = $1, $2, $3
|
71
|
+
syntax_items << "<#{element} class='syntax'>#{convert_syntax(syntax, source)}</#{element}>"
|
72
|
+
"syntax-temp-#{ident}"
|
73
|
+
}
|
74
|
+
title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
|
75
|
+
body = RedCloth.new(body_text).to_html
|
76
|
+
body.gsub!(%r!(?:<pre><code>)?syntax-temp-(\d+)(?:</code></pre>)?!){ syntax_items[$1.to_i] }
|
77
|
+
end
|
78
|
+
stat = File.stat(src)
|
79
|
+
created = stat.ctime
|
80
|
+
modified = stat.mtime
|
81
|
+
|
82
|
+
$stdout << template.result(binding)
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
2
|
+
|
3
|
+
describe CacheManager do
|
4
|
+
before(:each) do
|
5
|
+
@manager = Ehcache::CacheManager.new
|
6
|
+
end
|
7
|
+
|
8
|
+
after(:each) do
|
9
|
+
@manager.shutdown
|
10
|
+
end
|
11
|
+
it "should return false if include? is called with a non-existant cache name" do
|
12
|
+
@manager.include?("zomg").should == false
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return false if exists? is called with a non-existant cache name" do
|
16
|
+
@manager.exists?("zomg").should == false
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return true if include? is called with an existant cache name" do
|
20
|
+
@manager.include?(Ehcache::Cache::PRIMARY).should == true
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return true if exists? is called with an existant cache name" do
|
24
|
+
@manager.exists?(Ehcache::Cache::PRIMARY).should == true
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return all the cache names when caches is called" do
|
28
|
+
@manager.caches.length.should == 1
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should remove the cache when remove is called with a cache name" do
|
32
|
+
@manager.remove(Ehcache::Cache::PRIMARY)
|
33
|
+
@manager.caches.length.should == 0
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should remove all the caches when remove_all is called" do
|
37
|
+
@manager.add_cache("mynewcache")
|
38
|
+
@manager.caches.length.should == 2
|
39
|
+
@manager.remove_all
|
40
|
+
@manager.caches.length.should == 0
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should add a cache when cache is called with a cache name" do
|
44
|
+
@manager.add_cache("mynewcache")
|
45
|
+
@manager.caches.length.should == 2
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should add a cache when cache is called with a cache name" do
|
49
|
+
cache = @manager.cache(Ehcache::Cache::PRIMARY)
|
50
|
+
cache.put("key", "value")
|
51
|
+
cache.get("key").should == "value"
|
52
|
+
@manager.flush_all
|
53
|
+
cache.get("key").should == nil
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe CacheManager, "customized" do
|
58
|
+
after(:each) do
|
59
|
+
@manager.shutdown
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should create a primary cache with values based on default cache" do
|
63
|
+
@manager = Ehcache::CacheManager.new
|
64
|
+
@manager.cache.max_elements.should == 10000
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should create a cache with cache named steve" do
|
68
|
+
@manager = Ehcache::CacheManager.new({"cache" => {"name" => "steve"}})
|
69
|
+
@manager.include?("steve").should == true
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should create a custom default and primary cache" do
|
73
|
+
@manager = Ehcache::CacheManager.new({
|
74
|
+
"default" => {"max_elements_in_memory" => 200000},
|
75
|
+
"cache" => {"name" => "cache", "time_to_live_seconds" => 180, "eternal" => true}
|
76
|
+
})
|
77
|
+
@manager.cache("cache").max_elements.should == 200000
|
78
|
+
@manager.cache("cache").ttl.should == 180
|
79
|
+
@manager.cache("cache").eternal?.should == true
|
80
|
+
end
|
81
|
+
end
|
data/spec/cache_spec.rb
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
2
|
+
|
3
|
+
describe Cache do
|
4
|
+
before(:each) do
|
5
|
+
@manager = Ehcache::CacheManager.new
|
6
|
+
@cache = @manager.cache
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:each) do
|
10
|
+
@manager.shutdown
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should have an alive status on creation" do
|
14
|
+
@cache.status.should == Ehcache::Status::ALIVE
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should have a shutdown status when its manager shutsdown" do
|
18
|
+
@manager.shutdown
|
19
|
+
@cache.status.should == Ehcache::Status::SHUTDOWN
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return an element value from get when given a valid key" do
|
23
|
+
@cache.put("lol", "123456")
|
24
|
+
@cache.get("lol").should == "123456"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return true when removing an element from the cache given a valid key" do
|
28
|
+
@cache.put("lol", "123456")
|
29
|
+
@cache.remove("lol").should == true
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should return false when removing an element from the cache given a valid key" do
|
33
|
+
@cache.put("lol", "123456")
|
34
|
+
@cache.remove("rofl").should == false
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should remove all elements from the cache on a call to remove_all" do
|
38
|
+
@cache.put("lol", "123456")
|
39
|
+
@cache.put("rofl", "123456")
|
40
|
+
@cache.remove_all
|
41
|
+
@cache.size.should == 0
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should return true when exist? is called when a valid key is in the cache" do
|
45
|
+
@cache.put("lol", "123456")
|
46
|
+
@cache.exist?("lol").should == true
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should return false when exist? is called when a valid key is in the cache" do
|
50
|
+
@cache.put("lol", "123456")
|
51
|
+
@cache.exist?("rofl").should == false
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should raise an EhcacheArgumentException when given an empty key" do
|
55
|
+
lambda { @cache.put("", "123456") }.should raise_error(EhcacheError)
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should raise an EhcacheArgumentException when given nil key" do
|
59
|
+
lambda { @cache.put(nil, "123456") }.should raise_error(EhcacheError)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should allow adding an element to the cache with a time to live" do
|
63
|
+
@cache.put("lol", "123456", { :ttl => 60 })
|
64
|
+
@cache.element("lol").ttl.should == 60
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should return an element from a call to element when given a valid key" do
|
68
|
+
@cache.put("lol", "123456")
|
69
|
+
@cache.element("lol").class.should == Ehcache::Element
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should return the number of elements in the cache" do
|
73
|
+
@cache.size.should == 0
|
74
|
+
@cache.put("lol", "123456")
|
75
|
+
@cache.size.should == 1
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should return all the keys in the cache" do
|
79
|
+
@cache.put("lol", "123456")
|
80
|
+
@cache.put("rofl", "123456")
|
81
|
+
@cache.keys.size.should == 2
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should return the number of elements in the memory store"
|
85
|
+
it "should return the number of elements in the disk store"
|
86
|
+
end
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spec'
|
3
|
+
require 'spec/story'
|
4
|
+
require 'java'
|
5
|
+
|
6
|
+
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. lib ehcache]))
|
7
|
+
include Ehcache
|
8
|
+
include Ehcache::Java
|
9
|
+
|
10
|
+
Spec::Runner.configure do |config|
|
11
|
+
#config.mock_with :mocha
|
12
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
package net.sf.ehcache;
|
2
|
+
|
3
|
+
import java.io.Serializable;
|
4
|
+
|
5
|
+
public class MarshaledRubyObject implements Serializable {
|
6
|
+
private byte[] bytes;
|
7
|
+
|
8
|
+
public MarshaledRubyObject(byte[] bytes) {
|
9
|
+
this.bytes = bytes;
|
10
|
+
}
|
11
|
+
|
12
|
+
public byte[] getBytes() {
|
13
|
+
return this.bytes;
|
14
|
+
}
|
15
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
desc 'Release the website and new gem version'
|
2
|
+
task :deploy => [:check_version, :website, :release] do
|
3
|
+
puts "Remember to create SVN tag:"
|
4
|
+
puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
|
5
|
+
"svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
|
6
|
+
puts "Suggested comment:"
|
7
|
+
puts "Tagging release #{CHANGES}"
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
|
11
|
+
task :local_deploy => [:website_generate, :install_gem]
|
12
|
+
|
13
|
+
task :check_version do
|
14
|
+
unless ENV['VERSION']
|
15
|
+
puts 'Must pass a VERSION=x.y.z release version'
|
16
|
+
exit
|
17
|
+
end
|
18
|
+
unless ENV['VERSION'] == VERS
|
19
|
+
puts "Please update your version.rb to match the release version, currently #{VERS}"
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
|
25
|
+
task :install_gem_no_doc => [:clean, :package] do
|
26
|
+
sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
|
27
|
+
end
|
28
|
+
|
29
|
+
namespace :manifest do
|
30
|
+
desc 'Recreate Manifest.txt to include ALL files'
|
31
|
+
task :refresh do
|
32
|
+
`rake check_manifest | patch -p0 > Manifest.txt`
|
33
|
+
end
|
34
|
+
end
|
data/tasks/website.rake
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
desc 'Generate website files'
|
2
|
+
task :website_generate => :ruby_env do
|
3
|
+
(Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
|
4
|
+
sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
desc 'Upload website files to rubyforge'
|
9
|
+
task :website_upload do
|
10
|
+
host = "#{rubyforge_username}@rubyforge.org"
|
11
|
+
remote_dir = "/var/www/gforge-projects/#{PATH}/"
|
12
|
+
local_dir = 'website'
|
13
|
+
sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
|
14
|
+
end
|
15
|
+
|
16
|
+
desc 'Generate and upload website files'
|
17
|
+
task :website => [:website_generate, :website_upload, :publish_docs]
|
data/test/ehcache.xml
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
|
3
|
+
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
4
|
+
xsi:noNamespaceSchemaLocation="../../main/config/ehcache.xsd">
|
5
|
+
|
6
|
+
<!-- Disable for test ehcache.xml. Should go to the same place. -->
|
7
|
+
<diskStore path="java.io.tmpdir"/>
|
8
|
+
|
9
|
+
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
|
10
|
+
properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1, multicastGroupPort=4446, timeToLive=0"/>
|
11
|
+
|
12
|
+
|
13
|
+
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
|
14
|
+
properties="hostName=, port=, socketTimeoutMillis="/>
|
15
|
+
|
16
|
+
|
17
|
+
<defaultCache
|
18
|
+
name="default"
|
19
|
+
maxElementsInMemory="10"
|
20
|
+
eternal="false"
|
21
|
+
timeToIdleSeconds="5"
|
22
|
+
timeToLiveSeconds="10"
|
23
|
+
overflowToDisk="true"
|
24
|
+
/>
|
25
|
+
|
26
|
+
|
27
|
+
<!-- Sample cache named sampleCache1 -->
|
28
|
+
<cache name="sampleCache1"
|
29
|
+
maxElementsInMemory="10000"
|
30
|
+
maxElementsOnDisk="1000"
|
31
|
+
eternal="false"
|
32
|
+
timeToIdleSeconds="360"
|
33
|
+
timeToLiveSeconds="1000"
|
34
|
+
overflowToDisk="true">
|
35
|
+
</cache>
|
36
|
+
|
37
|
+
<!-- Sample cache named sampleCache2. Is eternal. Is diskPersistent but does not overflow to disk -->
|
38
|
+
<cache name="sampleCache2"
|
39
|
+
maxElementsInMemory="1000"
|
40
|
+
eternal="true"
|
41
|
+
overflowToDisk="false"
|
42
|
+
diskPersistent="true"
|
43
|
+
/>
|
44
|
+
</ehcache>
|
data/test/ehcache.yml
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
name: testing
|
2
|
+
update_check: false
|
3
|
+
monitoring: autodetect
|
4
|
+
dynamic_config: true
|
5
|
+
|
6
|
+
disk_store:
|
7
|
+
path: java.io.tmpdir
|
8
|
+
|
9
|
+
transaction_manager:
|
10
|
+
class: net.sf.ehcache.transaction.manager.DefaultTransactionManagerLookup
|
11
|
+
properties: jndiName=java:/TransactionManager
|
12
|
+
property_separator: ";"
|
13
|
+
|
14
|
+
peer_providers:
|
15
|
+
- class: net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory
|
16
|
+
properties: peerDiscovery=automatic,multicastGroupAddress=230.0.0.1,multicastGroupPort=4446,timeToLive=1
|
17
|
+
property_separator: ","
|
18
|
+
|
19
|
+
peer_listeners:
|
20
|
+
- class: net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory
|
21
|
+
|
22
|
+
default_cache:
|
23
|
+
max_elements_in_memory: 10000
|
24
|
+
time_to_live_seconds: 0
|
25
|
+
time_to_idle_seconds: 0
|
26
|
+
overflow_to_disk: true
|
27
|
+
eternal: false
|
28
|
+
disk_spool_buffer_size_mb: 30
|
29
|
+
disk_persistent: false
|
30
|
+
disk_expiry_thread_interval_seconds: 120
|
31
|
+
memory_store_eviction_policy: LRU
|
32
|
+
|
33
|
+
caches:
|
34
|
+
# Sample cache named sampleCache1
|
35
|
+
- name: sampleCache1
|
36
|
+
max_elements_in_memory: 10000
|
37
|
+
max_elements_on_disk: 1000
|
38
|
+
eternal: false
|
39
|
+
time_to_idle_seconds: 360
|
40
|
+
time_to_live_seconds: 1000
|
41
|
+
overflow_to_disk: true
|
42
|
+
|
43
|
+
#Sample cache named sampleCache2. Is eternal. Is diskPersistent but does not overflow to disk
|
44
|
+
- name: sampleCache2
|
45
|
+
max_elements_in_memory: 1000
|
46
|
+
eternal: true
|
47
|
+
overflow_to_disk: false
|
48
|
+
disk_persistent: true
|
49
|
+
|
50
|
+
- name: sampleCacheWithCacheConfigurations
|
51
|
+
max_elements_in_memory: 10
|
52
|
+
eternal: false
|
53
|
+
time_to_idle_seconds: 100
|
54
|
+
time_to_live_seconds: 100
|
55
|
+
overflow_to_disk: false
|
56
|
+
bootstrap_loader:
|
57
|
+
class: net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory
|
58
|
+
properties: "bootstrapAsynchronously=true, maximumChunkSizeBytes=5000000"
|
59
|
+
property_separator: ","
|
60
|
+
event_listeners:
|
61
|
+
- class: net.sf.ehcache.distribution.RMICacheReplicatorFactory
|
62
|
+
properties: "replicateAsynchronously=false, replicatePuts=false, replicatePutsViaCopy=false, replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=false"
|
63
|
+
- class: net.sf.ehcache.distribution.RMICacheReplicatorFactory
|
64
|
+
properties: "replicateAsynchronously=false, replicatePuts=false, replicatePutsViaCopy=false, replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=false"
|
65
|
+
# extensions:
|
66
|
+
# - class: com.example.FileWatchingCacheRefresherExtensionFactory
|
67
|
+
# properties: "refreshIntervalMillis=18000, loaderTimeout=3000, flushPeriod=whatever, someOtherProperty=someValue"
|