jretlang 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. data/.gitignore +3 -0
  2. data/Rakefile +33 -0
  3. data/VERSION +1 -0
  4. data/changelog +29 -0
  5. data/jretlang.gemspec +154 -0
  6. data/lib/jretlang/channel.rb +35 -0
  7. data/lib/jretlang/fiber.rb +15 -0
  8. data/lib/jretlang/latch.rb +10 -0
  9. data/lib/jretlang.rb +22 -0
  10. data/readme +1 -0
  11. data/test/unit/test_examples.rb +142 -0
  12. data/test/unit/unit_test_helper.rb +6 -0
  13. data/vendor/jetlang-0.2.0/jetlang-0.2.0-sources.jar +0 -0
  14. data/vendor/jetlang-0.2.0/site/apidocs/allclasses-frame.html +106 -0
  15. data/vendor/jetlang-0.2.0/site/apidocs/allclasses-noframe.html +106 -0
  16. data/vendor/jetlang-0.2.0/site/apidocs/constant-values.html +147 -0
  17. data/vendor/jetlang-0.2.0/site/apidocs/deprecated-list.html +147 -0
  18. data/vendor/jetlang-0.2.0/site/apidocs/help-doc.html +224 -0
  19. data/vendor/jetlang-0.2.0/site/apidocs/index-all.html +677 -0
  20. data/vendor/jetlang-0.2.0/site/apidocs/index.html +40 -0
  21. data/vendor/jetlang-0.2.0/site/apidocs/options +19 -0
  22. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/AsyncRequest.html +376 -0
  23. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/BaseSubscription.html +332 -0
  24. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/BatchSubscriber.html +303 -0
  25. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Channel.html +207 -0
  26. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/ChannelSubscription.html +295 -0
  27. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Converter.html +211 -0
  28. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/KeyedBatchSubscriber.html +307 -0
  29. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/LastSubscriber.html +304 -0
  30. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/MemoryChannel.html +391 -0
  31. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/MemoryRequestChannel.html +319 -0
  32. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Publisher.html +219 -0
  33. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Request.html +251 -0
  34. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/RequestChannel.html +264 -0
  35. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Session.html +173 -0
  36. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/SessionClosed.html +230 -0
  37. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Subscribable.html +230 -0
  38. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Subscriber.html +243 -0
  39. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/SubscriberList.html +334 -0
  40. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/AsyncRequest.html +191 -0
  41. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/BaseSubscription.html +205 -0
  42. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/BatchSubscriber.html +145 -0
  43. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Channel.html +181 -0
  44. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/ChannelSubscription.html +145 -0
  45. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Converter.html +194 -0
  46. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/KeyedBatchSubscriber.html +145 -0
  47. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/LastSubscriber.html +145 -0
  48. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/MemoryChannel.html +145 -0
  49. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/MemoryRequestChannel.html +145 -0
  50. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Publisher.html +197 -0
  51. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Request.html +211 -0
  52. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/RequestChannel.html +240 -0
  53. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Session.html +189 -0
  54. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/SessionClosed.html +193 -0
  55. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Subscribable.html +237 -0
  56. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Subscriber.html +197 -0
  57. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/SubscriberList.html +145 -0
  58. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/package-frame.html +76 -0
  59. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/package-summary.html +245 -0
  60. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/package-tree.html +172 -0
  61. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/package-use.html +237 -0
  62. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/BatchExecutor.html +219 -0
  63. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/BatchExecutorImpl.html +267 -0
  64. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/Callback.html +217 -0
  65. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/Disposable.html +219 -0
  66. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/DisposingExecutor.html +286 -0
  67. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/EventBuffer.html +352 -0
  68. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/EventReader.html +234 -0
  69. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/Filter.html +216 -0
  70. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/RunnableBlockingQueue.html +337 -0
  71. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/RunnableExecutor.html +225 -0
  72. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/RunnableExecutorImpl.html +404 -0
  73. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/Scheduler.html +280 -0
  74. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/SchedulerImpl.html +354 -0
  75. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/SynchronousDisposingExecutor.html +391 -0
  76. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/SynchronousExecutor.html +307 -0
  77. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/BatchExecutor.html +224 -0
  78. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/BatchExecutorImpl.html +145 -0
  79. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/Callback.html +499 -0
  80. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/Disposable.html +669 -0
  81. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/DisposingExecutor.html +440 -0
  82. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/EventBuffer.html +197 -0
  83. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/EventReader.html +206 -0
  84. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/Filter.html +219 -0
  85. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/RunnableBlockingQueue.html +145 -0
  86. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/RunnableExecutor.html +218 -0
  87. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/RunnableExecutorImpl.html +145 -0
  88. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/Scheduler.html +235 -0
  89. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/SchedulerImpl.html +145 -0
  90. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/SynchronousDisposingExecutor.html +145 -0
  91. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/SynchronousExecutor.html +145 -0
  92. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/package-frame.html +70 -0
  93. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/package-summary.html +226 -0
  94. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/package-tree.html +176 -0
  95. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/package-use.html +289 -0
  96. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/Fiber.html +266 -0
  97. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/FiberStub.ScheduledEvent.html +419 -0
  98. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/FiberStub.html +599 -0
  99. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/PoolFiberFactory.html +321 -0
  100. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/ThreadFiber.html +525 -0
  101. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/Fiber.html +346 -0
  102. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/FiberStub.ScheduledEvent.html +181 -0
  103. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/FiberStub.html +145 -0
  104. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/PoolFiberFactory.html +145 -0
  105. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/ThreadFiber.html +145 -0
  106. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/package-frame.html +50 -0
  107. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/package-summary.html +185 -0
  108. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/package-tree.html +172 -0
  109. data/vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/package-use.html +198 -0
  110. data/vendor/jetlang-0.2.0/site/apidocs/overview-frame.html +47 -0
  111. data/vendor/jetlang-0.2.0/site/apidocs/overview-summary.html +165 -0
  112. data/vendor/jetlang-0.2.0/site/apidocs/overview-tree.html +198 -0
  113. data/vendor/jetlang-0.2.0/site/apidocs/package-list +3 -0
  114. data/vendor/jetlang-0.2.0/site/apidocs/packages +3 -0
  115. data/vendor/jetlang-0.2.0/site/apidocs/resources/inherit.gif +0 -0
  116. data/vendor/jetlang-0.2.0/site/apidocs/stylesheet.css +29 -0
  117. data/vendor/jetlang-0.2.0.jar +0 -0
  118. metadata +172 -0
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ *.gem
2
+ *~
3
+ TAGS
data/Rakefile ADDED
@@ -0,0 +1,33 @@
1
+ require 'rubygems'
2
+ require 'fileutils'
3
+ require 'ftools'
4
+ require 'rake/testtask'
5
+ require 'jeweler'
6
+ include FileUtils
7
+
8
+ task :default => :test
9
+
10
+ Jeweler::Tasks.new do |gemspec|
11
+ gemspec.name = "jretlang"
12
+ gemspec.summary = "A JRuby package of jretlang"
13
+ gemspec.description = gemspec.summary
14
+ gemspec.email = "reevesg@pobox.com"
15
+ gemspec.homepage = "http://github.com/reevesg/jretlang"
16
+ gemspec.authors = ["Gareth Reeves"]
17
+ gemspec.rubyforge_project = "jretlang"
18
+ end
19
+
20
+ Jeweler::RubyforgeTasks.new do |rubyforge|
21
+ end
22
+
23
+
24
+ Rake::TestTask.new do |t|
25
+ t.libs << "test/unit"
26
+ t.test_files = FileList['test/unit/**/test*.rb']
27
+ end
28
+
29
+ desc "Update the change log."
30
+ task :change_log do
31
+ %x[git log --pretty=short --grep=release > changelog]
32
+ %x[git commit changelog --amend --reuse-message HEAD]
33
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.2.2
data/changelog ADDED
@@ -0,0 +1,29 @@
1
+ commit da32dcd9da5cf9c8e3a7edc76465d032e5ca433d
2
+ Author: Gareth Reeves <greeves@drwholdings.com>
3
+
4
+ in this release (0.2.2)
5
+ -improved schedule method names on Fiber
6
+
7
+ commit e6d7e3a6fb4a52ee89876fecfd65f9ef2a46b711
8
+ Author: Gareth Reeves <greeves@drwholdings.com>
9
+
10
+ in this release (0.2.1)
11
+ - fixed gem problems (hopefully)
12
+
13
+ commit ab615acde9742dac47104a42b5a6b92c7c308272
14
+ Author: Gareth Reeves <greeves@drwholdings.com>
15
+
16
+ in this release (0.2.0)
17
+ - wrapped channel and fiber to give them more of a ruby like interface
18
+
19
+ commit db7b77419317c18c664c4fe0858307ab646a2762
20
+ Author: Gareth Reeves <greeves@drwholdings.com>
21
+
22
+ in this release (0.1.2)
23
+ - nothing, trying gem build
24
+
25
+ commit a85424f26dd0af757a78dc4c066fc0eb328cc377
26
+ Author: Gareth Reeves <greeves@drwholdings.com>
27
+
28
+ in this release (0.1.1)
29
+ - everything (is the first release)
data/jretlang.gemspec ADDED
@@ -0,0 +1,154 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{jretlang}
8
+ s.version = "0.2.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Gareth Reeves"]
12
+ s.date = %q{2009-10-16}
13
+ s.description = %q{A JRuby package of jretlang}
14
+ s.email = %q{reevesg@pobox.com}
15
+ s.files = [
16
+ ".gitignore",
17
+ "Rakefile",
18
+ "VERSION",
19
+ "changelog",
20
+ "jretlang.gemspec",
21
+ "lib/jretlang.rb",
22
+ "lib/jretlang/channel.rb",
23
+ "lib/jretlang/fiber.rb",
24
+ "lib/jretlang/latch.rb",
25
+ "readme",
26
+ "test/unit/test_examples.rb",
27
+ "test/unit/unit_test_helper.rb",
28
+ "vendor/jetlang-0.2.0.jar",
29
+ "vendor/jetlang-0.2.0/jetlang-0.2.0-sources.jar",
30
+ "vendor/jetlang-0.2.0/site/apidocs/allclasses-frame.html",
31
+ "vendor/jetlang-0.2.0/site/apidocs/allclasses-noframe.html",
32
+ "vendor/jetlang-0.2.0/site/apidocs/constant-values.html",
33
+ "vendor/jetlang-0.2.0/site/apidocs/deprecated-list.html",
34
+ "vendor/jetlang-0.2.0/site/apidocs/help-doc.html",
35
+ "vendor/jetlang-0.2.0/site/apidocs/index-all.html",
36
+ "vendor/jetlang-0.2.0/site/apidocs/index.html",
37
+ "vendor/jetlang-0.2.0/site/apidocs/options",
38
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/AsyncRequest.html",
39
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/BaseSubscription.html",
40
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/BatchSubscriber.html",
41
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Channel.html",
42
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/ChannelSubscription.html",
43
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Converter.html",
44
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/KeyedBatchSubscriber.html",
45
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/LastSubscriber.html",
46
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/MemoryChannel.html",
47
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/MemoryRequestChannel.html",
48
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Publisher.html",
49
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Request.html",
50
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/RequestChannel.html",
51
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Session.html",
52
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/SessionClosed.html",
53
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Subscribable.html",
54
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/Subscriber.html",
55
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/SubscriberList.html",
56
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/AsyncRequest.html",
57
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/BaseSubscription.html",
58
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/BatchSubscriber.html",
59
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Channel.html",
60
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/ChannelSubscription.html",
61
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Converter.html",
62
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/KeyedBatchSubscriber.html",
63
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/LastSubscriber.html",
64
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/MemoryChannel.html",
65
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/MemoryRequestChannel.html",
66
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Publisher.html",
67
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Request.html",
68
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/RequestChannel.html",
69
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Session.html",
70
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/SessionClosed.html",
71
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Subscribable.html",
72
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/Subscriber.html",
73
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/class-use/SubscriberList.html",
74
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/package-frame.html",
75
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/package-summary.html",
76
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/package-tree.html",
77
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/channels/package-use.html",
78
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/BatchExecutor.html",
79
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/BatchExecutorImpl.html",
80
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/Callback.html",
81
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/Disposable.html",
82
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/DisposingExecutor.html",
83
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/EventBuffer.html",
84
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/EventReader.html",
85
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/Filter.html",
86
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/RunnableBlockingQueue.html",
87
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/RunnableExecutor.html",
88
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/RunnableExecutorImpl.html",
89
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/Scheduler.html",
90
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/SchedulerImpl.html",
91
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/SynchronousDisposingExecutor.html",
92
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/SynchronousExecutor.html",
93
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/BatchExecutor.html",
94
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/BatchExecutorImpl.html",
95
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/Callback.html",
96
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/Disposable.html",
97
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/DisposingExecutor.html",
98
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/EventBuffer.html",
99
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/EventReader.html",
100
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/Filter.html",
101
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/RunnableBlockingQueue.html",
102
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/RunnableExecutor.html",
103
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/RunnableExecutorImpl.html",
104
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/Scheduler.html",
105
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/SchedulerImpl.html",
106
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/SynchronousDisposingExecutor.html",
107
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/class-use/SynchronousExecutor.html",
108
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/package-frame.html",
109
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/package-summary.html",
110
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/package-tree.html",
111
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/core/package-use.html",
112
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/Fiber.html",
113
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/FiberStub.ScheduledEvent.html",
114
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/FiberStub.html",
115
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/PoolFiberFactory.html",
116
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/ThreadFiber.html",
117
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/Fiber.html",
118
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/FiberStub.ScheduledEvent.html",
119
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/FiberStub.html",
120
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/PoolFiberFactory.html",
121
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/class-use/ThreadFiber.html",
122
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/package-frame.html",
123
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/package-summary.html",
124
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/package-tree.html",
125
+ "vendor/jetlang-0.2.0/site/apidocs/org/jetlang/fibers/package-use.html",
126
+ "vendor/jetlang-0.2.0/site/apidocs/overview-frame.html",
127
+ "vendor/jetlang-0.2.0/site/apidocs/overview-summary.html",
128
+ "vendor/jetlang-0.2.0/site/apidocs/overview-tree.html",
129
+ "vendor/jetlang-0.2.0/site/apidocs/package-list",
130
+ "vendor/jetlang-0.2.0/site/apidocs/packages",
131
+ "vendor/jetlang-0.2.0/site/apidocs/resources/inherit.gif",
132
+ "vendor/jetlang-0.2.0/site/apidocs/stylesheet.css"
133
+ ]
134
+ s.homepage = %q{http://github.com/reevesg/jretlang}
135
+ s.rdoc_options = ["--charset=UTF-8"]
136
+ s.require_paths = ["lib"]
137
+ s.rubyforge_project = %q{jretlang}
138
+ s.rubygems_version = %q{1.3.5}
139
+ s.summary = %q{A JRuby package of jretlang}
140
+ s.test_files = [
141
+ "test/unit/test_examples.rb",
142
+ "test/unit/unit_test_helper.rb"
143
+ ]
144
+
145
+ if s.respond_to? :specification_version then
146
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
147
+ s.specification_version = 3
148
+
149
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
150
+ else
151
+ end
152
+ else
153
+ end
154
+ end
@@ -0,0 +1,35 @@
1
+ class JRL::Channel < SimpleDelegator
2
+ def initialize
3
+ @mc = JRL::Channels::MemoryChannel.new
4
+ super( @mc )
5
+ end
6
+
7
+ def subscribe_on_fiber( fiber, &block )
8
+ @mc.subscribe( strip_delegate( fiber ), &block )
9
+ end
10
+
11
+ def subscribe_on_fiber_with_filter( fiber, filter_lambda, &block )
12
+ subscription = JRL::Channels::ChannelSubscription.new( strip_delegate( fiber ), block, filter_lambda )
13
+ @mc.subscribe( subscription )
14
+ end
15
+
16
+ def subscribe_on_fiber_with_batch( fiber, time, time_unit=JRL::Concurrent::TimeUnit::SECONDS, &block )
17
+ batch = JRL::Channels::BatchSubscriber.new( strip_delegate( fiber ), block, time, time_unit )
18
+ @mc.subscribe( batch )
19
+ end
20
+
21
+ def subscribe_on_fiber_with_batch_and_key( fiber, key_lambda, time, time_unit=JRL::Concurrent::TimeUnit::SECONDS, &block )
22
+ batch = JRL::Channels::KeyedBatchSubscriber.new( strip_delegate( fiber ), block, time, time_unit, key_lambda )
23
+ @mc.subscribe( batch )
24
+ end
25
+
26
+ private
27
+ def strip_delegate( fiber )
28
+ case fiber
29
+ when JRL::Fiber
30
+ fiber.__getobj__
31
+ else
32
+ fiber
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,15 @@
1
+ class JRL::Fiber < SimpleDelegator
2
+ def initialize
3
+ @f = JRL::Fibers::ThreadFiber.new
4
+ super( @f )
5
+ end
6
+
7
+ def schedule_one_time( delay, time_unit=JRL::Concurrent::TimeUnit::SECONDS, &block )
8
+ @f.schedule( block, delay, time_unit )
9
+ end
10
+
11
+ def schedule_repeating( delay, interval, time_unit=JRL::Concurrent::TimeUnit::SECONDS, &block )
12
+ @f.schedule_with_fixed_delay( block, delay, interval, time_unit )
13
+ end
14
+ end
15
+
@@ -0,0 +1,10 @@
1
+ class JRL::Concurrent::Latch < SimpleDelegator
2
+ def initialize( count )
3
+ @l = JRL::Concurrent::CountDownLatch.new( count )
4
+ super( @l )
5
+ end
6
+
7
+ def await( time, time_unit = JRL::Concurrent::TimeUnit::SECONDS )
8
+ @l.await( time, time_unit )
9
+ end
10
+ end
data/lib/jretlang.rb ADDED
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'delegate'
3
+
4
+ require File.join( File.dirname(__FILE__), "..", "vendor", "jetlang-0.2.0.jar" )
5
+
6
+ module JRL
7
+ include_package 'org.jetlang.core'
8
+
9
+ module Channels
10
+ include_package 'org.jetlang.channels'
11
+ end
12
+ module Fibers
13
+ include_package 'org.jetlang.fibers'
14
+ end
15
+ module Concurrent
16
+ include_package 'java.util.concurrent'
17
+ end
18
+ end
19
+
20
+ require 'jretlang/latch'
21
+ require 'jretlang/channel'
22
+ require 'jretlang/fiber'
data/readme ADDED
@@ -0,0 +1 @@
1
+ jretlang is a packaging and thin wrapping of jetlang. Thats it.
@@ -0,0 +1,142 @@
1
+ require File.dirname(__FILE__) + '/unit_test_helper'
2
+
3
+ class TestChannel < Test::Unit::TestCase
4
+ def setup
5
+ @fiber = JRL::Fiber.new
6
+ @channel = JRL::Channel.new
7
+ @fiber.start
8
+ end
9
+
10
+ def latch( count )
11
+ JRL::Concurrent::Latch.new( count )
12
+ end
13
+
14
+ def teardown
15
+ @fiber.dispose
16
+ end
17
+
18
+ def test_pub_sub
19
+ l = latch( 1 )
20
+
21
+ result = nil
22
+ @channel.subscribe_on_fiber( @fiber ) { |msg| result = msg; l.count_down }
23
+ @channel.publish "Hello"
24
+
25
+ assert l.await( 1 )
26
+ assert_equal "Hello", result
27
+ end
28
+
29
+ def test_pub_sub_with_thread_pool
30
+ service = JRL::Concurrent::Executors.newCachedThreadPool();
31
+ fact = JRL::Fibers::PoolFiberFactory.new(service);
32
+ fiber_from_fact = fact.create
33
+ fiber_from_fact.start
34
+ l = latch( 1 )
35
+
36
+ result = nil
37
+ @channel.subscribe_on_fiber( fiber_from_fact ) { |msg| result = msg; l.count_down }
38
+ @channel.publish "Hello"
39
+
40
+ l.await( 1.5 )
41
+ assert_equal "Hello", result
42
+
43
+ fact.dispose
44
+ fiber_from_fact.dispose
45
+ service.shutdown
46
+ end
47
+
48
+ def test_fiber_schedule
49
+ l = latch( 1 )
50
+ @fiber.schedule_one_time( 0.01 ) { l.count_down }
51
+ assert l.await( 1 )
52
+ end
53
+
54
+ def test_fiber_schedule_recurring
55
+ l = latch( 5 )
56
+ @fiber.schedule_repeating( 1, 2, JRL::Concurrent::TimeUnit::MILLISECONDS ) { l.count_down }
57
+ assert l.await( 1 )
58
+ end
59
+
60
+ def test_unsubscribe
61
+ l1 = latch( 1 )
62
+ l2 = latch( 2 )
63
+ unsub = @channel.subscribe_on_fiber( @fiber ) { |msg| l1.count_down; l2.count_down }
64
+
65
+ @channel.publish( "one" )
66
+ assert l1.await( 5 )
67
+ unsub.dispose
68
+ @channel.publish( "two" )
69
+ assert !l2.await( 0.01 )
70
+ end
71
+
72
+ def test_pub_sub_with_filter
73
+ l = latch( 2 )
74
+ results = []
75
+ filter = lambda { |msg| msg % 2 == 0 }
76
+
77
+ @channel.subscribe_on_fiber_with_filter( @fiber, filter ) { |msg| results << msg; l.count_down }
78
+ 4.times{ |i| @channel.publish( i ) }
79
+
80
+ assert l.await( 1 )
81
+ assert_equal [0,2], results
82
+ end
83
+
84
+ def test_batching
85
+ l = latch( 10 )
86
+ total_msgs = 0
87
+ batches = []
88
+ @channel.subscribe_on_fiber_with_batch( @fiber, 0 ) do |msg|
89
+ batches << msg
90
+ total_msgs += msg.size
91
+ msg.size.times{ l.count_down }
92
+ end
93
+
94
+ 10.times{ |i| @channel.publish( i ) }
95
+
96
+ assert l.await( 1 )
97
+ assert 10 > batches.size
98
+ assert_equal 10, total_msgs
99
+ end
100
+
101
+ def test_batching_with_key
102
+ l = latch( 9 )
103
+ total_msgs = 0
104
+ batches = []
105
+ key_resolver = lambda { |msg| msg.to_s }
106
+ @channel.subscribe_on_fiber_with_batch_and_key( @fiber, key_resolver, 0 ) do |msg|
107
+ batches << msg
108
+ total_msgs += msg.size
109
+ msg.size.times{ l.count_down }
110
+ end
111
+
112
+ [0,1,2,3,4,5,6,7,8,8].each{ |i| @channel.publish( i ) }
113
+
114
+ assert 9 > batches.size
115
+ assert l.await( 1 )
116
+ assert_equal 9, total_msgs
117
+ end
118
+
119
+ def test_simple_request_response
120
+ reply_fiber = JRL::Fibers::ThreadFiber.new
121
+ reply_fiber.start
122
+ request_channel = JRL::Channels::MemoryRequestChannel.new
123
+ l = latch( 1 )
124
+
125
+ request_channel.subscribe( reply_fiber ) { |msg| assert_equal 'hello', msg.get_request; msg.reply( 1 ) }
126
+
127
+ response_callback = lambda { |msg| assert_equal 1, msg; l.count_down }
128
+
129
+ JRL::Channels::AsyncRequest.with_one_reply( @fiber.__getobj__, request_channel, 'hello', response_callback )
130
+ assert l.await( 1 )
131
+
132
+ reply_fiber.dispose
133
+ end
134
+
135
+ def test_request_reply_blocking
136
+ reply_queue = JRL::Concurrent::ArrayBlockingQueue.new( 1 )
137
+ @channel.subscribe_on_fiber( @fiber ) { |queue| queue.put( 'hello' ) }
138
+ @channel.publish( reply_queue )
139
+
140
+ assert_equal "hello", reply_queue.poll( 1, JRL::Concurrent::TimeUnit::SECONDS )
141
+ end
142
+ end
@@ -0,0 +1,6 @@
1
+ require 'java'
2
+ require File.join( File.dirname(__FILE__), "..", "..", "lib", "jretlang" )
3
+
4
+ require 'rubygems'
5
+ require 'test/unit'
6
+ require 'mocha'
@@ -0,0 +1,106 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+ <!--NewPage-->
3
+ <HTML>
4
+ <HEAD>
5
+ <!-- Generated by javadoc (build 1.6.0_15) on Sat Sep 05 11:49:22 CDT 2009 -->
6
+ <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
7
+ <TITLE>
8
+ All Classes (Jetlang 0.2.0 API)
9
+ </TITLE>
10
+
11
+ <META NAME="date" CONTENT="2009-09-05">
12
+
13
+ <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
14
+
15
+
16
+ </HEAD>
17
+
18
+ <BODY BGCOLOR="white">
19
+ <FONT size="+1" CLASS="FrameHeadingFont">
20
+ <B>All Classes</B></FONT>
21
+ <BR>
22
+
23
+ <TABLE BORDER="0" WIDTH="100%" SUMMARY="">
24
+ <TR>
25
+ <TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/jetlang/channels/AsyncRequest.html" title="class in org.jetlang.channels" target="classFrame">AsyncRequest</A>
26
+ <BR>
27
+ <A HREF="org/jetlang/channels/BaseSubscription.html" title="class in org.jetlang.channels" target="classFrame">BaseSubscription</A>
28
+ <BR>
29
+ <A HREF="org/jetlang/core/BatchExecutor.html" title="interface in org.jetlang.core" target="classFrame"><I>BatchExecutor</I></A>
30
+ <BR>
31
+ <A HREF="org/jetlang/core/BatchExecutorImpl.html" title="class in org.jetlang.core" target="classFrame">BatchExecutorImpl</A>
32
+ <BR>
33
+ <A HREF="org/jetlang/channels/BatchSubscriber.html" title="class in org.jetlang.channels" target="classFrame">BatchSubscriber</A>
34
+ <BR>
35
+ <A HREF="org/jetlang/core/Callback.html" title="interface in org.jetlang.core" target="classFrame"><I>Callback</I></A>
36
+ <BR>
37
+ <A HREF="org/jetlang/channels/Channel.html" title="interface in org.jetlang.channels" target="classFrame"><I>Channel</I></A>
38
+ <BR>
39
+ <A HREF="org/jetlang/channels/ChannelSubscription.html" title="class in org.jetlang.channels" target="classFrame">ChannelSubscription</A>
40
+ <BR>
41
+ <A HREF="org/jetlang/channels/Converter.html" title="interface in org.jetlang.channels" target="classFrame"><I>Converter</I></A>
42
+ <BR>
43
+ <A HREF="org/jetlang/core/Disposable.html" title="interface in org.jetlang.core" target="classFrame"><I>Disposable</I></A>
44
+ <BR>
45
+ <A HREF="org/jetlang/core/DisposingExecutor.html" title="interface in org.jetlang.core" target="classFrame"><I>DisposingExecutor</I></A>
46
+ <BR>
47
+ <A HREF="org/jetlang/core/EventBuffer.html" title="class in org.jetlang.core" target="classFrame">EventBuffer</A>
48
+ <BR>
49
+ <A HREF="org/jetlang/core/EventReader.html" title="interface in org.jetlang.core" target="classFrame"><I>EventReader</I></A>
50
+ <BR>
51
+ <A HREF="org/jetlang/fibers/Fiber.html" title="interface in org.jetlang.fibers" target="classFrame"><I>Fiber</I></A>
52
+ <BR>
53
+ <A HREF="org/jetlang/fibers/FiberStub.html" title="class in org.jetlang.fibers" target="classFrame">FiberStub</A>
54
+ <BR>
55
+ <A HREF="org/jetlang/fibers/FiberStub.ScheduledEvent.html" title="class in org.jetlang.fibers" target="classFrame">FiberStub.ScheduledEvent</A>
56
+ <BR>
57
+ <A HREF="org/jetlang/core/Filter.html" title="interface in org.jetlang.core" target="classFrame"><I>Filter</I></A>
58
+ <BR>
59
+ <A HREF="org/jetlang/channels/KeyedBatchSubscriber.html" title="class in org.jetlang.channels" target="classFrame">KeyedBatchSubscriber</A>
60
+ <BR>
61
+ <A HREF="org/jetlang/channels/LastSubscriber.html" title="class in org.jetlang.channels" target="classFrame">LastSubscriber</A>
62
+ <BR>
63
+ <A HREF="org/jetlang/channels/MemoryChannel.html" title="class in org.jetlang.channels" target="classFrame">MemoryChannel</A>
64
+ <BR>
65
+ <A HREF="org/jetlang/channels/MemoryRequestChannel.html" title="class in org.jetlang.channels" target="classFrame">MemoryRequestChannel</A>
66
+ <BR>
67
+ <A HREF="org/jetlang/fibers/PoolFiberFactory.html" title="class in org.jetlang.fibers" target="classFrame">PoolFiberFactory</A>
68
+ <BR>
69
+ <A HREF="org/jetlang/channels/Publisher.html" title="interface in org.jetlang.channels" target="classFrame"><I>Publisher</I></A>
70
+ <BR>
71
+ <A HREF="org/jetlang/channels/Request.html" title="interface in org.jetlang.channels" target="classFrame"><I>Request</I></A>
72
+ <BR>
73
+ <A HREF="org/jetlang/channels/RequestChannel.html" title="interface in org.jetlang.channels" target="classFrame"><I>RequestChannel</I></A>
74
+ <BR>
75
+ <A HREF="org/jetlang/core/RunnableBlockingQueue.html" title="class in org.jetlang.core" target="classFrame">RunnableBlockingQueue</A>
76
+ <BR>
77
+ <A HREF="org/jetlang/core/RunnableExecutor.html" title="interface in org.jetlang.core" target="classFrame"><I>RunnableExecutor</I></A>
78
+ <BR>
79
+ <A HREF="org/jetlang/core/RunnableExecutorImpl.html" title="class in org.jetlang.core" target="classFrame">RunnableExecutorImpl</A>
80
+ <BR>
81
+ <A HREF="org/jetlang/core/Scheduler.html" title="interface in org.jetlang.core" target="classFrame"><I>Scheduler</I></A>
82
+ <BR>
83
+ <A HREF="org/jetlang/core/SchedulerImpl.html" title="class in org.jetlang.core" target="classFrame">SchedulerImpl</A>
84
+ <BR>
85
+ <A HREF="org/jetlang/channels/Session.html" title="interface in org.jetlang.channels" target="classFrame"><I>Session</I></A>
86
+ <BR>
87
+ <A HREF="org/jetlang/channels/SessionClosed.html" title="interface in org.jetlang.channels" target="classFrame"><I>SessionClosed</I></A>
88
+ <BR>
89
+ <A HREF="org/jetlang/channels/Subscribable.html" title="interface in org.jetlang.channels" target="classFrame"><I>Subscribable</I></A>
90
+ <BR>
91
+ <A HREF="org/jetlang/channels/Subscriber.html" title="interface in org.jetlang.channels" target="classFrame"><I>Subscriber</I></A>
92
+ <BR>
93
+ <A HREF="org/jetlang/channels/SubscriberList.html" title="class in org.jetlang.channels" target="classFrame">SubscriberList</A>
94
+ <BR>
95
+ <A HREF="org/jetlang/core/SynchronousDisposingExecutor.html" title="class in org.jetlang.core" target="classFrame">SynchronousDisposingExecutor</A>
96
+ <BR>
97
+ <A HREF="org/jetlang/core/SynchronousExecutor.html" title="class in org.jetlang.core" target="classFrame">SynchronousExecutor</A>
98
+ <BR>
99
+ <A HREF="org/jetlang/fibers/ThreadFiber.html" title="class in org.jetlang.fibers" target="classFrame">ThreadFiber</A>
100
+ <BR>
101
+ </FONT></TD>
102
+ </TR>
103
+ </TABLE>
104
+
105
+ </BODY>
106
+ </HTML>