Skip to content

Commit 6366290

Browse files
Upgrade to RxJava 1.0
- and remove Javascript as it distracts from the purpose
1 parent d4dd20c commit 6366290

File tree

17 files changed

+27
-5806
lines changed

17 files changed

+27
-5806
lines changed

reactive-lab-edge/build.gradle

+8-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@ sourceCompatibility = JavaVersion.VERSION_1_8
22
targetCompatibility = JavaVersion.VERSION_1_8
33

44
dependencies {
5-
compile 'com.netflix.rxnetty:rx-netty:0.3.3'
6-
compile 'com.netflix.rxjava:rxjava-core:0.18.2'
7-
compile 'com.netflix.hystrix:hystrix-core:1.4.0-RC4'
8-
compile 'com.netflix.hystrix:hystrix-metrics-event-stream:1.4.0-RC4'
5+
compile 'com.netflix.rxnetty:rx-netty:0.3.18'
6+
compile 'io.reactivex:rxjava:1.0.0-rc.10'
7+
compile('com.netflix.hystrix:hystrix-core:1.4.0-RC5') {
8+
exclude group: 'com.netflix.rxjava', module: 'rxjava-core'
9+
}
10+
compile('com.netflix.hystrix:hystrix-metrics-event-stream:1.4.0-RC5') {
11+
exclude group: 'com.netflix.rxjava', module: 'rxjava-core'
12+
}
913
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
1014
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
1115
testCompile 'junit:junit-dep:4.10'

reactive-lab-edge/src/main/java/io/reactivex/lab/edge/APIServiceLayer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
public class APIServiceLayer {
1111

1212
public Observable<String> getData() {
13-
return Observable.from("one", "two", "three");
13+
return Observable.just("one", "two", "three");
1414
}
1515

1616
public String hello(String name) {

reactive-lab-edge/src/main/java/io/reactivex/lab/edge/EdgeServer.java

+3-32
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.reactivex.lab.edge;
22

33
import io.netty.buffer.ByteBuf;
4-
import io.netty.buffer.ByteBufAllocator;
54
import io.netty.handler.codec.http.HttpResponseStatus;
65
import io.reactivex.lab.edge.routes.RouteForDeviceHome;
76
import io.reactivex.lab.edge.routes.mock.TestRouteBasic;
@@ -11,15 +10,11 @@
1110
import io.reactivex.netty.pipeline.PipelineConfigurators;
1211
import io.reactivex.netty.protocol.http.server.HttpServerRequest;
1312
import io.reactivex.netty.protocol.http.server.HttpServerResponse;
14-
import io.reactivex.netty.protocol.text.sse.ServerSentEvent;
15-
import io.reactivex.netty.serialization.ContentTransformer;
1613

1714
import java.util.concurrent.TimeUnit;
1815

1916
import rx.Observable;
2017
import rx.Subscriber;
21-
import rx.functions.Func0;
22-
import rx.operators.OperatorDefer;
2318
import rx.subscriptions.Subscriptions;
2419

2520
import com.netflix.hystrix.HystrixRequestLog;
@@ -43,7 +38,7 @@ public static void main(String... args) {
4338
// start web services => http://localhost:8080
4439
RxNetty.createHttpServer(8080, (request, response) -> {
4540
System.out.println("Server => Request: " + request.getPath());
46-
return defer(() -> {
41+
return Observable.defer(() -> {
4742
HystrixRequestContext.initializeContext();
4843
try {
4944
return handleRoutes(request, response);
@@ -79,9 +74,6 @@ private static Observable<Void> handleRoutes(HttpServerRequest<ByteBuf> request,
7974
return TestRouteWithSimpleFaultTolerance.handle(request, response);
8075
} else if (request.getPath().equals("/testWithHystrix")) {
8176
return TestRouteWithHystrix.handle(request, response);
82-
} else if (request.getPath().endsWith(".js")) {
83-
System.out.println("Server => Javascript Request: " + request.getPath());
84-
return JavascriptRuntime.getInstance().handleRequest(request, response);
8577
} else {
8678
return writeError(request, response, "Unknown path: " + request.getPath());
8779
}
@@ -93,13 +85,13 @@ private static void startHystrixMetricsStream() {
9385
response.getHeaders().add("content-type", "text/event-stream");
9486
return Observable.create((Subscriber<? super Void> s) -> {
9587
s.add(streamPoller.subscribe(json -> {
96-
response.writeAndFlush(new ServerSentEvent("", "data", json));
88+
response.writeStringAndFlush("data: " + json);
9789
}, error -> {
9890
s.onError(error);
9991
}));
10092

10193
s.add(Observable.interval(1000, TimeUnit.MILLISECONDS).flatMap(n -> {
102-
return response.writeAndFlush(new ServerSentEvent("", "ping", ""))
94+
return response.writeStringAndFlush("ping:")
10395
.onErrorReturn(e -> {
10496
System.out.println("Connection closed, unsubscribing from Hystrix Stream");
10597
s.unsubscribe();
@@ -132,25 +124,4 @@ public static Observable<Void> writeError(HttpServerRequest<?> request, HttpServ
132124
return response.writeStringAndFlush("Error 500: " + message);
133125
}
134126

135-
public static SSETransformer SSE_TRANSFORMER = new SSETransformer();
136-
137-
private static class SSETransformer implements ContentTransformer<ServerSentEvent> {
138-
@Override
139-
public ByteBuf transform(ServerSentEvent toTransform, ByteBufAllocator byteBufAllocator) {
140-
StringBuilder eventBuilder = new StringBuilder();
141-
eventBuilder.append(toTransform.getEventName());
142-
eventBuilder.append(": ");
143-
eventBuilder.append(toTransform.getEventData());
144-
eventBuilder.append("\n\n");
145-
String data = eventBuilder.toString();
146-
return byteBufAllocator.buffer(data.length()).writeBytes(data.getBytes());
147-
}
148-
}
149-
150-
/*
151-
* Workaround for Java 8 issue: https://github.com/Netflix/RxJava/issues/1157
152-
*/
153-
public final static <T> Observable<T> defer(Func0<Observable<T>> observableFactory) {
154-
return Observable.create(new OperatorDefer<T>(observableFactory));
155-
}
156127
}

reactive-lab-edge/src/main/java/io/reactivex/lab/edge/JavascriptRuntime.java

-93
This file was deleted.

reactive-lab-edge/src/main/java/io/reactivex/lab/edge/common/RxNettySSE.java

+11
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,23 @@
77
import io.reactivex.netty.pipeline.PipelineConfigurators;
88
import io.reactivex.netty.protocol.http.client.HttpClient;
99
import io.reactivex.netty.protocol.http.client.HttpClientBuilder;
10+
import io.reactivex.netty.protocol.http.server.HttpServer;
11+
import io.reactivex.netty.protocol.http.server.HttpServerBuilder;
12+
import io.reactivex.netty.protocol.http.server.RequestHandler;
1013
import io.reactivex.netty.protocol.text.sse.ServerSentEvent;
1114

1215
public class RxNettySSE {
1316

1417
private static final EventLoopGroup EVENT_LOOP = new NioEventLoopGroup(Runtime.getRuntime().availableProcessors(), new RxNettyThreadFactory());
1518

19+
public static HttpServer<ByteBuf, ServerSentEvent> createHttpServer(int port,
20+
RequestHandler<ByteBuf, ServerSentEvent> requestHandler) {
21+
return new HttpServerBuilder<ByteBuf, ServerSentEvent>(port, requestHandler)
22+
.pipelineConfigurator(PipelineConfigurators.<ByteBuf> sseServerConfigurator())
23+
.eventLoop(EVENT_LOOP)
24+
.build();
25+
}
26+
1627
public static HttpClient<ByteBuf, ServerSentEvent> createHttpClient(String host, int port) {
1728
return new HttpClientBuilder<ByteBuf, ServerSentEvent>(host, port)
1829
.pipelineConfigurator(PipelineConfigurators.<ByteBuf> sseClientConfigurator())

reactive-lab-edge/src/main/java/io/reactivex/lab/edge/routes/RouteForDeviceHome.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import io.reactivex.lab.edge.common.SimpleJson;
1616
import io.reactivex.netty.protocol.http.server.HttpServerRequest;
1717
import io.reactivex.netty.protocol.http.server.HttpServerResponse;
18-
import io.reactivex.netty.protocol.text.sse.ServerSentEvent;
1918

2019
import java.util.HashMap;
2120
import java.util.List;
@@ -60,7 +59,7 @@ public Observable<Void> handle(HttpServerRequest<ByteBuf> request, HttpServerRes
6059

6160
return Observable.merge(catalog, social);
6261
}).flatMap(data -> {
63-
return response.writeAndFlush(new ServerSentEvent("", "data", SimpleJson.mapToJson(data)), EdgeServer.SSE_TRANSFORMER);
62+
return response.writeStringAndFlush("data: " + SimpleJson.mapToJson(data));
6463
});
6564
}
6665

reactive-lab-edge/src/main/resources/jsx/endpoints/async.js

-8
This file was deleted.

reactive-lab-edge/src/main/resources/jsx/endpoints/hello.js

-10
This file was deleted.

reactive-lab-edge/src/main/resources/jsx/endpoints/helloworld.js

-3
This file was deleted.

reactive-lab-edge/src/main/resources/jsx/endpoints/mustache.js

-14
This file was deleted.

reactive-lab-edge/src/main/resources/jsx/endpoints/observable_java.js

-7
This file was deleted.

reactive-lab-edge/src/main/resources/jsx/endpoints/observable_js.js

-7
This file was deleted.

reactive-lab-edge/src/main/resources/jsx/jslib/bootstrap_interval.js

-60
This file was deleted.

0 commit comments

Comments
 (0)