diff --git a/banking-client/src/main/java/ufrn/imd/controller/Controller.java b/banking-client/src/main/java/ufrn/imd/controller/Controller.java index ab932a257b9079b16d646302917bf7b768d00eb4..b096e53ac2b72da6bd16bab300631399a7a479f8 100644 --- a/banking-client/src/main/java/ufrn/imd/controller/Controller.java +++ b/banking-client/src/main/java/ufrn/imd/controller/Controller.java @@ -9,5 +9,5 @@ import java.rmi.RemoteException; public interface Controller extends Remote { public void registerClient(Client client) throws RemoteException; - public ServerResponse getResponse(Client client) throws RemoteException; + public ServerResponse getResponse(Object client) throws RemoteException; } diff --git a/banking-client/src/main/java/ufrn/imd/utils/MachineState.java b/banking-client/src/main/java/ufrn/imd/utils/MachineState.java index b810c0cc1104fe4426a0079faab304ba9f2783e2..a955e56a2d02b24d76acdc477b54e93bdcea545f 100644 --- a/banking-client/src/main/java/ufrn/imd/utils/MachineState.java +++ b/banking-client/src/main/java/ufrn/imd/utils/MachineState.java @@ -4,6 +4,7 @@ import lombok.Data; import ufrn.imd.controller.Controller; import ufrn.imd.domain.Account; import ufrn.imd.domain.Client; +import ufrn.imd.utils.message.DepositMessage; import java.net.MalformedURLException; import java.rmi.Naming; @@ -68,13 +69,20 @@ public class MachineState { } else if(state.equals(DEPOSIT)) { String v = sc.nextLine(); Client client = new Client(1); + DepositMessage depositMessage = new DepositMessage(client, Double.parseDouble(v)); Controller server = (Controller) Naming.lookup(HOST_DEPOSIT_SERVICE); - ServerResponse response = server.getResponse(client); + ServerResponse response = server.getResponse(depositMessage); if(response.getStatus() == 200) { System.out.println( String.format(">>> Your balance is: %.2f", ((Account)response.getBody()).getBalance()) ); } + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } else if(state.equals(BALANCE)) { Client client = new Client(1); Controller server = (Controller) Naming.lookup(HOST_BALANCE_SERVICE); @@ -84,6 +92,12 @@ public class MachineState { String.format(">>> Your balance is: %.2f", ((Account)response.getBody()).getBalance()) ); } + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } } diff --git a/banking-client/src/main/java/ufrn/imd/utils/message/DepositMessage.java b/banking-client/src/main/java/ufrn/imd/utils/message/DepositMessage.java new file mode 100644 index 0000000000000000000000000000000000000000..4b6e3da72f55566ba318c15e0595d2329171c904 --- /dev/null +++ b/banking-client/src/main/java/ufrn/imd/utils/message/DepositMessage.java @@ -0,0 +1,17 @@ +package ufrn.imd.utils.message; + +import lombok.AllArgsConstructor; +import lombok.Data; +import ufrn.imd.domain.Client; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +public class DepositMessage implements Serializable { + + private static final long serialVersionUID = 2L; + + private Client client; + private Double value; +} diff --git a/banking-server/.idea/compiler.xml b/banking-server/.idea/compiler.xml index 1e78cc9ce0775fa751b7c9ccd7da8294958c203e..0830c9341634c6202b41204c2e6eb85fb959b090 100644 --- a/banking-server/.idea/compiler.xml +++ b/banking-server/.idea/compiler.xml @@ -2,6 +2,7 @@ <project version="4"> <component name="CompilerConfiguration"> <annotationProcessing> + <profile default="true" name="Default" enabled="true" /> <profile name="Maven default annotation processors profile" enabled="true"> <sourceOutputDir name="target/generated-sources/annotations" /> <sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> diff --git a/banking-server/src/main/java/ufrn/imd/controller/Controller.java b/banking-server/src/main/java/ufrn/imd/controller/Controller.java index ab932a257b9079b16d646302917bf7b768d00eb4..d5be018d3c01b6e18b13aa9d9028f66bb795589d 100644 --- a/banking-server/src/main/java/ufrn/imd/controller/Controller.java +++ b/banking-server/src/main/java/ufrn/imd/controller/Controller.java @@ -7,7 +7,6 @@ import java.rmi.Remote; import java.rmi.RemoteException; public interface Controller extends Remote { - public void registerClient(Client client) throws RemoteException; - public ServerResponse getResponse(Client client) throws RemoteException; + public ServerResponse getResponse(Object client) throws RemoteException; } diff --git a/banking-server/src/main/java/ufrn/imd/controller/impl/BalanceControllerImpl.java b/banking-server/src/main/java/ufrn/imd/controller/impl/BalanceControllerImpl.java index 8ae43332ba961fda0f7a7dcf5396e189462d47c3..50d9cb87a9e624e039f790f7cad9bfdb09e97fb4 100644 --- a/banking-server/src/main/java/ufrn/imd/controller/impl/BalanceControllerImpl.java +++ b/banking-server/src/main/java/ufrn/imd/controller/impl/BalanceControllerImpl.java @@ -29,59 +29,13 @@ public class BalanceControllerImpl extends UnicastRemoteObject implements Contro Naming.bind(HOST_BALANCE_SERVICE, this); log.info("Starting Deposit service!"); this.service = service; -// new Notify(service).start(); log.info(String.format("Initializing server in %s", HOST_BALANCE_SERVICE)); } @Override - public void registerClient(Client client) throws RemoteException { - clients.add(client); - log.info("new client registred"); - log.info(String.format("total users: %d", clients.size())); - } - - @Override - public ServerResponse getResponse(Client client) throws RemoteException { + public ServerResponse getResponse(Object obj) throws RemoteException { + Client client = (Client) obj; return this.service.balance(Optional.of(client)); } - - - private class Notify extends Thread{ - - private final BalanceServiceImpl service; - - public Notify(BalanceServiceImpl service) { - super(); - this.service = service; - } - public void run() { - - for(;;) { - if(clients.size() > 0) { - - log.info("notyfing the clients!"); - int i = 0; - clients.stream().forEach(client -> { - try { - - log.info(String.format("Clients waiting %d", clients.size())); - this.service.balance(Optional.of(client)); - clients.remove(); - log.info(String.format("Clients waiting %d", clients.size())); - } catch (RemoteException e) { - e.printStackTrace(); - } - }); - - try { - Thread.sleep(15 * 1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } - - } - } } diff --git a/banking-server/src/main/java/ufrn/imd/controller/impl/DepositControllerImpl.java b/banking-server/src/main/java/ufrn/imd/controller/impl/DepositControllerImpl.java index 179ed838cded8ecab6193c7badfafc0c10e9fc12..1e37f28ff725ffc585139f7bfe6f20e937c9c352 100644 --- a/banking-server/src/main/java/ufrn/imd/controller/impl/DepositControllerImpl.java +++ b/banking-server/src/main/java/ufrn/imd/controller/impl/DepositControllerImpl.java @@ -5,6 +5,7 @@ import ufrn.imd.controller.Controller; import ufrn.imd.domain.Client; import ufrn.imd.service.impl.DepositServiceImpl; import ufrn.imd.utils.ServerResponse; +import ufrn.imd.utils.message.DepositMessage; import java.net.MalformedURLException; import java.rmi.AlreadyBoundException; @@ -28,61 +29,15 @@ public class DepositControllerImpl extends UnicastRemoteObject implements Contro super(); log.info("Starting Deposit service!"); -// new Notify(service).start(); log.info(String.format("Initializing server in %s", HOST_DEPOSIT_SERVICE)); - this.service = service; LocateRegistry.createRegistry(PORT_DEPOSIT_SERVICE); Naming.bind(HOST_DEPOSIT_SERVICE, this); } - @Override - public void registerClient(Client client) throws RemoteException { - clients.add(client); - log.info("new client registred"); - log.info(String.format("total users: %d", clients.size())); - } - - public ServerResponse getResponse(Client client) throws RemoteException { - return this.service.deposit(200.00, Optional.of(client)); + public ServerResponse getResponse(Object obj) throws RemoteException { + DepositMessage depositMessage = (DepositMessage)obj; + return this.service.deposit(depositMessage.getValue(), Optional.of(depositMessage.getClient())); } - - private class Notify extends Thread{ - - private final DepositServiceImpl service; - - public Notify(DepositServiceImpl service) { - super(); - this.service = service; - } - public void run() { - - for(;;) { - - if(clients.size() > 0) { - - log.info("notyfing the clients!"); - int i = 0; - clients.stream().forEach(client -> { - try { - log.info(String.format("Clients waiting %d", clients.size())); - ServerResponse deposit = this.service.deposit(200.00, Optional.of(client)); - serverResponses.add(deposit); - log.info(String.format("Clients waiting %d", clients.size())); - - } catch (RemoteException e) { - e.printStackTrace(); - } - }); - try { - Thread.sleep(15 * 1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } - - } - } } diff --git a/banking-server/src/main/java/ufrn/imd/utils/message/DepositMessage.java b/banking-server/src/main/java/ufrn/imd/utils/message/DepositMessage.java new file mode 100644 index 0000000000000000000000000000000000000000..2badcd3f628f1fceaf86549d8fe1b286b4738665 --- /dev/null +++ b/banking-server/src/main/java/ufrn/imd/utils/message/DepositMessage.java @@ -0,0 +1,16 @@ +package ufrn.imd.utils.message; + +import lombok.AllArgsConstructor; +import lombok.Data; +import ufrn.imd.domain.Client; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +public class DepositMessage implements Serializable { + private static final long serialVersionUID = 2L; + + private Client client; + private Double value; +} diff --git a/banking-server/target/classes/ufrn/imd/controller/Controller.class b/banking-server/target/classes/ufrn/imd/controller/Controller.class index 9f65cc4b43514c694d42fba6e72344725bc510de..d963fb57c51b2717ad5df0b7a9c8b917478a9e46 100644 Binary files a/banking-server/target/classes/ufrn/imd/controller/Controller.class and b/banking-server/target/classes/ufrn/imd/controller/Controller.class differ diff --git a/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl$Notify.class b/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl$Notify.class deleted file mode 100644 index 05c9dcdc8d1772381efcdb551579129b88ee152d..0000000000000000000000000000000000000000 Binary files a/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl$Notify.class and /dev/null differ diff --git a/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl.class b/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl.class index fabf3e6087f27cc0d99ba3f18efed1ab04119893..e990c821bbca67e3753e9d7b7726bf02f8827d69 100644 Binary files a/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl.class and b/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl.class differ diff --git a/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl$Notify.class b/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl$Notify.class deleted file mode 100644 index 1e65ef3171eb3e0c93d93fa451f58c6ac729a57c..0000000000000000000000000000000000000000 Binary files a/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl$Notify.class and /dev/null differ diff --git a/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl.class b/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl.class index ebfe39d9843762fa90cc9a12183aefdcd3f8aded..78b16605a3148faa5588123ef88a11f98ff3a3ce 100644 Binary files a/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl.class and b/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl.class differ