jubilee 2.1.0.beta-java → 2.1.0.rc1-java
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +13 -1
- data/README.md +65 -54
- data/Rakefile +23 -21
- data/examples/chatapp/Gemfile +1 -2
- data/examples/chatapp/Gemfile.lock +2 -2
- data/examples/chatapp/README.md +14 -2
- data/examples/chatapp/app.rb +1 -0
- data/examples/chatapp/config.json +4 -0
- data/examples/chatapp/config.ru +0 -2
- data/jars/annotations-1.3.2.jar +0 -0
- data/jars/lang-jruby-2.1.0-final.jar +0 -0
- data/jars/log4j-1.2.16.jar +0 -0
- data/jars/slf4j-api-1.6.2.jar +0 -0
- data/jars/vertx-core-2.1.2.jar +0 -0
- data/jars/{vertx-hazelcast-2.1.1.jar → vertx-hazelcast-2.1.2.jar} +0 -0
- data/jars/{vertx-platform-2.1.1.jar → vertx-platform-2.1.2.jar} +0 -0
- data/lib/container.rb +117 -0
- data/lib/{vertx → core}/buffer.rb +1 -1
- data/lib/core/datagram.rb +280 -0
- data/lib/core/dns.rb +143 -0
- data/lib/{vertx → core}/event_bus.rb +79 -8
- data/lib/core/file_system.rb +479 -0
- data/lib/{vertx → core}/http.rb +635 -5
- data/lib/core/net.rb +251 -0
- data/lib/core/network_support.rb +77 -0
- data/lib/core/parsetools.rb +105 -0
- data/lib/{vertx → core}/shared_data.rb +2 -2
- data/lib/core/sock_js.rb +116 -0
- data/lib/{vertx → core}/ssl_support.rb +21 -1
- data/lib/{vertx → core}/streams.rb +32 -21
- data/lib/{vertx → core}/tcp_support.rb +22 -36
- data/lib/core/timers.rb +73 -0
- data/lib/core/vertx_require.rb +25 -0
- data/lib/{vertx → core}/wrapped_handler.rb +0 -0
- data/lib/jubilee.rb +5 -8
- data/lib/jubilee/cli.rb +1 -1
- data/lib/jubilee/jubilee.jar +0 -0
- data/lib/jubilee/jubilee_require.rb +24 -0
- data/lib/jubilee/version.rb +1 -1
- data/lib/test_utils.rb +66 -0
- data/lib/vertx.rb +13 -10
- data/lib/vertx_tests.rb +8 -0
- data/pom.xml +351 -0
- data/src/main/assembly/mod.xml +21 -0
- data/{java/src → src/main/java}/jubilee/JubileeService.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/Const.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/JubileeVerticle.java +12 -2
- data/src/main/java/org/jruby/jubilee/JubileeVerticleFactory.java +258 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/RackApplication.java +3 -1
- data/{java/src → src/main/java}/org/jruby/jubilee/RackEnvironment.java +2 -2
- data/{java/src → src/main/java}/org/jruby/jubilee/RackEnvironmentHash.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/RackInput.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/RackResponse.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/RubyCallable.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/RubyHttpServerResponse.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/RubyNetSocket.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/RubyPlatformManager.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/impl/RubyIORackInput.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/impl/RubyNullIO.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/utils/RubyHelper.java +0 -0
- data/{java/src → src/main/java}/org/jruby/jubilee/vertx/JubileeVertx.java +0 -0
- data/{java → src/main}/resources/META-INF/services/org.vertx.java.core.spi.cluster.ClusterManagerFactory +0 -0
- data/src/main/resources/META-INF/services/org.vertx.java.deploy.impl.jruby.JubileeVerticleFactory +1 -0
- data/{java → src/main}/resources/default-cluster.xml +0 -0
- data/src/main/resources/mod.json +11 -0
- data/test/jubilee/test_upload.rb +3 -1
- data/vertx_classpath.txt +12 -0
- metadata +69 -47
- data/Guardfile +0 -24
- data/jars/vertx-core-2.1.1.jar +0 -0
- data/java/src/org/jruby/jubilee/RubyChannel.java +0 -89
- data/lib/vertx/README.md +0 -7
@@ -0,0 +1,21 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
|
3
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
4
|
+
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
|
5
|
+
|
6
|
+
<formats>
|
7
|
+
<format>zip</format>
|
8
|
+
</formats>
|
9
|
+
|
10
|
+
<includeBaseDirectory>false</includeBaseDirectory>
|
11
|
+
|
12
|
+
<fileSets>
|
13
|
+
<fileSet>
|
14
|
+
<outputDirectory></outputDirectory>
|
15
|
+
<directory>${mods.directory}/${module.name}</directory>
|
16
|
+
<includes>
|
17
|
+
<include>**</include>
|
18
|
+
</includes>
|
19
|
+
</fileSet>
|
20
|
+
</fileSets>
|
21
|
+
</assembly>
|
File without changes
|
File without changes
|
@@ -3,7 +3,6 @@ package org.jruby.jubilee;
|
|
3
3
|
import org.jruby.Ruby;
|
4
4
|
import org.jruby.RubyArray;
|
5
5
|
import org.jruby.RubyInstanceConfig;
|
6
|
-
import org.jruby.RubyString;
|
7
6
|
import org.jruby.runtime.builtin.IRubyObject;
|
8
7
|
import org.vertx.java.core.Handler;
|
9
8
|
import org.vertx.java.core.http.HttpServer;
|
@@ -11,6 +10,7 @@ import org.vertx.java.core.http.HttpServerRequest;
|
|
11
10
|
import org.vertx.java.core.json.JsonArray;
|
12
11
|
import org.vertx.java.core.json.JsonObject;
|
13
12
|
import org.vertx.java.platform.Verticle;
|
13
|
+
import org.vertx.java.platform.impl.JRubyVerticleFactory;
|
14
14
|
import org.vertx.java.platform.impl.WrappedVertx;
|
15
15
|
|
16
16
|
import java.io.IOException;
|
@@ -22,9 +22,18 @@ import java.util.List;
|
|
22
22
|
* Created by isaiah on 23/01/2014.
|
23
23
|
*/
|
24
24
|
public class JubileeVerticle extends Verticle {
|
25
|
+
private String rackup;
|
26
|
+
|
27
|
+
public JubileeVerticle(){}
|
28
|
+
|
29
|
+
public JubileeVerticle(String rackup) {
|
30
|
+
this.rackup = rackup;
|
31
|
+
}
|
25
32
|
|
26
33
|
@Override
|
27
34
|
public void start() {
|
35
|
+
JRubyVerticleFactory.vertx = vertx;
|
36
|
+
JRubyVerticleFactory.container = container;
|
28
37
|
JsonObject config = container.config();
|
29
38
|
HttpServer httpServer = vertx.createHttpServer();
|
30
39
|
String root = config.getString("root", ".");
|
@@ -93,7 +102,8 @@ public class JubileeVerticle extends Verticle {
|
|
93
102
|
}
|
94
103
|
|
95
104
|
private IRubyObject initRackApplication(JsonObject config) {
|
96
|
-
|
105
|
+
if (this.rackup == null)
|
106
|
+
this.rackup = config.getString("rackup");
|
97
107
|
String rackScript = "require 'rack'\n" +
|
98
108
|
"require 'jubilee'\n" +
|
99
109
|
"app, _ = Rack::Builder.parse_file('" + rackup + "')\n";
|
@@ -0,0 +1,258 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2011-2012 the original author or authors.
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
|
17
|
+
package org.jruby.jubilee;
|
18
|
+
|
19
|
+
import org.jruby.*;
|
20
|
+
import org.jruby.embed.EvalFailedException;
|
21
|
+
import org.jruby.embed.InvokeFailedException;
|
22
|
+
import org.jruby.embed.LocalContextScope;
|
23
|
+
import org.jruby.embed.ScriptingContainer;
|
24
|
+
import org.jruby.exceptions.RaiseException;
|
25
|
+
import org.jruby.runtime.builtin.IRubyObject;
|
26
|
+
import org.vertx.java.core.Handler;
|
27
|
+
import org.vertx.java.core.Vertx;
|
28
|
+
import org.vertx.java.core.VertxException;
|
29
|
+
import org.vertx.java.core.http.HttpServer;
|
30
|
+
import org.vertx.java.core.http.HttpServerRequest;
|
31
|
+
import org.vertx.java.core.json.JsonArray;
|
32
|
+
import org.vertx.java.core.json.JsonObject;
|
33
|
+
import org.vertx.java.core.logging.Logger;
|
34
|
+
import org.vertx.java.platform.Container;
|
35
|
+
import org.vertx.java.platform.Verticle;
|
36
|
+
import org.vertx.java.platform.VerticleFactory;
|
37
|
+
import org.vertx.java.platform.impl.WrappedVertx;
|
38
|
+
import org.vertx.java.platform.impl.JRubyVerticleFactory;
|
39
|
+
|
40
|
+
import java.io.*;
|
41
|
+
import java.util.List;
|
42
|
+
import java.util.concurrent.atomic.AtomicInteger;
|
43
|
+
|
44
|
+
public class JubileeVerticleFactory implements VerticleFactory {
|
45
|
+
|
46
|
+
private ClassLoader cl;
|
47
|
+
private ScriptingContainer scontainer;
|
48
|
+
private static final AtomicInteger seq = new AtomicInteger();
|
49
|
+
|
50
|
+
public static Vertx vertx;
|
51
|
+
public static Container container;
|
52
|
+
|
53
|
+
public JubileeVerticleFactory() {
|
54
|
+
}
|
55
|
+
|
56
|
+
@Override
|
57
|
+
public void init(Vertx vertx, Container container, ClassLoader cl) {
|
58
|
+
this.cl = cl;
|
59
|
+
// These statics are used by the Rhino scripts to look up references to vertx and the container
|
60
|
+
JRubyVerticleFactory.vertx = vertx;
|
61
|
+
JubileeVerticleFactory.vertx = vertx;
|
62
|
+
JubileeVerticleFactory.container = container;
|
63
|
+
ClassLoader old = Thread.currentThread().getContextClassLoader();
|
64
|
+
try {
|
65
|
+
Thread.currentThread().setContextClassLoader(cl);
|
66
|
+
this.scontainer = new ScriptingContainer(LocalContextScope.SINGLETHREAD);
|
67
|
+
scontainer.setCompatVersion(CompatVersion.RUBY1_9);
|
68
|
+
//Prevent JRuby from logging errors to stderr - we want to log ourselves
|
69
|
+
scontainer.setErrorWriter(new NullWriter());
|
70
|
+
} finally {
|
71
|
+
Thread.currentThread().setContextClassLoader(old);
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
@Override
|
76
|
+
public Verticle createVerticle(String rackup) throws Exception {
|
77
|
+
return new RackVerticle(rackup);
|
78
|
+
}
|
79
|
+
|
80
|
+
public void reportException(Logger logger, Throwable t) {
|
81
|
+
RaiseException je = null;
|
82
|
+
if (t instanceof EvalFailedException) {
|
83
|
+
EvalFailedException e = (EvalFailedException)t;
|
84
|
+
Throwable cause = e.getCause();
|
85
|
+
if (cause instanceof RaiseException) {
|
86
|
+
je = (RaiseException)cause;
|
87
|
+
}
|
88
|
+
} else if (t instanceof RaiseException) {
|
89
|
+
je = (RaiseException)t;
|
90
|
+
}
|
91
|
+
|
92
|
+
if (je != null) {
|
93
|
+
|
94
|
+
RubyException re = je.getException();
|
95
|
+
|
96
|
+
String msg;
|
97
|
+
if (re instanceof RubyNameError) {
|
98
|
+
RubyNameError rne = (RubyNameError)re;
|
99
|
+
msg = "Invalid or undefined name: " + rne.name().toString();
|
100
|
+
} else {
|
101
|
+
msg = re.message.toString();
|
102
|
+
}
|
103
|
+
|
104
|
+
StringBuilder backtrace = new StringBuilder();
|
105
|
+
IRubyObject bt = re.backtrace();
|
106
|
+
|
107
|
+
if (bt instanceof List) {
|
108
|
+
for (Object obj : (List<?>)bt) {
|
109
|
+
if (obj instanceof String) {
|
110
|
+
String line = (String)obj;
|
111
|
+
addToBackTrace(backtrace, line);
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
logger.error("Exception in Ruby verticle: " + msg +
|
116
|
+
"\n" + backtrace);
|
117
|
+
} else {
|
118
|
+
logger.error("Unexpected exception in Ruby verticle", t);
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
122
|
+
private void addToBackTrace(StringBuilder backtrace, String line) {
|
123
|
+
if (line.contains(".rb")) {
|
124
|
+
//We filter out any Java stack trace
|
125
|
+
backtrace.append(line).append('\n');
|
126
|
+
}
|
127
|
+
}
|
128
|
+
|
129
|
+
// This method synchronizes the callback into the JRuby code to make sure we don't have concurrent requires
|
130
|
+
// or loads occurring in the same JRuby container
|
131
|
+
public static synchronized void requireCallback(Runnable runnable) {
|
132
|
+
runnable.run();
|
133
|
+
}
|
134
|
+
|
135
|
+
// This MUST be static or we will get a leak since JRuby maintains it and a non static will hold a reference
|
136
|
+
// to this
|
137
|
+
private static class NullWriter extends Writer {
|
138
|
+
|
139
|
+
public void write(char[] cbuf, int off, int len) throws IOException {
|
140
|
+
}
|
141
|
+
|
142
|
+
public void flush() throws IOException {
|
143
|
+
}
|
144
|
+
|
145
|
+
public void close() throws IOException {
|
146
|
+
}
|
147
|
+
}
|
148
|
+
|
149
|
+
public void close() {
|
150
|
+
scontainer.clear();
|
151
|
+
// JRuby keeps a static reference to a runtime - we must clear this manually to avoid a leak
|
152
|
+
Ruby.clearGlobalRuntime();
|
153
|
+
}
|
154
|
+
public class RackVerticle extends Verticle {
|
155
|
+
public RackVerticle(String rackup) {
|
156
|
+
this.rackup = rackup;
|
157
|
+
this.vertx = JubileeVerticleFactory.vertx;
|
158
|
+
this.container = JubileeVerticleFactory.container;
|
159
|
+
}
|
160
|
+
|
161
|
+
public void start() {
|
162
|
+
JsonObject config = container.config();
|
163
|
+
synchronized (JubileeVerticleFactory.class) {
|
164
|
+
try (InputStream is = cl.getResourceAsStream(rackup)) {
|
165
|
+
if (is == null) {
|
166
|
+
throw new IllegalArgumentException("Cannot find verticle: " + rackup);
|
167
|
+
}
|
168
|
+
modName = "Mod___VertxInternalVert__" + seq.incrementAndGet();
|
169
|
+
StringBuilder svert = new StringBuilder( "require 'jubilee/jubilee_require'\n").append("module ").append(modName).append(";extend self;");
|
170
|
+
String rackScript = "require 'rack'\n" +
|
171
|
+
"require 'jubilee'\n" +
|
172
|
+
"app, _ = Rack::Builder.parse_file('" + rackup + "')\n";
|
173
|
+
if (!config.getBoolean("quiet", true) && config.getString("environment").equals("development")) {
|
174
|
+
rackScript += "logger = STDOUT\n" +
|
175
|
+
"app = Rack::CommonLogger.new(app, logger)\n";
|
176
|
+
}
|
177
|
+
rackScript += "Jubilee::Application.new(app)\n";
|
178
|
+
svert.append(rackScript);
|
179
|
+
svert.append("end");
|
180
|
+
rackApplication = (IRubyObject)scontainer.runScriptlet(new StringReader(svert.toString()), rackup);
|
181
|
+
} catch (Exception e) {
|
182
|
+
throw new VertxException(e);
|
183
|
+
}
|
184
|
+
}
|
185
|
+
httpServer = vertx.createHttpServer();
|
186
|
+
|
187
|
+
final RackApplication app;
|
188
|
+
boolean ssl = config.getBoolean("ssl", false);
|
189
|
+
try {
|
190
|
+
app = new RackApplication((WrappedVertx) vertx, rackApplication.getRuntime().getCurrentContext(), rackApplication, config);
|
191
|
+
httpServer.setAcceptBacklog(10000);
|
192
|
+
httpServer.requestHandler(new Handler<HttpServerRequest>() {
|
193
|
+
public void handle(final HttpServerRequest req) {
|
194
|
+
app.call(req);
|
195
|
+
}
|
196
|
+
});
|
197
|
+
if (config.containsField("event_bus")) {
|
198
|
+
JsonArray allowAll = new JsonArray();
|
199
|
+
allowAll.add(new JsonObject());
|
200
|
+
|
201
|
+
JsonArray incomingAllowed;
|
202
|
+
JsonArray outgoingAllowed;
|
203
|
+
|
204
|
+
if (config.containsField("event_bus_security")) {
|
205
|
+
JsonObject securitySettings = config.getObject("event_bus_security");
|
206
|
+
incomingAllowed = securitySettings.getArray("incoming", allowAll);
|
207
|
+
outgoingAllowed = securitySettings.getArray("outgoing", allowAll);
|
208
|
+
} else {
|
209
|
+
incomingAllowed = allowAll;
|
210
|
+
outgoingAllowed = allowAll;
|
211
|
+
}
|
212
|
+
JsonObject ebconf = new JsonObject();
|
213
|
+
ebconf.putString("prefix", config.getString("event_bus"));
|
214
|
+
vertx.createSockJSServer(httpServer).bridge(ebconf, incomingAllowed, outgoingAllowed);
|
215
|
+
|
216
|
+
}
|
217
|
+
if (ssl) httpServer.setSSL(true).setKeyStorePath(config.getString("keystore_path"))
|
218
|
+
.setKeyStorePassword(config.getString("keystore_password"));
|
219
|
+
httpServer.listen(config.getInteger("port", 8080), config.getString("host", "localhost"));
|
220
|
+
} catch (IOException e) {
|
221
|
+
container.logger().fatal("Failed to create RackApplication");
|
222
|
+
}
|
223
|
+
}
|
224
|
+
|
225
|
+
@Override
|
226
|
+
public void stop() {
|
227
|
+
if (this.httpServer != null)
|
228
|
+
this.httpServer.close();
|
229
|
+
if (rackApplication != null) {
|
230
|
+
try {
|
231
|
+
// We call the script with receiver = null - this causes the method to be called on the top level
|
232
|
+
// script
|
233
|
+
scontainer.callMethod(rackApplication, "vertx_stop");
|
234
|
+
} catch (InvokeFailedException e) {
|
235
|
+
Throwable cause = e.getCause();
|
236
|
+
if (cause instanceof RaiseException) {
|
237
|
+
// Gosh, this is a bit long winded!
|
238
|
+
RaiseException re = (RaiseException) cause;
|
239
|
+
String msg = "(NoMethodError) undefined method `vertx_stop'";
|
240
|
+
if (re.getMessage().startsWith(msg)) {
|
241
|
+
// OK - method is not mandatory
|
242
|
+
return;
|
243
|
+
}
|
244
|
+
}
|
245
|
+
throw e;
|
246
|
+
} finally {
|
247
|
+
// Remove the module const
|
248
|
+
scontainer.runScriptlet("Object.send(:remove_const, :" + modName + ")");
|
249
|
+
}
|
250
|
+
}
|
251
|
+
}
|
252
|
+
|
253
|
+
private String rackup;
|
254
|
+
private IRubyObject rackApplication;
|
255
|
+
private String modName;
|
256
|
+
private HttpServer httpServer;
|
257
|
+
}
|
258
|
+
}
|
@@ -41,7 +41,7 @@ public class RackApplication {
|
|
41
41
|
|
42
42
|
public RackApplication(WrappedVertx vertx, ThreadContext context, IRubyObject app, JsonObject config) throws IOException {
|
43
43
|
this.app = app;
|
44
|
-
this.ssl = config.getBoolean("ssl");
|
44
|
+
this.ssl = config.getBoolean("ssl", false);
|
45
45
|
this.hideErrorStack = config.getBoolean("hide_error_stack", false);
|
46
46
|
this.vertx = vertx;
|
47
47
|
this.runtime = context.runtime;
|
@@ -92,10 +92,12 @@ public class RackApplication {
|
|
92
92
|
try {
|
93
93
|
// This is a different context, do NOT replace runtime.getCurrentContext()
|
94
94
|
IRubyObject result = app.callMethod(runtime.getCurrentContext(), "call", rackEnv.getEnv(request, input, ssl));
|
95
|
+
/*
|
95
96
|
if (request.isHijacked()) {
|
96
97
|
// It's the hijacker's response to close the socket.
|
97
98
|
return;
|
98
99
|
}
|
100
|
+
*/
|
99
101
|
RackResponse response = (RackResponse) JavaEmbedUtils.rubyToJava(runtime, result, RackResponse.class);
|
100
102
|
RubyHttpServerResponse resp = new RubyHttpServerResponse(runtime,
|
101
103
|
httpServerResponseClass, request);
|
@@ -100,8 +100,8 @@ public class RackEnvironment {
|
|
100
100
|
env.lazyPut(RACK_KEY.RUN_ONCE, runtime.getFalse(), false);
|
101
101
|
|
102
102
|
// Hijack handling
|
103
|
-
env.lazyPut(RACK_KEY.HIJACK_P, runtime.
|
104
|
-
env.lazyPut(RACK_KEY.HIJACK, hijackProc(env, request), false);
|
103
|
+
env.lazyPut(RACK_KEY.HIJACK_P, runtime.getFalse(), false);
|
104
|
+
// env.lazyPut(RACK_KEY.HIJACK, hijackProc(env, request), false);
|
105
105
|
|
106
106
|
|
107
107
|
final int contentLength = getContentLength(headers);
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/src/main/resources/META-INF/services/org.vertx.java.deploy.impl.jruby.JubileeVerticleFactory
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
org.vertx.java.deploy.impl.jruby.JubileeVerticleFactory
|
File without changes
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"system": true,
|
3
|
+
"resident": true,
|
4
|
+
"includes": "io.vertx~lang-jruby~2.1.0-final",
|
5
|
+
|
6
|
+
"description":"Rack application runner",
|
7
|
+
"licenses": ["MIT"],
|
8
|
+
"author": "isaiah",
|
9
|
+
"keywords": ["rack", "rails"],
|
10
|
+
"homepage": "https://github.com/isaiah/jubilee"
|
11
|
+
}
|
data/test/jubilee/test_upload.rb
CHANGED
data/vertx_classpath.txt
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# This file contains information on where to find the resources of your module during development
|
2
|
+
# This file is used when running your module as you develop - it tells Vert.x where to find
|
3
|
+
# the resources of your module
|
4
|
+
|
5
|
+
# Feel free to edit it if you have a non standard project structure and put the resources of your
|
6
|
+
# module elsewhere
|
7
|
+
|
8
|
+
src/main/resources
|
9
|
+
target/classes
|
10
|
+
target/dependencies
|
11
|
+
lib/
|
12
|
+
bin
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jubilee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.0.
|
4
|
+
version: 2.1.0.rc1
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Isaiah Peng
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: rack
|
15
|
-
version_requirements: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.4.1
|
20
14
|
requirement: !ruby/object:Gem::Requirement
|
21
15
|
requirements:
|
22
16
|
- - '>='
|
23
17
|
- !ruby/object:Gem::Version
|
24
18
|
version: 1.4.1
|
19
|
+
name: rack
|
25
20
|
prerelease: false
|
26
21
|
type: :runtime
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: spoon
|
29
22
|
version_requirements: !ruby/object:Gem::Requirement
|
30
23
|
requirements:
|
31
|
-
- -
|
24
|
+
- - '>='
|
32
25
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
26
|
+
version: 1.4.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
34
28
|
requirement: !ruby/object:Gem::Requirement
|
35
29
|
requirements:
|
36
30
|
- - ~>
|
37
31
|
- !ruby/object:Gem::Version
|
38
32
|
version: 0.0.4
|
33
|
+
name: spoon
|
39
34
|
prerelease: false
|
40
35
|
type: :runtime
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: jeweler
|
43
36
|
version_requirements: !ruby/object:Gem::Requirement
|
44
37
|
requirements:
|
45
38
|
- - ~>
|
46
39
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
40
|
+
version: 0.0.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
48
42
|
requirement: !ruby/object:Gem::Requirement
|
49
43
|
requirements:
|
50
44
|
- - ~>
|
51
45
|
- !ruby/object:Gem::Version
|
52
46
|
version: 1.8.7
|
47
|
+
name: jeweler
|
53
48
|
prerelease: false
|
54
49
|
type: :development
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.8.7
|
55
55
|
description: Jubilee is a rack server for JRuby built upon the high performance Vertx platform. It provides the best features of Vertx such as EventBus, SharedData, and clustering.
|
56
56
|
email: issaria@gmail.com
|
57
57
|
executables:
|
@@ -67,7 +67,6 @@ files:
|
|
67
67
|
- CHANGELOG
|
68
68
|
- Gemfile
|
69
69
|
- Gemfile.lock
|
70
|
-
- Guardfile
|
71
70
|
- KNOWN_ISSUES
|
72
71
|
- LICENSE.txt
|
73
72
|
- README.md
|
@@ -79,6 +78,7 @@ files:
|
|
79
78
|
- examples/chatapp/Gemfile.lock
|
80
79
|
- examples/chatapp/README.md
|
81
80
|
- examples/chatapp/app.rb
|
81
|
+
- examples/chatapp/config.json
|
82
82
|
- examples/chatapp/config.ru
|
83
83
|
- examples/chatapp/public/assets/javascripts/application.js
|
84
84
|
- examples/chatapp/public/assets/javascripts/jquery.js
|
@@ -89,53 +89,52 @@ files:
|
|
89
89
|
- examples/client/vertxbus.js
|
90
90
|
- examples/jubilee.conf.rb
|
91
91
|
- examples/keystore.jks
|
92
|
+
- jars/annotations-1.3.2.jar
|
92
93
|
- jars/hazelcast-3.2.3.jar
|
93
94
|
- jars/jackson-annotations-2.2.2.jar
|
94
95
|
- jars/jackson-core-2.2.2.jar
|
95
96
|
- jars/jackson-databind-2.2.2.jar
|
97
|
+
- jars/lang-jruby-2.1.0-final.jar
|
98
|
+
- jars/log4j-1.2.16.jar
|
96
99
|
- jars/netty-all-4.0.20.Final.jar
|
97
|
-
- jars/
|
98
|
-
- jars/vertx-
|
99
|
-
- jars/vertx-
|
100
|
-
-
|
101
|
-
- java/resources/default-cluster.xml
|
102
|
-
- java/src/jubilee/JubileeService.java
|
103
|
-
- java/src/org/jruby/jubilee/Const.java
|
104
|
-
- java/src/org/jruby/jubilee/JubileeVerticle.java
|
105
|
-
- java/src/org/jruby/jubilee/RackApplication.java
|
106
|
-
- java/src/org/jruby/jubilee/RackEnvironment.java
|
107
|
-
- java/src/org/jruby/jubilee/RackEnvironmentHash.java
|
108
|
-
- java/src/org/jruby/jubilee/RackInput.java
|
109
|
-
- java/src/org/jruby/jubilee/RackResponse.java
|
110
|
-
- java/src/org/jruby/jubilee/RubyCallable.java
|
111
|
-
- java/src/org/jruby/jubilee/RubyChannel.java
|
112
|
-
- java/src/org/jruby/jubilee/RubyHttpServerResponse.java
|
113
|
-
- java/src/org/jruby/jubilee/RubyNetSocket.java
|
114
|
-
- java/src/org/jruby/jubilee/RubyPlatformManager.java
|
115
|
-
- java/src/org/jruby/jubilee/impl/RubyIORackInput.java
|
116
|
-
- java/src/org/jruby/jubilee/impl/RubyNullIO.java
|
117
|
-
- java/src/org/jruby/jubilee/utils/RubyHelper.java
|
118
|
-
- java/src/org/jruby/jubilee/vertx/JubileeVertx.java
|
100
|
+
- jars/slf4j-api-1.6.2.jar
|
101
|
+
- jars/vertx-core-2.1.2.jar
|
102
|
+
- jars/vertx-hazelcast-2.1.2.jar
|
103
|
+
- jars/vertx-platform-2.1.2.jar
|
119
104
|
- jubilee.gemspec
|
105
|
+
- lib/container.rb
|
106
|
+
- lib/core/buffer.rb
|
107
|
+
- lib/core/datagram.rb
|
108
|
+
- lib/core/dns.rb
|
109
|
+
- lib/core/event_bus.rb
|
110
|
+
- lib/core/file_system.rb
|
111
|
+
- lib/core/http.rb
|
112
|
+
- lib/core/net.rb
|
113
|
+
- lib/core/network_support.rb
|
114
|
+
- lib/core/parsetools.rb
|
115
|
+
- lib/core/shared_data.rb
|
116
|
+
- lib/core/sock_js.rb
|
117
|
+
- lib/core/ssl_support.rb
|
118
|
+
- lib/core/streams.rb
|
119
|
+
- lib/core/tcp_support.rb
|
120
|
+
- lib/core/timers.rb
|
121
|
+
- lib/core/vertx_require.rb
|
122
|
+
- lib/core/wrapped_handler.rb
|
120
123
|
- lib/jubilee.rb
|
121
124
|
- lib/jubilee/application.rb
|
122
125
|
- lib/jubilee/cli.rb
|
123
126
|
- lib/jubilee/configuration.rb
|
124
127
|
- lib/jubilee/const.rb
|
128
|
+
- lib/jubilee/jubilee.jar
|
129
|
+
- lib/jubilee/jubilee_require.rb
|
125
130
|
- lib/jubilee/response.rb
|
126
131
|
- lib/jubilee/server.rb
|
127
132
|
- lib/jubilee/version.rb
|
128
133
|
- lib/rack/handler/jubilee.rb
|
134
|
+
- lib/test_utils.rb
|
129
135
|
- lib/vertx.rb
|
130
|
-
- lib/
|
131
|
-
-
|
132
|
-
- lib/vertx/event_bus.rb
|
133
|
-
- lib/vertx/http.rb
|
134
|
-
- lib/vertx/shared_data.rb
|
135
|
-
- lib/vertx/ssl_support.rb
|
136
|
-
- lib/vertx/streams.rb
|
137
|
-
- lib/vertx/tcp_support.rb
|
138
|
-
- lib/vertx/wrapped_handler.rb
|
136
|
+
- lib/vertx_tests.rb
|
137
|
+
- pom.xml
|
139
138
|
- spec/apps/rack/basic/config.ru
|
140
139
|
- spec/apps/rails4/basic/.gitignore
|
141
140
|
- spec/apps/rails4/basic/Gemfile
|
@@ -210,6 +209,28 @@ files:
|
|
210
209
|
- spec/integration/basic_rails4_spec.rb
|
211
210
|
- spec/integration/basic_sinatra_spec.rb
|
212
211
|
- spec/spec_helper.rb
|
212
|
+
- src/main/assembly/mod.xml
|
213
|
+
- src/main/java/jubilee/JubileeService.java
|
214
|
+
- src/main/java/org/jruby/jubilee/Const.java
|
215
|
+
- src/main/java/org/jruby/jubilee/JubileeVerticle.java
|
216
|
+
- src/main/java/org/jruby/jubilee/JubileeVerticleFactory.java
|
217
|
+
- src/main/java/org/jruby/jubilee/RackApplication.java
|
218
|
+
- src/main/java/org/jruby/jubilee/RackEnvironment.java
|
219
|
+
- src/main/java/org/jruby/jubilee/RackEnvironmentHash.java
|
220
|
+
- src/main/java/org/jruby/jubilee/RackInput.java
|
221
|
+
- src/main/java/org/jruby/jubilee/RackResponse.java
|
222
|
+
- src/main/java/org/jruby/jubilee/RubyCallable.java
|
223
|
+
- src/main/java/org/jruby/jubilee/RubyHttpServerResponse.java
|
224
|
+
- src/main/java/org/jruby/jubilee/RubyNetSocket.java
|
225
|
+
- src/main/java/org/jruby/jubilee/RubyPlatformManager.java
|
226
|
+
- src/main/java/org/jruby/jubilee/impl/RubyIORackInput.java
|
227
|
+
- src/main/java/org/jruby/jubilee/impl/RubyNullIO.java
|
228
|
+
- src/main/java/org/jruby/jubilee/utils/RubyHelper.java
|
229
|
+
- src/main/java/org/jruby/jubilee/vertx/JubileeVertx.java
|
230
|
+
- src/main/resources/META-INF/services/org.vertx.java.core.spi.cluster.ClusterManagerFactory
|
231
|
+
- src/main/resources/META-INF/services/org.vertx.java.deploy.impl.jruby.JubileeVerticleFactory
|
232
|
+
- src/main/resources/default-cluster.xml
|
233
|
+
- src/main/resources/mod.json
|
213
234
|
- test/.ruby-version
|
214
235
|
- test/apps/app.rb
|
215
236
|
- test/apps/checker.ru
|
@@ -238,6 +259,7 @@ files:
|
|
238
259
|
- test/jubilee/test_server.rb
|
239
260
|
- test/jubilee/test_upload.rb
|
240
261
|
- test/test_helper.rb
|
262
|
+
- vertx_classpath.txt
|
241
263
|
homepage: http://isaiah.github.io/jubilee
|
242
264
|
licenses:
|
243
265
|
- MIT
|