Contents
  1. 1. 新增Maven 依赖
  2. 2. 代码的修改
    1. 2.1. MainVerticle
    2. 2.2. Service 相关的改动
  3. 3. 参考

早上花点时间修改 wafer-java-session, 引入了RxJava, 保存在新的分支rxjava。

新增Maven 依赖

1
2
3
4
5
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-rx-java</artifactId>
<version>3.5.0</version>
</dependency>

代码的修改

MainVerticle

  1. MainVerticle 的父类由 io.vertx.core.AbstractVerticle 改为 io.vertx.rxjava.core.AbstractVerticle

  2. Verticle Deployment的变化

    1
    2
    Future<String> dbserviceDeployment = Future.future();
    vertx.deployVerticle(SessionDatabaseVerticle.class.getName(), dbserviceDeployment.completer());

    修改为:

    1
    2
    3
    Single<String> dbserviceDeployment = vertx.rxDeployVerticle(SessionDatabaseVerticle.class.getName());
    dbserviceDeployment.flatMap(...)
    .subscribe(id -> startFuture.complete(), startFuture::fail);

Service 相关的改动

  • 接口SessionDatabaseService上新增注解@VertxGen, 两个静态方法create/createProxy 新增注解@GenIgnore。 新增注解的作用是生成rxjava相关的代理类。

  • SessionDatabaseService.createProxy() 返回类型使用rxjava包里的。

    1
    2
    3
    static SessionDatabaseService createProxy(Vertx vertx, String address) {
    return new SessionDatabaseServiceVertxEBProxy(vertx, address);
    }

    修改为:

    1
    2
    3
    4
    @GenIgnore
    static com.viifly.wafer.database.rxjava.SessionDatabaseService createProxy(Vertx vertx, String address) {
    return new com.viifly.wafer.database.rxjava.SessionDatabaseService(new SessionDatabaseServiceVertxEBProxy(vertx, address));
    }
  • SessionDatabaseService的方法调用都改为添加rx前缀的。

参考

Contents
  1. 1. 新增Maven 依赖
  2. 2. 代码的修改
    1. 2.1. MainVerticle
    2. 2.2. Service 相关的改动
  3. 3. 参考