jubilee 2.0.0.alpha1-java → 2.0.0.beta-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/chatapp/Gemfile +1 -1
- data/examples/chatapp/Gemfile.lock +2 -2
- data/java/src/org/jruby/jubilee/Const.java +1 -1
- data/java/src/org/jruby/jubilee/JubileeVerticle.java +3 -1
- data/java/src/org/jruby/jubilee/RubyPlatformManager.java +49 -1
- data/java/src/org/jruby/jubilee/vertx/JubileeVertx.java +5 -16
- data/lib/jubilee/cli.rb +1 -1
- data/lib/jubilee/configuration.rb +0 -11
- data/lib/jubilee/jubilee.jar +0 -0
- data/lib/jubilee/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb61786745898bab811507f1d76d6bbdc77e5485
|
4
|
+
data.tar.gz: 03df7c9f9b145f2287a1b453aef1e1159a85a899
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 707de86b4d5b2bda6e5a10726209642f7d703533b59e7b6069683efa4202b960213118a384771150f27d2fa4848547641abb273788f5d64397dee5ca247ac362
|
7
|
+
data.tar.gz: a2fa31e40c0dae6c7e4e023c3293c157fd54984530277bdc1c586abee40ed6f078ddf228067bf0de2a554d78686954a35c5bb489913018844e07180d0a509b56
|
data/examples/chatapp/Gemfile
CHANGED
@@ -4,7 +4,7 @@ GEM
|
|
4
4
|
ffi (1.9.3-java)
|
5
5
|
haml (4.0.4)
|
6
6
|
tilt
|
7
|
-
jubilee (
|
7
|
+
jubilee (2.0.0.alpha1-java)
|
8
8
|
rack (>= 1.4.1)
|
9
9
|
spoon (~> 0.0.4)
|
10
10
|
rack (1.5.2)
|
@@ -23,5 +23,5 @@ PLATFORMS
|
|
23
23
|
|
24
24
|
DEPENDENCIES
|
25
25
|
haml
|
26
|
-
jubilee
|
26
|
+
jubilee (= 2.0.0.alpha1)
|
27
27
|
sinatra
|
@@ -8,7 +8,7 @@ package org.jruby.jubilee;
|
|
8
8
|
*/
|
9
9
|
public final class Const {
|
10
10
|
|
11
|
-
public static final String JUBILEE_VERSION = "Jubilee(
|
11
|
+
public static final String JUBILEE_VERSION = "Jubilee(2.0.0)";
|
12
12
|
public static final String HTTP_11 = "HTTP/1.1";
|
13
13
|
public static final String HTTP_10 = "HTTP/1.0";
|
14
14
|
|
@@ -50,7 +50,9 @@ public class JubileeVerticle extends Verticle {
|
|
50
50
|
if (config.containsField("event_bus")) {
|
51
51
|
JsonArray allowAll = new JsonArray();
|
52
52
|
allowAll.add(new JsonObject());
|
53
|
-
|
53
|
+
JsonObject ebconf = new JsonObject();
|
54
|
+
ebconf.putString("prefix", config.getString("event_bus"));
|
55
|
+
vertx.createSockJSServer(httpServer).bridge(ebconf, allowAll, allowAll);
|
54
56
|
}
|
55
57
|
if (ssl) httpServer.setSSL(true).setKeyStorePath(config.getString("keystore_path"))
|
56
58
|
.setKeyStorePassword(config.getString("keystore_password"));
|
@@ -2,6 +2,7 @@ package org.jruby.jubilee;
|
|
2
2
|
|
3
3
|
import org.jruby.*;
|
4
4
|
import org.jruby.anno.JRubyMethod;
|
5
|
+
import org.jruby.jubilee.vertx.JubileeVertx;
|
5
6
|
import org.jruby.runtime.ObjectAllocator;
|
6
7
|
import org.jruby.runtime.ThreadContext;
|
7
8
|
import org.jruby.runtime.builtin.IRubyObject;
|
@@ -11,6 +12,11 @@ import org.vertx.java.core.json.JsonObject;
|
|
11
12
|
import org.vertx.java.platform.PlatformLocator;
|
12
13
|
import org.vertx.java.platform.PlatformManager;
|
13
14
|
|
15
|
+
import java.net.Inet6Address;
|
16
|
+
import java.net.InetAddress;
|
17
|
+
import java.net.NetworkInterface;
|
18
|
+
import java.net.SocketException;
|
19
|
+
import java.util.Enumeration;
|
14
20
|
import java.util.HashMap;
|
15
21
|
import java.util.Map;
|
16
22
|
|
@@ -39,7 +45,23 @@ public class RubyPlatformManager extends RubyObject {
|
|
39
45
|
@JRubyMethod
|
40
46
|
public IRubyObject initialize(ThreadContext context, IRubyObject config) {
|
41
47
|
RubyHash options = config.convertToHash();
|
42
|
-
|
48
|
+
Ruby runtime = context.runtime;
|
49
|
+
RubySymbol clustered_k = runtime.newSymbol("clustered");
|
50
|
+
RubySymbol cluster_host_k = runtime.newSymbol("cluster_host");
|
51
|
+
RubySymbol cluster_port_k = runtime.newSymbol("cluster_port");
|
52
|
+
if (options.containsKey(clustered_k) && options.op_aref(context, clustered_k).isTrue()) {
|
53
|
+
int clusterPort = 0;
|
54
|
+
String clusterHost = null;
|
55
|
+
if (options.containsKey(cluster_port_k))
|
56
|
+
clusterPort = RubyNumeric.num2int(options.op_aref(context, cluster_port_k));
|
57
|
+
if (options.containsKey(cluster_host_k))
|
58
|
+
clusterHost = options.op_aref(context, cluster_host_k).asJavaString();
|
59
|
+
if (clusterHost == null) clusterHost = getDefaultAddress();
|
60
|
+
pm = PlatformLocator.factory.createPlatformManager(clusterPort, clusterHost);
|
61
|
+
} else {
|
62
|
+
pm = PlatformLocator.factory.createPlatformManager();
|
63
|
+
}
|
64
|
+
JubileeVertx.init(pm.vertx());
|
43
65
|
int ins = RubyNumeric.num2int(options.op_aref(context, RubySymbol.newSymbol(context.runtime, "instances")));
|
44
66
|
pm.deployVerticle("org.jruby.jubilee.JubileeVerticle", new JsonObject(parseOptions(options)),
|
45
67
|
context.runtime.getJRubyClassLoader().getURLs(), ins, null, new AsyncResultHandler<String>() {
|
@@ -99,4 +121,30 @@ public class RubyPlatformManager extends RubyObject {
|
|
99
121
|
map.put("ruby", runtime);
|
100
122
|
return map;
|
101
123
|
}
|
124
|
+
/*
|
125
|
+
Get default interface to use since the user hasn't specified one
|
126
|
+
*/
|
127
|
+
private String getDefaultAddress() {
|
128
|
+
Enumeration<NetworkInterface> nets;
|
129
|
+
try {
|
130
|
+
nets = NetworkInterface.getNetworkInterfaces();
|
131
|
+
} catch (SocketException e) {
|
132
|
+
return null;
|
133
|
+
}
|
134
|
+
NetworkInterface netinf;
|
135
|
+
while (nets.hasMoreElements()) {
|
136
|
+
netinf = nets.nextElement();
|
137
|
+
|
138
|
+
Enumeration<InetAddress> addresses = netinf.getInetAddresses();
|
139
|
+
|
140
|
+
while (addresses.hasMoreElements()) {
|
141
|
+
InetAddress address = addresses.nextElement();
|
142
|
+
if (!address.isAnyLocalAddress() && !address.isMulticastAddress()
|
143
|
+
&& !(address instanceof Inet6Address)) {
|
144
|
+
return address.getHostAddress();
|
145
|
+
}
|
146
|
+
}
|
147
|
+
}
|
148
|
+
return null;
|
149
|
+
}
|
102
150
|
}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
package org.jruby.jubilee.vertx;
|
2
2
|
|
3
3
|
import org.vertx.java.core.Vertx;
|
4
|
-
import org.vertx.java.core.VertxFactory;
|
5
4
|
|
6
5
|
/**
|
7
6
|
* Created with IntelliJ IDEA.
|
@@ -13,24 +12,14 @@ public class JubileeVertx {
|
|
13
12
|
public static Vertx vertx;
|
14
13
|
private JubileeVertx() {
|
15
14
|
}
|
16
|
-
|
17
|
-
|
18
|
-
JubileeVertx.vertx =
|
19
|
-
return JubileeVertx.vertx;
|
20
|
-
}
|
21
|
-
public static synchronized Vertx init(String host) {
|
22
|
-
if (JubileeVertx.vertx != null) return vertx;
|
23
|
-
JubileeVertx.vertx = VertxFactory.newVertx(host);
|
24
|
-
return JubileeVertx.vertx;
|
25
|
-
}
|
26
|
-
public static synchronized Vertx init() {
|
27
|
-
if (JubileeVertx.vertx != null) return vertx;
|
28
|
-
JubileeVertx.vertx = VertxFactory.newVertx();
|
29
|
-
return JubileeVertx.vertx;
|
15
|
+
|
16
|
+
public static void init(Vertx vertx) {
|
17
|
+
JubileeVertx.vertx = vertx;
|
30
18
|
}
|
31
19
|
|
32
20
|
public synchronized static Vertx vertx() {
|
33
|
-
if (JubileeVertx.vertx == null)
|
21
|
+
if (JubileeVertx.vertx == null)
|
22
|
+
throw new RuntimeException("vertx is not initialized, do you run in jubilee server?");
|
34
23
|
return JubileeVertx.vertx;
|
35
24
|
}
|
36
25
|
}
|
data/lib/jubilee/cli.rb
CHANGED
@@ -107,7 +107,7 @@ module Jubilee
|
|
107
107
|
o.separator ""
|
108
108
|
o.separator "Clustering options:"
|
109
109
|
o.on "--cluster", "Enable clustering" do
|
110
|
-
@options[:
|
110
|
+
@options[:clustered] = true
|
111
111
|
end
|
112
112
|
o.on "--cluster-port PORT", "If the cluster option has also been specified then this determines which port will be used for cluster communication with other Vert.x instances. Default is 0 -which means 'chose a free ephemeral port. You don't usually need to specify this parameter unless you really need to bind to a specific port." do |port|
|
113
113
|
@options[:cluster_port] = port.to_i
|
@@ -16,17 +16,6 @@ module Jubilee
|
|
16
16
|
@block = block
|
17
17
|
|
18
18
|
reload
|
19
|
-
# initialize vertx as early as possible
|
20
|
-
# XXX vertx is managed by PlatformManager now
|
21
|
-
if chost = @options[:cluster_host]
|
22
|
-
if cport = @options[:cluster_port]
|
23
|
-
org.jruby.jubilee.vertx.JubileeVertx.init(cport.to_java(:int), chost.to_java)
|
24
|
-
else
|
25
|
-
org.jruby.jubilee.vertx.JubileeVertx.init(chost.to_java)
|
26
|
-
end
|
27
|
-
else
|
28
|
-
org.jruby.jubilee.vertx.JubileeVertx.init()
|
29
|
-
end
|
30
19
|
end
|
31
20
|
|
32
21
|
def reload
|
data/lib/jubilee/jubilee.jar
CHANGED
Binary file
|
data/lib/jubilee/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jubilee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.beta
|
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-01-
|
11
|
+
date: 2014-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|