jubilee 2.1.0.beta-java → 2.1.0.rc1-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|