You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by ru...@apache.org on 2020/12/16 13:21:58 UTC
[incubator-ratis] branch master updated: RATIS-1243. Create
ratis-server-api module. (#357)
This is an automated email from the ASF dual-hosted git repository.
runzhiwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ratis.git
The following commit(s) were added to refs/heads/master by this push:
new a8bddc5 RATIS-1243. Create ratis-server-api module. (#357)
a8bddc5 is described below
commit a8bddc5af3ba4b4c7db48de3b45f267993e51dc7
Author: Tsz-Wo Nicholas Sze <sz...@apache.org>
AuthorDate: Wed Dec 16 21:21:09 2020 +0800
RATIS-1243. Create ratis-server-api module. (#357)
---
pom.xml | 7 ++++
.../org/apache/ratis/grpc/server/GrpcService.java | 13 ++++---
.../ratis/hadooprpc/server/HadoopRpcService.java | 11 +++---
.../apache/ratis/netty/server/NettyRpcService.java | 12 +++----
{ratis-server => ratis-server-api}/pom.xml | 42 ++--------------------
.../org/apache/ratis/server/DataStreamServer.java | 0
.../apache/ratis/server/DataStreamServerRpc.java | 0
.../java/org/apache/ratis/server/DivisionInfo.java | 2 +-
.../apache/ratis/server/DivisionProperties.java | 0
.../org/apache/ratis/server/RaftConfiguration.java | 0
.../apache/ratis/server/RaftServerConfigKeys.java | 0
.../org/apache/ratis/server/RaftServerMXBean.java | 2 +-
.../org/apache/ratis/server/RaftServerRpc.java | 22 +-----------
.../ratis/server/RaftServerRpcWithProxy.java | 0
.../java/org/apache/ratis/server/RetryCache.java | 0
.../apache/ratis/server/leader/FollowerInfo.java | 0
.../protocol/RaftServerAsynchronousProtocol.java | 2 +-
.../ratis/server/protocol/RaftServerProtocol.java | 0
.../apache/ratis/server/protocol/TermIndex.java | 0
.../ratis/server/raftlog/RaftLogIOException.java | 0
.../apache/ratis/server/raftlog/RaftLogIndex.java | 2 +-
ratis-server/pom.xml | 5 +++
22 files changed, 36 insertions(+), 84 deletions(-)
diff --git a/pom.xml b/pom.xml
index 8c34481..d7bc110 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,6 +73,7 @@
<module>ratis-proto</module>
<module>ratis-common</module>
<module>ratis-client</module>
+ <module>ratis-server-api</module>
<module>ratis-server</module>
<module>ratis-resource-bundle</module>
<module>ratis-grpc</module>
@@ -383,6 +384,12 @@
</dependency>
<dependency>
+ <artifactId>ratis-server-api</artifactId>
+ <groupId>org.apache.ratis</groupId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
<artifactId>ratis-server</artifactId>
<groupId>org.apache.ratis</groupId>
<version>${project.version}</version>
diff --git a/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcService.java b/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcService.java
index 0d0f72e..57500e7 100644
--- a/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcService.java
+++ b/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcService.java
@@ -26,7 +26,6 @@ import org.apache.ratis.protocol.RaftPeerId;
import org.apache.ratis.rpc.SupportedRpcType;
import org.apache.ratis.server.RaftServer;
import org.apache.ratis.server.RaftServerConfigKeys;
-import org.apache.ratis.server.RaftServerRpc;
import org.apache.ratis.server.RaftServerRpcWithProxy;
import org.apache.ratis.thirdparty.io.grpc.ServerInterceptors;
import org.apache.ratis.thirdparty.io.grpc.netty.GrpcSslContexts;
@@ -47,26 +46,26 @@ import java.util.function.Supplier;
import static org.apache.ratis.thirdparty.io.netty.handler.ssl.SslProvider.OPENSSL;
-/** A grpc implementation of {@link RaftServerRpc}. */
+/** A grpc implementation of {@link org.apache.ratis.server.RaftServerRpc}. */
public final class GrpcService extends RaftServerRpcWithProxy<GrpcServerProtocolClient,
PeerProxyMap<GrpcServerProtocolClient>> {
static final Logger LOG = LoggerFactory.getLogger(GrpcService.class);
public static final String GRPC_SEND_SERVER_REQUEST =
JavaUtils.getClassSimpleName(GrpcService.class) + ".sendRequest";
- public static final class Builder extends RaftServerRpc.Builder<Builder, GrpcService> {
+ public static final class Builder {
+ private RaftServer server;
private GrpcTlsConfig tlsConfig;
private Builder() {}
- @Override
- public Builder getThis() {
+ public Builder setServer(RaftServer raftServer) {
+ this.server = raftServer;
return this;
}
- @Override
public GrpcService build() {
- return new GrpcService(getServer(), getTlsConfig());
+ return new GrpcService(server, getTlsConfig());
}
public Builder setTlsConfig(GrpcTlsConfig tlsConfig) {
diff --git a/ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/server/HadoopRpcService.java b/ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/server/HadoopRpcService.java
index 8552765..a9ca1a9 100644
--- a/ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/server/HadoopRpcService.java
+++ b/ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/server/HadoopRpcService.java
@@ -37,7 +37,6 @@ import org.apache.ratis.proto.hadoop.HadoopCompatibilityProtos.ServerRequestProt
import org.apache.ratis.protocol.RaftPeerId;
import org.apache.ratis.rpc.SupportedRpcType;
import org.apache.ratis.server.RaftServer;
-import org.apache.ratis.server.RaftServerRpc;
import org.apache.ratis.server.RaftServerRpcWithProxy;
import org.apache.ratis.server.protocol.RaftServerProtocol;
import com.google.protobuf.BlockingService;
@@ -61,7 +60,8 @@ public final class HadoopRpcService extends RaftServerRpcWithProxy<Proxy<RaftSer
static final String CLASS_NAME = JavaUtils.getClassSimpleName(HadoopRpcService.class);
public static final String SEND_SERVER_REQUEST = CLASS_NAME + ".sendServerRequest";
- public static final class Builder extends RaftServerRpc.Builder<Builder, HadoopRpcService> {
+ public static final class Builder {
+ private RaftServer server;
private Configuration conf;
private Builder() {}
@@ -78,14 +78,13 @@ public final class HadoopRpcService extends RaftServerRpcWithProxy<Proxy<RaftSer
return this;
}
- @Override
- public Builder getThis() {
+ public Builder setServer(RaftServer raftServer) {
+ this.server = raftServer;
return this;
}
- @Override
public HadoopRpcService build() {
- return new HadoopRpcService(getServer(), getConf());
+ return new HadoopRpcService(server, getConf());
}
}
diff --git a/ratis-netty/src/main/java/org/apache/ratis/netty/server/NettyRpcService.java b/ratis-netty/src/main/java/org/apache/ratis/netty/server/NettyRpcService.java
index 7c4b1b3..8b9729f 100644
--- a/ratis-netty/src/main/java/org/apache/ratis/netty/server/NettyRpcService.java
+++ b/ratis-netty/src/main/java/org/apache/ratis/netty/server/NettyRpcService.java
@@ -26,7 +26,6 @@ import org.apache.ratis.protocol.RaftClientReply;
import org.apache.ratis.protocol.RaftPeerId;
import org.apache.ratis.rpc.SupportedRpcType;
import org.apache.ratis.server.RaftServer;
-import org.apache.ratis.server.RaftServerRpc;
import org.apache.ratis.server.RaftServerRpcWithProxy;
import org.apache.ratis.thirdparty.io.netty.bootstrap.ServerBootstrap;
import org.apache.ratis.thirdparty.io.netty.channel.*;
@@ -62,17 +61,18 @@ public final class NettyRpcService extends RaftServerRpcWithProxy<NettyRpcProxy,
static final String CLASS_NAME = JavaUtils.getClassSimpleName(NettyRpcService.class);
public static final String SEND_SERVER_REQUEST = CLASS_NAME + ".sendServerRequest";
- public static final class Builder extends RaftServerRpc.Builder<Builder, NettyRpcService> {
+ public static final class Builder {
+ private RaftServer server;
+
private Builder() {}
- @Override
- public Builder getThis() {
+ public Builder setServer(RaftServer raftServer) {
+ this.server = raftServer;
return this;
}
- @Override
public NettyRpcService build() {
- return new NettyRpcService(getServer());
+ return new NettyRpcService(server);
}
}
diff --git a/ratis-server/pom.xml b/ratis-server-api/pom.xml
similarity index 61%
copy from ratis-server/pom.xml
copy to ratis-server-api/pom.xml
index 646bc6e..fce56f2 100644
--- a/ratis-server/pom.xml
+++ b/ratis-server-api/pom.xml
@@ -20,8 +20,8 @@
<version>1.1.0-SNAPSHOT</version>
</parent>
- <artifactId>ratis-server</artifactId>
- <name>Apache Ratis Server</name>
+ <artifactId>ratis-server-api</artifactId>
+ <name>Apache Ratis Server API</name>
<dependencies>
<dependency>
@@ -37,23 +37,11 @@
<artifactId>ratis-common</artifactId>
<groupId>org.apache.ratis</groupId>
</dependency>
- <dependency>
- <artifactId>ratis-common</artifactId>
- <groupId>org.apache.ratis</groupId>
- <scope>test</scope>
- <type>test-jar</type>
- </dependency>
<dependency>
<artifactId>ratis-client</artifactId>
<groupId>org.apache.ratis</groupId>
</dependency>
- <dependency>
- <artifactId>ratis-client</artifactId>
- <groupId>org.apache.ratis</groupId>
- <scope>test</scope>
- <type>test-jar</type>
- </dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -63,31 +51,5 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.ratis</groupId>
- <artifactId>ratis-metrics</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.ratis</groupId>
- <artifactId>ratis-metrics</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/DataStreamServer.java b/ratis-server-api/src/main/java/org/apache/ratis/server/DataStreamServer.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/DataStreamServer.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/DataStreamServer.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/DataStreamServerRpc.java b/ratis-server-api/src/main/java/org/apache/ratis/server/DataStreamServerRpc.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/DataStreamServerRpc.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/DataStreamServerRpc.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/DivisionInfo.java b/ratis-server-api/src/main/java/org/apache/ratis/server/DivisionInfo.java
similarity index 97%
rename from ratis-server/src/main/java/org/apache/ratis/server/DivisionInfo.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/DivisionInfo.java
index 2be7018..f815924 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/DivisionInfo.java
+++ b/ratis-server-api/src/main/java/org/apache/ratis/server/DivisionInfo.java
@@ -23,7 +23,7 @@ import org.apache.ratis.proto.RaftProtos.RoleInfoProto;
import org.apache.ratis.util.LifeCycle;
/**
- * Information of a {@link RaftServer.Division}.
+ * Information of a raft server division.
*/
public interface DivisionInfo {
/** @return the current role of this server division. */
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/DivisionProperties.java b/ratis-server-api/src/main/java/org/apache/ratis/server/DivisionProperties.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/DivisionProperties.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/DivisionProperties.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/RaftConfiguration.java b/ratis-server-api/src/main/java/org/apache/ratis/server/RaftConfiguration.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/RaftConfiguration.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/RaftConfiguration.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java b/ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/RaftServerMXBean.java b/ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerMXBean.java
similarity index 99%
rename from ratis-server/src/main/java/org/apache/ratis/server/RaftServerMXBean.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerMXBean.java
index 70e5790..06499a1 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/RaftServerMXBean.java
+++ b/ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerMXBean.java
@@ -1,4 +1,4 @@
-/**
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/RaftServerRpc.java b/ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerRpc.java
similarity index 78%
rename from ratis-server/src/main/java/org/apache/ratis/server/RaftServerRpc.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerRpc.java
index 6172f1e..df434d3 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/RaftServerRpc.java
+++ b/ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerRpc.java
@@ -18,40 +18,20 @@
package org.apache.ratis.server;
import org.apache.ratis.protocol.RaftGroupId;
+import org.apache.ratis.protocol.RaftPeer;
import org.apache.ratis.protocol.RaftPeerId;
import org.apache.ratis.rpc.RpcType;
-import org.apache.ratis.protocol.RaftPeer;
import org.apache.ratis.server.protocol.RaftServerProtocol;
import java.io.Closeable;
import java.io.IOException;
import java.net.InetSocketAddress;
-import java.util.Objects;
/**
* An server-side interface for supporting different RPC implementations
* such as Netty, gRPC and Hadoop.
*/
public interface RaftServerRpc extends RaftServerProtocol, RpcType.Get, RaftPeer.Add, Closeable {
- /** To build {@link RaftServerRpc} objects. */
- abstract class Builder<B extends Builder, RPC extends RaftServerRpc> {
- private RaftServer server;
-
- public RaftServer getServer() {
- return Objects.requireNonNull(server,
- "The 'server' field is not initialized.");
- }
-
- public B setServer(RaftServer raftServer) {
- this.server = raftServer;
- return getThis();
- }
-
- protected abstract B getThis();
-
- public abstract RPC build();
- }
-
/** Start the RPC service. */
void start() throws IOException;
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/RaftServerRpcWithProxy.java b/ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerRpcWithProxy.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/RaftServerRpcWithProxy.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerRpcWithProxy.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/RetryCache.java b/ratis-server-api/src/main/java/org/apache/ratis/server/RetryCache.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/RetryCache.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/RetryCache.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/leader/FollowerInfo.java b/ratis-server-api/src/main/java/org/apache/ratis/server/leader/FollowerInfo.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/leader/FollowerInfo.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/leader/FollowerInfo.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/protocol/RaftServerAsynchronousProtocol.java b/ratis-server-api/src/main/java/org/apache/ratis/server/protocol/RaftServerAsynchronousProtocol.java
similarity index 99%
rename from ratis-server/src/main/java/org/apache/ratis/server/protocol/RaftServerAsynchronousProtocol.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/protocol/RaftServerAsynchronousProtocol.java
index d13f7f5..2c7e1d5 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/protocol/RaftServerAsynchronousProtocol.java
+++ b/ratis-server-api/src/main/java/org/apache/ratis/server/protocol/RaftServerAsynchronousProtocol.java
@@ -1,4 +1,4 @@
-/**
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/protocol/RaftServerProtocol.java b/ratis-server-api/src/main/java/org/apache/ratis/server/protocol/RaftServerProtocol.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/protocol/RaftServerProtocol.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/protocol/RaftServerProtocol.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/protocol/TermIndex.java b/ratis-server-api/src/main/java/org/apache/ratis/server/protocol/TermIndex.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/protocol/TermIndex.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/protocol/TermIndex.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/RaftLogIOException.java b/ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLogIOException.java
similarity index 100%
rename from ratis-server/src/main/java/org/apache/ratis/server/raftlog/RaftLogIOException.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLogIOException.java
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/RaftLogIndex.java b/ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLogIndex.java
similarity index 97%
rename from ratis-server/src/main/java/org/apache/ratis/server/raftlog/RaftLogIndex.java
rename to ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLogIndex.java
index 1241c5b..ed545e2 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/RaftLogIndex.java
+++ b/ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLogIndex.java
@@ -25,7 +25,7 @@ import java.util.function.Consumer;
import java.util.function.LongUnaryOperator;
/**
- * Indices of {@link RaftLog} such as commit index, match index, etc.
+ * Indices of a raft log such as commit index, match index, etc.
*
* This class is thread safe.
*/
diff --git a/ratis-server/pom.xml b/ratis-server/pom.xml
index 646bc6e..3959e40 100644
--- a/ratis-server/pom.xml
+++ b/ratis-server/pom.xml
@@ -56,6 +56,11 @@
</dependency>
<dependency>
+ <artifactId>ratis-server-api</artifactId>
+ <groupId>org.apache.ratis</groupId>
+ </dependency>
+
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>