From 27fae412d022b124915663a8cf655c1564ed1d47 Mon Sep 17 00:00:00 2001 From: "Luiz F. Picolo" Date: Sun, 23 Oct 2022 22:53:29 -0400 Subject: [PATCH] =?UTF-8?q?Removido=20arquivos=20tempor=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .classpath | 6 ++ .gitignore | 100 +++++++++++++++++++- .project | 28 ++++++ Dockerfile | 9 ++ bin/implementacoes/IsEvenImpl.class | Bin 932 -> 0 bytes bin/implementacoes/VotacaoImpl.class | Bin 4358 -> 4858 bytes bin/implementacoes/VotoImpl.class | Bin 843 -> 903 bytes bin/interfaces/IsEvenInterface.class | Bin 223 -> 0 bytes bin/interfaces/VotacaoInterface.class | Bin 454 -> 666 bytes docker-compose.yml | 9 ++ .DS_Store => src/.DS_Store | Bin 6148 -> 6148 bytes src/Cliente.java | 6 +- src/ServidorApuracao.java | 33 +++++++ src/{Servidor.java => ServidorVotacao.java} | 38 +++++--- src/implementacoes/ApuracaoImpl.java | 30 ++++++ src/implementacoes/IsEvenImpl.java | 24 ----- src/implementacoes/VotacaoImpl.java | 15 +++ src/implementacoes/VotoImpl.java | 7 +- src/interfaces/ApuracaoInterface.java | 10 ++ src/interfaces/IsEvenInterface.java | 7 -- src/interfaces/VotacaoInterface.java | 4 + src/interfaces/VotoInterface.java | 10 ++ 22 files changed, 286 insertions(+), 50 deletions(-) create mode 100644 .classpath create mode 100644 .project create mode 100644 Dockerfile delete mode 100644 bin/implementacoes/IsEvenImpl.class delete mode 100644 bin/interfaces/IsEvenInterface.class create mode 100644 docker-compose.yml rename .DS_Store => src/.DS_Store (79%) create mode 100644 src/ServidorApuracao.java rename src/{Servidor.java => ServidorVotacao.java} (52%) create mode 100644 src/implementacoes/ApuracaoImpl.java delete mode 100644 src/implementacoes/IsEvenImpl.java create mode 100644 src/interfaces/ApuracaoInterface.java delete mode 100644 src/interfaces/IsEvenInterface.java create mode 100644 src/interfaces/VotoInterface.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..0cbf9cd --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/.gitignore b/.gitignore index a17f1cf..f3212c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,96 @@ -bin/*.class -.classpath -.project -.settings \ No newline at end of file +# Created by https://www.toptal.com/developers/gitignore/api/eclipse,java +# Edit at https://www.toptal.com/developers/gitignore?templates=eclipse,java + +### Eclipse ### +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ +.apt_generated_test/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +# Uncomment this line if you wish to ignore the project description file. +# Typically, this file would be tracked if it contains build/dependency configurations: +#.project + +### Eclipse Patch ### +# Spring Boot Tooling +.sts4-cache/ + +### Java ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* + +# End of https://www.toptal.com/developers/gitignore/api/eclipse,java diff --git a/.project b/.project new file mode 100644 index 0000000..b4815a7 --- /dev/null +++ b/.project @@ -0,0 +1,28 @@ + + + VOTACAO-JAVA-RMI + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + + + 1666374968243 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..322e409 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM openjdk:8 + +WORKDIR /app + +COPY /src /app/src + +RUN cd /app/src/ && javac Servidor.java + +EXPOSE 8899 \ No newline at end of file diff --git a/bin/implementacoes/IsEvenImpl.class b/bin/implementacoes/IsEvenImpl.class deleted file mode 100644 index d77169777699935a68289f7524ccff800e20bbcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 932 zcmZ`%TTc@~6#fp~vQQVnaubTU6)!C+tKv0PA4E)QsuC+r^u-L@5eN6u>`ohe@rU^6 zn+Y%a0Es5P@aB&)o@pzXpqreXGiT0s&NttjpTEBS0B{d?Yzz=)RM-k+C?hTWSf*Yz zUG2!I%0U|zVPQ*jgqMWMOJ&lLiMJjpU!?lE3}Y>yZEQ(j+ZZIwsz}S^jqnd^{0R`o z7_3ClkV&fIXubN7K#vI{D{+)+5$T2q+A_3D!#7lsRND?!dtaVYH?q`LrEw$mE6C2qYn2i+$!Im=W*$K})|?DWOpN zuN)PEtLhk$)KMIB_dmNixHxAn zdY-$KdTn|vy2UExhRG;7C}WXT6|I(xnuIxKeG5>oCvB0CH?(o|)I<9I<#eiWBTDvq!vU7x$3=(oLS=zX6!Pg=3gx&*>#$ z3e&vf!NSauQi`(;%KeJj?{Ht{&+OrBVHX#6ad8)3!TRtKS!*Y=!#Nq4E_p_PX-u&< hhjAW-$!@o)UY&k7u88Zn!Ch~5ku=ZlEp`WR`!`T2(#HS* diff --git a/bin/implementacoes/VotacaoImpl.class b/bin/implementacoes/VotacaoImpl.class index 914d019dafcaf536cb6be8870e51dd4dc8363572..b30fc738a9e178dcb931359dc3c52261d0b7d2f1 100644 GIT binary patch delta 1953 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 TE#L72KZ?(3@1HosS#tjY;QB4; diff --git a/bin/implementacoes/VotoImpl.class b/bin/implementacoes/VotoImpl.class index 08a86e87b7eef2011f38735198f47e4a5a3f5b88..99420f56a0af8e262c0bcef8a1bede35898102cb 100644 GIT binary patch delta 410 zcmZvWPfNo<5XIjnZDQimXsjArqp5#t8--lGcon<}LcwE{D3M~IEgrn|=(+TZC|Cp! zet>%M6NzuPdQd#<%$qkezu9-|!FH#guWta3&>p$Rhc+yM>P>o=CV7#ZWxYJ@=J)AE zH?uJ(5ahRmtap`OX8oj742qMVa&-D3R>lp{jMgN4)C9~{yW>D$U7`X{sSSw*ERL_m zbZDRq8zyRS;IcK(9~h8)oYk6>%qDw2mgrYml~^rfmFk?1$?U~12;zeY>hb;r;S((b zn~Xk(K}3nlA)rD)L?_Z~Lk|sXu_QtLiCm@BZG(CnJB;d1!mN7b_!;#_iW%L~W}u03 aHt-D;*hQ1h-{tVvazs-2@AjU)(fR^4Gb}d% delta 359 zcmZvWO-=$)5QM*;0S5FrAU_TuD*o{^kaz;FLBeTR;+D(-yn-eY6Bix;H+Ugqy_ts{Sa2T^7)kbJ$#y*5J|3)@t!y;xIAYF>a57!iFuIN-jy>u- z94Fb6?bi^}r%Xk3q_}{po^&~uNs04qHay|091K}&lEZ_5>?*Gc^E6KA!k?v21cAn@8 bff9Y7am|gYKk~P^_t)GV{Oi8WcijB|Cx{!$ diff --git a/bin/interfaces/IsEvenInterface.class b/bin/interfaces/IsEvenInterface.class deleted file mode 100644 index 54046b099ba450a0812d5ca0caa816f17127bf7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmZ8bIS#@=3>=5RLO2Tw#0#JyFQ5!kDkSJ=(6TaUqZ}w3BHl*919%j|AVEPfvS;kE z=kdJV0W2|4@CZ|zS6m*oVHd_OsyUCpf`U&NCA!vOs`FF0J|t`^g%)A>QOnGR8_tS~ z3Cg-Xi<{uj;`xpcL|4P-$`-j(=n^J>mfu)bx5cG2yt1hr8vmtOynXVL&=52wI!P>r Qwy=&cUuq!eN$;Wm0wwP^fB*mh diff --git a/bin/interfaces/VotacaoInterface.class b/bin/interfaces/VotacaoInterface.class index f17d39d70643b9c7b04b79e1e45a754f0fb4cd06..67429c68d8f9194b774c3cf0735e7b8006b8826c 100644 GIT binary patch delta 220 zcmX@cJd2g<)W2Q(7#JAr7^F9H88Y&4q^FjI<(K3aGcxE-+@VwtVteKmX(*e=IHw-7FcVBF)~=83EDu^$>wD&v zq^749Sz{5h18e3A&Mz%WPIb%7No8c1?7^ta$Tm5LF@S}IkwIi~0i&p@D3B$_AkM(V ZzzK9X3j-qq7XuHF#l#>1WJ`isQUIEoIcER> delta 40 vcmbQmdW@Ot)W2Q(7#J9A8N@bn88S}3&1k^LGMR@dfQx~VK?Eql#2^X)^b`ob diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6c3fe66 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.8' +services: + servidor: + build: + context: . + container_name: votation_server_tcp + ports: + - 8899:8899 + command: java -classpath /app/src Servidor \ No newline at end of file diff --git a/.DS_Store b/src/.DS_Store similarity index 79% rename from .DS_Store rename to src/.DS_Store index a3585876b6842aef6ec2eca2c673c194487ea3b6..2ac32156bf1b7e33333f6a22f3b8ff94b2446d98 100644 GIT binary patch literal 6148 zcmeHKy-veG4ED7h0tnOzG2Yq*(KiTHkl4F0Leuag5)uL3^Gdt}8#5aZ!{@VU8>Lmm z0tnfX@4FxS&iO8iV4(PdwhNixgJ8SJ9-m(k(-{p)GB&-~jy z)$Mv*F^-^JJO{sf89mZ9-oUgSfB$Wp-Fn=|7mKgBH||-Kt9ZL?n{l3SoF>MAF<=b* zHUr4nEYY5zwZ?!kU<@o7;O~QnGRBIvVEA;P2_*nUNKgz1+fBg;tCX3 zrzM6Hcg%aWixq1@aVMw6htrdtRwyoAjHu~68Yk%57MnIVZGlOeAxxF|0tKQA390up6lU;>j69#BMp0U^J+ sk-3d!^8{vj=FRLJ{2V~TfFj?SC-aLaa)LA`fV56F;ZfckBeH@S0IOgX9RL6T diff --git a/src/Cliente.java b/src/Cliente.java index 450772b..31663cd 100644 --- a/src/Cliente.java +++ b/src/Cliente.java @@ -7,10 +7,10 @@ import interfaces.VotacaoInterface; public class Cliente { - static int porta = 1099; + static int porta = 8898; public static void main(String[] args) throws Exception { - String objName = "rmi://localhost:" + porta + "/server"; + String objName = "//localhost:" + porta + "/server"; VotacaoInterface votacao = (VotacaoInterface) Naming.lookup(objName); List candidatos = votacao.listarCandidatos(); @@ -19,12 +19,12 @@ public class Cliente { System.out.println(x.getNome() + " " + x.getNumero()); }); + @SuppressWarnings("resource") Scanner entrada = new Scanner(System.in); System.out.println("Digite seu voto"); String numero_candidato = entrada.nextLine(); int posicao = votacao.buscarCandidato(numero_candidato); System.out.println("Seu voto foi: " + candidatos.get(posicao).getNome()); - votacao.apuracao(); } } \ No newline at end of file diff --git a/src/ServidorApuracao.java b/src/ServidorApuracao.java new file mode 100644 index 0000000..c8b8ba7 --- /dev/null +++ b/src/ServidorApuracao.java @@ -0,0 +1,33 @@ +import java.rmi.Naming; +import java.rmi.registry.LocateRegistry; +import java.util.List; + +import implementacoes.ApuracaoImpl; +import implementacoes.CandidatoImpl; +import implementacoes.VotacaoImpl; +import interfaces.ApuracaoInterface; +import interfaces.VotacaoInterface; + + +public class ServidorApuracao { + + static List candidatos; + static ApuracaoInterface apuracao; + static int porta = 8899; + + public static void main(String[] args) { + try { + System.out.println("Registrando o objeto no RMIRegistry..."); + LocateRegistry.createRegistry(porta); + + //votacaoImpl = new VotacaoImpl(candidatos); + apuracao = new ApuracaoImpl(); + + Naming.rebind("//localhost:" + porta + "/server", apuracao); + + System.out.println("Servidor de Apuração. Aguardando Clientes na porta " + porta + "!"); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/src/Servidor.java b/src/ServidorVotacao.java similarity index 52% rename from src/Servidor.java rename to src/ServidorVotacao.java index 3a31120..ad66847 100644 --- a/src/Servidor.java +++ b/src/ServidorVotacao.java @@ -1,27 +1,30 @@ import java.rmi.Naming; -import java.rmi.Remote; import java.rmi.registry.LocateRegistry; import java.util.ArrayList; import java.util.List; +import java.util.Scanner; import implementacoes.CandidatoImpl; -import implementacoes.IsEvenImpl; import implementacoes.VotacaoImpl; +import interfaces.ApuracaoInterface; import interfaces.VotacaoInterface; -public class Servidor { + +public class ServidorVotacao { static List candidatos; static VotacaoInterface votacaoImpl; - static int porta = 1099; + static int porta_servidor_votacao = 8898; + static int porta_servidor_apuracao = 8899; + static List votos = new ArrayList<>(); public static void main(String[] args) { try { - //IsEvenImpl x = new IsEvenImpl(); - String objName = "rmi://localhost:" + porta + "/server"; - System.out.println("Registrando o objeto no RMIRegistry..."); - LocateRegistry.createRegistry(porta); + + LocateRegistry.createRegistry(porta_servidor_votacao); + + ApuracaoInterface apuracao = (ApuracaoInterface) Naming.lookup("//localhost:" + porta_servidor_apuracao + "/server"); // Lista de Candidatos candidatos = new ArrayList<>(); @@ -35,10 +38,23 @@ public class Servidor { votacaoImpl = new VotacaoImpl(candidatos); - Naming.rebind(objName, votacaoImpl); - //Naming.rebind(objName, x); + Naming.rebind("//localhost:" + porta_servidor_votacao + "/server", votacaoImpl); - System.out.println("Aguardando Clientes na porta " + porta + "!"); + System.out.println("Servidor de votação. Aguardando Clientes na porta " + porta_servidor_votacao + "!"); + + while (true) { + System.out.println("Aperte Enter para ver a apuração"); + Scanner entrada = new Scanner(System.in); + entrada.nextLine(); + + votos.clear(); + + votacaoImpl.getVotos().forEach(x -> { + votos.add(x.getCandidato().getNumero()); + }); + + votacaoImpl.mostrar_apuracao(apuracao.calcularVotos(votos)); + } } catch (Exception e) { e.printStackTrace(); } diff --git a/src/implementacoes/ApuracaoImpl.java b/src/implementacoes/ApuracaoImpl.java new file mode 100644 index 0000000..0f1ca65 --- /dev/null +++ b/src/implementacoes/ApuracaoImpl.java @@ -0,0 +1,30 @@ +package implementacoes; + +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import interfaces.ApuracaoInterface; + +public class ApuracaoImpl extends UnicastRemoteObject implements ApuracaoInterface { + + private static final long serialVersionUID = 1L; + + public ApuracaoImpl() throws RemoteException { + super(); + } + + private Map quantidade = new HashMap<>(); + + @Override + public Map calcularVotos(List votos) { + votos.forEach(voto -> { + int count = (int) votos.stream().filter(p -> p.equals(voto)).count(); + quantidade.put(voto, ((100 * count) / votos.size())); + }); + + return quantidade; + } +} diff --git a/src/implementacoes/IsEvenImpl.java b/src/implementacoes/IsEvenImpl.java deleted file mode 100644 index ce4f19e..0000000 --- a/src/implementacoes/IsEvenImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package implementacoes; - -import java.rmi.server.UnicastRemoteObject; -import interfaces.IsEvenInterface; -import java.rmi.RemoteException; - -public class IsEvenImpl extends UnicastRemoteObject implements IsEvenInterface { - - public IsEvenImpl() throws RemoteException { - super(); - } - - private static final long serialVersionUID = 1L; - - @Override - public boolean is_even(int x) throws RemoteException { - System.out.println("Conectado. Parâmetro enviado é " + x); - if((x & 1) == 0) { - return true; - } else { - return false; - } - } -} \ No newline at end of file diff --git a/src/implementacoes/VotacaoImpl.java b/src/implementacoes/VotacaoImpl.java index b9f513c..872ccd7 100644 --- a/src/implementacoes/VotacaoImpl.java +++ b/src/implementacoes/VotacaoImpl.java @@ -26,6 +26,11 @@ public class VotacaoImpl extends UnicastRemoteObject implements VotacaoInterface public List listarCandidatos() throws RemoteException { return this.candidatos; } + + @Override + public List getVotos(){ + return this.votos; + } @Override public int salvarVoto(int posicao) throws RemoteException { @@ -48,6 +53,16 @@ public class VotacaoImpl extends UnicastRemoteObject implements VotacaoInterface } } + @Override + public void mostrar_apuracao(Map quantidade) { + final String format = "O candidato %d possui %d votos"; + final Set chaves = quantidade.keySet(); + System.out.println("Apuração dos votos"); + for (final Integer chave : chaves) { + System.out.println(String.format(format, chave, quantidade.get(chave))); + } + } + @Override public int buscarCandidato(String numero) throws RemoteException { for(int i = 0; i < this.candidatos.size(); i++) { diff --git a/src/implementacoes/VotoImpl.java b/src/implementacoes/VotoImpl.java index d50024c..94cea87 100644 --- a/src/implementacoes/VotoImpl.java +++ b/src/implementacoes/VotoImpl.java @@ -1,9 +1,12 @@ package implementacoes; +import java.io.Serializable; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; -public class VotoImpl extends UnicastRemoteObject { +import interfaces.VotoInterface; + +public class VotoImpl extends UnicastRemoteObject implements Serializable, VotoInterface { private static final long serialVersionUID = 1L; @@ -16,10 +19,12 @@ public class VotoImpl extends UnicastRemoteObject { this.identificador = identificador; } + @Override public CandidatoImpl getCandidato() { return candidato; } + @Override public String getIdentificador() { return identificador; } diff --git a/src/interfaces/ApuracaoInterface.java b/src/interfaces/ApuracaoInterface.java new file mode 100644 index 0000000..c4d379d --- /dev/null +++ b/src/interfaces/ApuracaoInterface.java @@ -0,0 +1,10 @@ +package interfaces; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.util.List; +import java.util.Map; + +public interface ApuracaoInterface extends Remote { + public Map calcularVotos(List votos) throws RemoteException; +} diff --git a/src/interfaces/IsEvenInterface.java b/src/interfaces/IsEvenInterface.java deleted file mode 100644 index 3dca6d5..0000000 --- a/src/interfaces/IsEvenInterface.java +++ /dev/null @@ -1,7 +0,0 @@ -package interfaces; -import java.rmi.Remote; -import java.rmi.RemoteException; - -public interface IsEvenInterface extends Remote { - public boolean is_even(int x) throws RemoteException; -} \ No newline at end of file diff --git a/src/interfaces/VotacaoInterface.java b/src/interfaces/VotacaoInterface.java index 56495f6..b2b2716 100644 --- a/src/interfaces/VotacaoInterface.java +++ b/src/interfaces/VotacaoInterface.java @@ -3,12 +3,16 @@ package interfaces; import java.rmi.Remote; import java.rmi.RemoteException; import java.util.List; +import java.util.Map; import implementacoes.CandidatoImpl; +import implementacoes.VotoImpl; public interface VotacaoInterface extends Remote { public List listarCandidatos() throws RemoteException; public int salvarVoto(int posicao) throws RemoteException; public int buscarCandidato(String numero) throws RemoteException; public void apuracao() throws RemoteException; + public List getVotos() throws RemoteException; + public void mostrar_apuracao(Map apuracao) throws RemoteException; } diff --git a/src/interfaces/VotoInterface.java b/src/interfaces/VotoInterface.java new file mode 100644 index 0000000..00e19e8 --- /dev/null +++ b/src/interfaces/VotoInterface.java @@ -0,0 +1,10 @@ +package interfaces; + +import java.rmi.RemoteException; + +import implementacoes.CandidatoImpl; + +public interface VotoInterface { + public CandidatoImpl getCandidato() throws RemoteException;; + public String getIdentificador() throws RemoteException;; +} \ No newline at end of file