This is an automated email from the ASF dual-hosted git repository. amichai pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/aries-rsa.git
commit ab88d8c9b6a694ce36f82474f74b93f865ac7c01 Author: Amichai Rothman <[email protected]> AuthorDate: Mon May 27 17:31:44 2024 +0300 Add class Javadocs explaining the basic TCP provider design --- .../apache/aries/rsa/provider/tcp/EndpointPropertiesParser.java | 4 ++++ .../main/java/org/apache/aries/rsa/provider/tcp/MethodInvoker.java | 4 ++++ .../main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java | 3 +++ .../org/apache/aries/rsa/provider/tcp/TcpInvocationHandler.java | 5 +++++ .../main/java/org/apache/aries/rsa/provider/tcp/TcpProvider.java | 7 +++++++ .../src/main/java/org/apache/aries/rsa/provider/tcp/TcpServer.java | 5 +++++ 6 files changed, 28 insertions(+) diff --git a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/EndpointPropertiesParser.java b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/EndpointPropertiesParser.java index 942ebee0..05e3f114 100644 --- a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/EndpointPropertiesParser.java +++ b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/EndpointPropertiesParser.java @@ -23,6 +23,10 @@ import java.util.UUID; import org.osgi.service.remoteserviceadmin.EndpointDescription; +/** + * A convenience class for extracting endpoint configuration properties + * and defaults. + */ public class EndpointPropertiesParser { static final String PORT_KEY = "aries.rsa.port"; static final String HOSTNAME_KEY = "aries.rsa.hostname"; diff --git a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/MethodInvoker.java b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/MethodInvoker.java index 0dcc810c..c5395ff8 100644 --- a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/MethodInvoker.java +++ b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/MethodInvoker.java @@ -22,6 +22,10 @@ import java.lang.reflect.Method; import java.util.Arrays; import java.util.HashMap; +/** + * Reflectively invokes the methods of a service object + * given the method name and parameter values. + */ public class MethodInvoker { private HashMap<Object, Object> primTypes; diff --git a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java index a29cdbfe..8c4d8cbb 100644 --- a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java +++ b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java @@ -28,6 +28,9 @@ import org.apache.aries.rsa.spi.Endpoint; import org.osgi.service.remoteserviceadmin.EndpointDescription; import org.osgi.service.remoteserviceadmin.RemoteConstants; +/** + * Contains the details of a TcpProvider's Endpoint (exported service). + */ public class TcpEndpoint implements Endpoint { private String hostname; diff --git a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpInvocationHandler.java b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpInvocationHandler.java index 9f08fbd2..80fe6477 100644 --- a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpInvocationHandler.java +++ b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpInvocationHandler.java @@ -41,6 +41,11 @@ import org.osgi.framework.Version; import org.osgi.util.promise.Deferred; import org.osgi.util.promise.Promise; +/** + * The InvocationHandler backing the client-side service proxy, + * which sends the details of the method invocations + * over a TCP connection, to be executed by the remote service. + */ public class TcpInvocationHandler implements InvocationHandler { private String host; private int port; diff --git a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpProvider.java b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpProvider.java index 4b0ea489..348c82bc 100644 --- a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpProvider.java +++ b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpProvider.java @@ -41,6 +41,13 @@ import org.osgi.service.remoteserviceadmin.RemoteConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * The main TCP distribution provider class, which can import remote endpoints + * (by creating a local proxy that sends method invocations to the remote + * services via a TcpInvocationHandler) and export local services (by adding the + * service to a TcpServer that can handle client connections and dispatch the + * method invocations to the service instance.) + */ @SuppressWarnings("rawtypes") @RSADistributionProvider(configs="aries.tcp") @Component(property = { // diff --git a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpServer.java b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpServer.java index 52ea8920..abce724e 100644 --- a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpServer.java +++ b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpServer.java @@ -35,6 +35,11 @@ import org.osgi.util.promise.Promise; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * A server listening on a single TCP port, which accepts connections + * and dispatches method invocation requests to one or more MethodInovkers + * (according to the target endpoint ID). + */ public class TcpServer implements Closeable, Runnable { private Logger log = LoggerFactory.getLogger(TcpServer.class); private ServerSocket serverSocket;
