diff options
Diffstat (limited to 'jsonrpc/src/main/java/com/orbekk/rpc')
-rw-r--r-- | jsonrpc/src/main/java/com/orbekk/rpc/App.java | 6 | ||||
-rw-r--r-- | jsonrpc/src/main/java/com/orbekk/rpc/Client.java | 7 | ||||
-rw-r--r-- | jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java | 11 |
3 files changed, 17 insertions, 7 deletions
diff --git a/jsonrpc/src/main/java/com/orbekk/rpc/App.java b/jsonrpc/src/main/java/com/orbekk/rpc/App.java index ffd316d..2162a59 100644 --- a/jsonrpc/src/main/java/com/orbekk/rpc/App.java +++ b/jsonrpc/src/main/java/com/orbekk/rpc/App.java @@ -1,6 +1,7 @@ package com.orbekk.rpc; import com.googlecode.jsonrpc4j.JsonRpcServer; +import com.orbekk.same.SameState; import com.orbekk.same.SameService; import com.orbekk.same.SameServiceImpl; import org.eclipse.jetty.server.Server; @@ -14,12 +15,13 @@ public class App { int port = Integer.parseInt(args[0]); String networkName = args[1]; - SameService service = new SameServiceImpl(networkName); + SameState sameState = new SameState(networkName); + SameServiceImpl service = new SameServiceImpl(sameState); JsonRpcServer jsonServer = new JsonRpcServer(service, SameService.class); Server server = new Server(port); - RpcHandler rpcHandler = new RpcHandler(jsonServer); + RpcHandler rpcHandler = new RpcHandler(jsonServer, service); server.setHandler(rpcHandler); try { diff --git a/jsonrpc/src/main/java/com/orbekk/rpc/Client.java b/jsonrpc/src/main/java/com/orbekk/rpc/Client.java index ba77df6..99abf93 100644 --- a/jsonrpc/src/main/java/com/orbekk/rpc/Client.java +++ b/jsonrpc/src/main/java/com/orbekk/rpc/Client.java @@ -10,11 +10,12 @@ import com.googlecode.jsonrpc4j.ProxyUtil; public class Client { public static void main(String[] args) { - if (args.length < 1) { - System.err.println("Arguments: networkAddress"); + if (args.length < 2) { + System.err.println("Arguments: networkAddress port"); System.exit(1); } String networkAddress = args[0]; + int port = Integer.parseInt(args[1]); JsonRpcHttpClient client = null; try { client = new JsonRpcHttpClient(new URL(networkAddress)); @@ -26,6 +27,6 @@ public class Client { SameService.class, client); service.notifyNetwork("NoNetwork"); - System.out.println(service.participateNetwork("FirstNetwork")); + service.participateNetwork("FirstNetwork", port); } } diff --git a/jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java b/jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java index bc76e4e..39676fe 100644 --- a/jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java +++ b/jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java @@ -10,18 +10,25 @@ import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.handler.AbstractHandler; import com.googlecode.jsonrpc4j.JsonRpcServer; +import com.orbekk.same.CallerInfoListener; public class RpcHandler extends AbstractHandler { private JsonRpcServer rpcServer; + private CallerInfoListener callerInfoListener; - public RpcHandler(JsonRpcServer rpcServer) { + public RpcHandler(JsonRpcServer rpcServer, + CallerInfoListener callerInfoListener) { this.rpcServer = rpcServer; + this.callerInfoListener = callerInfoListener; } @Override - public void handle(String target, Request baseRequest, + public synchronized void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + if (callerInfoListener != null) { + callerInfoListener.setCaller(request.getRemoteAddr()); + } rpcServer.handle(request, response); } } |