From b9f43a39d3f6a0e868bf2c60e093543f061391e4 Mon Sep 17 00:00:00 2001 From: MKDrwal Date: Mon, 2 Dec 2019 18:23:39 +0100 Subject: [PATCH] Little refactor and reorganize project --- .gitignore | 1 + pom.xml | 62 ++++++++++ .../client/server/ServerConnector.java | 108 ------------------ .../client/validator/Validator.java | 5 - .../java/ftp/sar}/Main.java | 11 +- .../java/ftp/sar}/PropertiesLoader.java | 4 +- .../exception/CannotConnectException.java | 2 +- .../java/ftp/sar}/server/Server.java | 5 +- .../java/ftp/sar/server/ServerConnector.java | 64 +++++++++++ .../java/ftp/sar}/server/ServerFactory.java | 15 ++- .../java/ftp/sar}/validator/IpValidator.java | 2 +- .../java/ftp/sar/validator/Validator.java | 5 + .../java/ftp/sar}/view/ResourceLoader.java | 7 +- .../view/mainPage/MainPageController.java | 5 +- .../resources}/config.properties | 0 .../resources}/main_page.fxml | 2 +- src/test/java/ftp/sar/server/TestServer.java | 17 +++ target/classes/config.properties | 2 + target/classes/ftp/sar/Main.class | Bin 0 -> 1575 bytes target/classes/ftp/sar/PropertiesLoader.class | Bin 0 -> 2072 bytes .../exception/CannotConnectException.class | Bin 0 -> 330 bytes target/classes/ftp/sar/server/Server.class | Bin 0 -> 1458 bytes .../ftp/sar/server/ServerConnector.class | Bin 0 -> 2747 bytes .../ftp/sar/server/ServerFactory.class | Bin 0 -> 1381 bytes .../ftp/sar/validator/IpValidator.class | Bin 0 -> 790 bytes .../classes/ftp/sar/validator/Validator.class | Bin 0 -> 160 bytes .../classes/ftp/sar/view/ResourceLoader.class | Bin 0 -> 1126 bytes .../view/mainPage/MainPageController.class | Bin 0 -> 872 bytes target/classes/main_page.fxml | 20 ++++ .../compile/null/createdFiles.lst | 10 ++ .../compile/null/inputFiles.lst | 10 ++ 31 files changed, 220 insertions(+), 137 deletions(-) create mode 100644 pom.xml delete mode 100644 src/application/client/server/ServerConnector.java delete mode 100644 src/application/client/validator/Validator.java rename src/{application => main/java/ftp/sar}/Main.java (66%) rename src/{application => main/java/ftp/sar}/PropertiesLoader.java (95%) rename src/{application/client => main/java/ftp/sar}/exception/CannotConnectException.java (70%) rename src/{application/client => main/java/ftp/sar}/server/Server.java (84%) create mode 100644 src/main/java/ftp/sar/server/ServerConnector.java rename src/{application/client => main/java/ftp/sar}/server/ServerFactory.java (66%) rename src/{application/client => main/java/ftp/sar}/validator/IpValidator.java (92%) create mode 100644 src/main/java/ftp/sar/validator/Validator.java rename src/{application/client => main/java/ftp/sar}/view/ResourceLoader.java (63%) rename src/{application/client => main/java/ftp/sar}/view/mainPage/MainPageController.java (73%) rename src/{resource => main/resources}/config.properties (100%) rename src/{resource => main/resources}/main_page.fxml (93%) create mode 100644 src/test/java/ftp/sar/server/TestServer.java create mode 100644 target/classes/config.properties create mode 100644 target/classes/ftp/sar/Main.class create mode 100644 target/classes/ftp/sar/PropertiesLoader.class create mode 100644 target/classes/ftp/sar/exception/CannotConnectException.class create mode 100644 target/classes/ftp/sar/server/Server.class create mode 100644 target/classes/ftp/sar/server/ServerConnector.class create mode 100644 target/classes/ftp/sar/server/ServerFactory.class create mode 100644 target/classes/ftp/sar/validator/IpValidator.class create mode 100644 target/classes/ftp/sar/validator/Validator.class create mode 100644 target/classes/ftp/sar/view/ResourceLoader.class create mode 100644 target/classes/ftp/sar/view/mainPage/MainPageController.class create mode 100644 target/classes/main_page.fxml create mode 100644 target/maven-status/maven-compiler-plugin/compile/null/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/null/inputFiles.lst diff --git a/.gitignore b/.gitignore index 9fb18b4..aa03912 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea out +target \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..22e609f --- /dev/null +++ b/pom.xml @@ -0,0 +1,62 @@ + + 4.0.0 + ftp.sar + ftp-sar + 1.0 + FTP-SAR + + + UTF-8 + 5.5.2 + + + + + org.openjfx + javafx + 11 + pom + + + org.openjfx + javafx-controls + 11 + + + org.openjfx + javafx-fxml + 11 + + + org.junit.jupiter + junit-jupiter + ${junit.jupiter.version} + test + + + + + + maven-compiler-plugin + 3.8.1 + + 11 + 11 + + + + maven-surefire-plugin + 2.22.2 + + + org.openjfx + javafx-maven-plugin + 0.0.3 + + ftp.sar.Main + + + + + \ No newline at end of file diff --git a/src/application/client/server/ServerConnector.java b/src/application/client/server/ServerConnector.java deleted file mode 100644 index 9835886..0000000 --- a/src/application/client/server/ServerConnector.java +++ /dev/null @@ -1,108 +0,0 @@ -package application.client.server; - -import application.PropertiesLoader; -import application.client.exception.CannotConnectException; - -import java.io.*; -import java.net.Socket; - -public class ServerConnector { - private PropertiesLoader propertiesLoader = PropertiesLoader.getInstance(); - - public ServerConnector() { - } - - public boolean readFileList(Server server) { - try { - Socket socket = new Socket(server.getIp(), server.getPort()); - DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream()); - OutputStreamWriter outputStreamWriter = new OutputStreamWriter(dataOutputStream); - BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter); - - String command = "GET_ALL_FILES"; - - bufferedWriter.write(command, 0, command.length()); - bufferedWriter.flush(); - bufferedWriter.close(); - socket.close(); - - - - socket = new Socket(server.getIp(), server.getPort()); - DataInputStream dataInputStream = new DataInputStream(socket.getInputStream()); - InputStreamReader inputStreamReader = new InputStreamReader(dataInputStream); - BufferedReader reader = new BufferedReader(inputStreamReader); - - while (true) { - String file = reader.readLine(); - System.out.println(file); - - if (file == null) { - break; - } - - server.addToFileList(file); - } - - return true; - } catch (Exception e) { - e.printStackTrace(); - } - - return false; - } - -// public static Connector getInstance() { -// return instance; -// } -// -// public void connect(String ip) throws CannotConnectException { -// this.isConnect = false; -// try { -// this.client = new Socket(ip, Integer.parseInt(this.propertiesLoader.get("port"))); -// this.checkIfConnect(); -// } catch (IOException e) { -// throw new CannotConnectException(); -// } -// } -// -// private void checkIfConnect() { -// String pattern = this.propertiesLoader.get("serverStatusConnect"); -// -// this.isConnect = pattern.equals(this.getMessage()); -// } -// -// public String getMessage() { -// String message = null; -// try { -// System.out.println("Trying to get input stream"); -// DataInputStream inputStream = new DataInputStream(this.client.getInputStream()); -// InputStreamReader inputStreamReader = new InputStreamReader(inputStream); -// BufferedReader br = new BufferedReader(inputStreamReader); -// message = br.readLine(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// System.out.println("Message received: "+ message); -// return message; -// } -// -// public void getFileList() { -// try { -// DataOutputStream outputStream = new DataOutputStream(this.client.getOutputStream()); -// OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream); -// BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter); -// -// bufferedWriter.write("GET_ALL_FILES"); -// bufferedWriter.flush(); -// -// this.getMessage(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// -// public boolean isConnect() { -// return this.isConnect; -// } -} diff --git a/src/application/client/validator/Validator.java b/src/application/client/validator/Validator.java deleted file mode 100644 index 86646b5..0000000 --- a/src/application/client/validator/Validator.java +++ /dev/null @@ -1,5 +0,0 @@ -package application.client.validator; - -public interface Validator { - public boolean validate(Object value); -} diff --git a/src/application/Main.java b/src/main/java/ftp/sar/Main.java similarity index 66% rename from src/application/Main.java rename to src/main/java/ftp/sar/Main.java index 46a7c86..aa574e8 100644 --- a/src/application/Main.java +++ b/src/main/java/ftp/sar/Main.java @@ -1,18 +1,23 @@ -package application; +package ftp.sar; -import application.client.view.ResourceLoader; +import ftp.sar.view.ResourceLoader; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; - public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ + + Object o = getClass(); + ResourceLoader loader = ResourceLoader.getInstance(); + Object c = loader.getResource("main_page.fxml"); + Object a = getClass().getClassLoader().getResource("resources/main_page.fxml"); + Object b = getClass().getClassLoader().getResource("main_page.fxml"); Parent root = FXMLLoader.load(loader.getResource("main_page.fxml")); primaryStage.setTitle("FTP SAR"); diff --git a/src/application/PropertiesLoader.java b/src/main/java/ftp/sar/PropertiesLoader.java similarity index 95% rename from src/application/PropertiesLoader.java rename to src/main/java/ftp/sar/PropertiesLoader.java index 2923445..f3e95eb 100644 --- a/src/application/PropertiesLoader.java +++ b/src/main/java/ftp/sar/PropertiesLoader.java @@ -1,7 +1,7 @@ -package application; +package ftp.sar; -import application.client.view.ResourceLoader; +import ftp.sar.view.ResourceLoader; import java.io.FileOutputStream; import java.io.IOException; diff --git a/src/application/client/exception/CannotConnectException.java b/src/main/java/ftp/sar/exception/CannotConnectException.java similarity index 70% rename from src/application/client/exception/CannotConnectException.java rename to src/main/java/ftp/sar/exception/CannotConnectException.java index 8c38252..841d3cb 100644 --- a/src/application/client/exception/CannotConnectException.java +++ b/src/main/java/ftp/sar/exception/CannotConnectException.java @@ -1,4 +1,4 @@ -package application.client.exception; +package ftp.sar.exception; import java.io.IOException; diff --git a/src/application/client/server/Server.java b/src/main/java/ftp/sar/server/Server.java similarity index 84% rename from src/application/client/server/Server.java rename to src/main/java/ftp/sar/server/Server.java index d2e8c20..cdd1c8b 100644 --- a/src/application/client/server/Server.java +++ b/src/main/java/ftp/sar/server/Server.java @@ -1,12 +1,11 @@ -package application.client.server; +package ftp.sar.server; import java.util.ArrayList; -import java.util.List; public class Server { private String ip; private int port; - private ArrayList fileList = new ArrayList(); + private ArrayList fileList = new ArrayList<>(); public Server (String ip, int port) { this.ip = ip; diff --git a/src/main/java/ftp/sar/server/ServerConnector.java b/src/main/java/ftp/sar/server/ServerConnector.java new file mode 100644 index 0000000..3de5de9 --- /dev/null +++ b/src/main/java/ftp/sar/server/ServerConnector.java @@ -0,0 +1,64 @@ +package ftp.sar.server; + +import ftp.sar.PropertiesLoader; +import ftp.sar.exception.CannotConnectException; + +import java.io.*; +import java.net.Socket; + +public class ServerConnector { + private PropertiesLoader propertiesLoader = PropertiesLoader.getInstance(); + + public ServerConnector() { + } + + public boolean readFileList(Server server) throws CannotConnectException { + + this.sendRequest("GET_ALL_FILES", server); + + try { + Socket socket = new Socket(server.getIp(), server.getPort()); + DataInputStream dataInputStream = new DataInputStream(socket.getInputStream()); + InputStreamReader inputStreamReader = new InputStreamReader(dataInputStream); + BufferedReader reader = new BufferedReader(inputStreamReader); + + while (true) { + String file = reader.readLine(); + System.out.println(file); + + if (file == null) { + break; + } + + server.addToFileList(file); + } + + return true; + } catch (Exception e) { + e.printStackTrace(); + } + + return false; + } + + private void sendRequest( + String request, + Server server + ) throws CannotConnectException { + Socket socket; + try { + socket = new Socket(server.getIp(), server.getPort()); + DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream()); + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(dataOutputStream); + BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter); + + bufferedWriter.write(request, 0, request.length()); + bufferedWriter.flush(); + bufferedWriter.close(); + socket.close(); + } catch (IOException e) { + throw new CannotConnectException(); + } + + } +} diff --git a/src/application/client/server/ServerFactory.java b/src/main/java/ftp/sar/server/ServerFactory.java similarity index 66% rename from src/application/client/server/ServerFactory.java rename to src/main/java/ftp/sar/server/ServerFactory.java index 77094a0..464ad69 100644 --- a/src/application/client/server/ServerFactory.java +++ b/src/main/java/ftp/sar/server/ServerFactory.java @@ -1,20 +1,23 @@ -package application.client.server; +package ftp.sar.server; -import application.client.validator.IpValidator; - -import java.util.ArrayList; +import ftp.sar.exception.CannotConnectException; +import ftp.sar.validator.IpValidator; public class ServerFactory { public Server create(String ip, int port) { if (!this.validate(ip)) { return null; - }; + } Server server = this.createServer(ip, port); ServerConnector connector = new ServerConnector(); - connector.readFileList(server); + try { + connector.readFileList(server); + } catch (CannotConnectException e) { + e.printStackTrace(); + } return server; } diff --git a/src/application/client/validator/IpValidator.java b/src/main/java/ftp/sar/validator/IpValidator.java similarity index 92% rename from src/application/client/validator/IpValidator.java rename to src/main/java/ftp/sar/validator/IpValidator.java index 4613645..97cfcd4 100644 --- a/src/application/client/validator/IpValidator.java +++ b/src/main/java/ftp/sar/validator/IpValidator.java @@ -1,4 +1,4 @@ -package application.client.validator; +package ftp.sar.validator; import java.security.InvalidParameterException; diff --git a/src/main/java/ftp/sar/validator/Validator.java b/src/main/java/ftp/sar/validator/Validator.java new file mode 100644 index 0000000..a73bfde --- /dev/null +++ b/src/main/java/ftp/sar/validator/Validator.java @@ -0,0 +1,5 @@ +package ftp.sar.validator; + +public interface Validator { + boolean validate(Object value); +} diff --git a/src/application/client/view/ResourceLoader.java b/src/main/java/ftp/sar/view/ResourceLoader.java similarity index 63% rename from src/application/client/view/ResourceLoader.java rename to src/main/java/ftp/sar/view/ResourceLoader.java index 26f8c44..8d3a9d7 100644 --- a/src/application/client/view/ResourceLoader.java +++ b/src/main/java/ftp/sar/view/ResourceLoader.java @@ -1,18 +1,17 @@ -package application.client.view; +package ftp.sar.view; import java.io.InputStream; import java.net.URL; public class ResourceLoader { private static final ResourceLoader instance = new ResourceLoader(); - public static final String RESOURCE_FOLDER = "resource/"; public URL getResource(String name) { - return getClass().getClassLoader().getResource(RESOURCE_FOLDER + name); + return getClass().getClassLoader().getResource(name); } public InputStream getResourceAsStream(String name) { - return getClass().getClassLoader().getResourceAsStream(RESOURCE_FOLDER + name); + return getClass().getClassLoader().getResourceAsStream( name); } public String getPath(String name) { diff --git a/src/application/client/view/mainPage/MainPageController.java b/src/main/java/ftp/sar/view/mainPage/MainPageController.java similarity index 73% rename from src/application/client/view/mainPage/MainPageController.java rename to src/main/java/ftp/sar/view/mainPage/MainPageController.java index 880dbf3..04ba4c9 100644 --- a/src/application/client/view/mainPage/MainPageController.java +++ b/src/main/java/ftp/sar/view/mainPage/MainPageController.java @@ -1,7 +1,6 @@ -package application.client.view.mainPage; +package ftp.sar.view.mainPage; -import application.client.server.ServerConnector; -import application.client.server.ServerFactory; +import ftp.sar.server.ServerFactory; import javafx.event.Event; import javafx.fxml.FXML; import javafx.scene.control.TextField; diff --git a/src/resource/config.properties b/src/main/resources/config.properties similarity index 100% rename from src/resource/config.properties rename to src/main/resources/config.properties diff --git a/src/resource/main_page.fxml b/src/main/resources/main_page.fxml similarity index 93% rename from src/resource/main_page.fxml rename to src/main/resources/main_page.fxml index 0e7a0e9..583c075 100644 --- a/src/resource/main_page.fxml +++ b/src/main/resources/main_page.fxml @@ -6,7 +6,7 @@ - + diff --git a/src/test/java/ftp/sar/server/TestServer.java b/src/test/java/ftp/sar/server/TestServer.java new file mode 100644 index 0000000..8ed3494 --- /dev/null +++ b/src/test/java/ftp/sar/server/TestServer.java @@ -0,0 +1,17 @@ +package ftp.sar.server; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class TestServer { + public static final String IP = "192.168.0.1"; + public static final int PORT = 6666; + + @Test + public void testCreateServer() { + Server server = new Server(IP, PORT); + + assertEquals(IP, server.getIp()); + } +} \ No newline at end of file diff --git a/target/classes/config.properties b/target/classes/config.properties new file mode 100644 index 0000000..4543094 --- /dev/null +++ b/target/classes/config.properties @@ -0,0 +1,2 @@ +port=7332 +serverStatusConnect=CONNECT \ No newline at end of file diff --git a/target/classes/ftp/sar/Main.class b/target/classes/ftp/sar/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..a7f81cbe4b5aaebe9d073f69af60014aaa2099a9 GIT binary patch literal 1575 zcmaJ>Ygf})6x|onro;$REP^k5j9S`}jE@<$_!vY{X9{AAjE*zoTw*A3m82^Pia*OQ zm8EOB{Oli@e=*B_lcp`o@S+*X%)wcIg~$6Xx@I_?Q%ue+Wb-4qxsPOl1R z^ZpA*V5I7L&eGQAniH(ZwI(I`s&C8YstjCp?+CSM!wm(7tLstA3T0p|O4pke$b^v$ zB7sB2>Pz`bu5ViuG#sn0)>#$DYz6M74Bo^NfrESL2?$>WRxYfj^cvQ~wU>?^F+jHI z%NI@{aI72pmFv8=YEI~H1-4U-pQ$Kpev;oBa|?W*pbFhsw&OY0vJ4zg`84is+fFNT zeJ|8;pX!@TMqs@7tPepw3S6%dr=ZE8!Q{vGc&4*@jAOx7+zlyOW>gv`4x*srfr;Pn zyN;@fMJ$m(73z75PlOodS>D;{B7bN6ihrvnI-Bks=)D%oouz5t}PW$)?Dx0 z0g%+G%cQ^oW!7Ikfn39h=9@B9}HHrYn49p4yCeC{#7J7M?6t z(+91|e(hmPf%J3JZT)WjdJ{!TLnm5sBh_q$y%OZaP4s55uS4QaR@QMN?3&nED;6j1 z9&Y%r)#S-7&)&dE{zS(3R{{pX`9*>2IBynr!97!Y2l1AN0UY9*jfDm#cs3ISOyV$a zEH{o)OBw$M4LR=hQX2z{I~ZI#pV!*RR5T@MBb(RT$W=1wjc>V1HqqI^&?guby`10I zhFSiA{ZA+LcNlJCq};}V9+VOch8RHxqZncqqs(K98Js7CS%RG-$R&cS5uSouOCWXN z5*&`xfA;6HzX+M8I(zW7mhU);VFXIny*#H0l literal 0 HcmV?d00001 diff --git a/target/classes/ftp/sar/PropertiesLoader.class b/target/classes/ftp/sar/PropertiesLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..c9f6afcd08b54964892c3e53d4a1b0e3fb0d29fd GIT binary patch literal 2072 zcmZ`)ZBrXn6n-uVY}hP>mxj^;wo*WnAW>Tdg;o&(qv6GZRO$;ZVS%M#H?!HG{V{%X z#;S!g;8ckjLD+;g7uoaey5|NZqhfEko^+`xSu5Abm(68JF55 z^|dr?%N>I~66jf6Ut2D$?5-`WF6}NCic120#bfi-%$H5)Fu&=0wsSZq(6#6~Ro`^{ zZL?gn1QND7mbkrHJn$>|s_Er7Jhx(bzHL>DuDNe{eAn$+Rk!Aqtl&mqq~U#PTR-I= zUNZB6UTFjo7zm)$e7hV8POpx6+p+xz0&w5G2zG%ZOna0g==zA=!& zj)7aaZQxCe8W_PF0@qscMn+#J9)aGH>m1mJ(@jMfc#Lli@H4!;t|S$1=&3fhU;djHob*p!L0Dt3)D) z>Zn_YSm0JfOD!DOm43FPF8zgST{M~3x91fh4Tio~3{n(LMw-$SXfKuBDtnizaHOeI zN^Q$C}x9kjM!fFU5}o*X3{8~bAdpk5|TKAj$e`FB|0~sR(*@p5~GZx zbFmRXl%pics<$z6P1LH6vU3G>(4je*Uk-RE)Tb0;f`46sIM>r5rb)G>l zau?5?A<19kHzbPucFVhGe4S+JWBmURQ?W-$16XpB<)>Nr2**^GJI2z-xy!I*iTO7D z(?tF@rWJxX@_2_kA_(hvmwOFuoSd#W4e#Nuas+-Q0WlhL7f9{YG4`CJcQrR9&d@h? zhW;10MvQ4ML^MGRS)!3RvrN{@pL=+p{7mp9 zaZ09gAx^pbfNupt#8!xS2D2gJ$9y24q$OwnAdx-8z@w1U>#{EacipP2yR7;inVC`f v2ZD!3-r5QX2I=bfGx6)mmoj77GzFr+ym2!|Gm{d%sr!R*Spihs*0kis939~Cku zCRGY&;IZ#x<}LH}{doZ}Kr=!K4N3sU&#MJ}k{s-vHz(dFyFlLAf PYkYfG5wRoGSUto)^KVbH literal 0 HcmV?d00001 diff --git a/target/classes/ftp/sar/server/Server.class b/target/classes/ftp/sar/server/Server.class new file mode 100644 index 0000000000000000000000000000000000000000..8ed34a967083aaa7c0b98737d07a693fe5577c64 GIT binary patch literal 1458 zcmZ`&+fEZv6kTUJ)6(f6_X2_n3fc=Y-g$tKsEG+lqa-C5eH&mXLu%VhrzHH751NQ1 zn)m^JlyRMNhTa%n&SlTuYpt{Pp1=Qo{QC3aX$H?S zcrIWBErH3(sdwhNb+1u#t5Fy!Tpv~)yPVGcN-F+Q~-nk4j zJ6jEE4KM11zCbZ4XX`r0HtW(`K_iH^1@eXK2|LAo>Ui5cBIsBpX!!3tUk?0m&pW6y zGFfRJdi8xT4CFlyn$bzn7MQIZM=iJQg>Ksq&-~D>s*QwJ&5w5Y=IKH#bMVzxTYsKO zkR#P(SiY-_NfnB;Cc}JvHw#K`jtTF&cFkU~Tr;ek{N)Cla-`{@&c)(}K&8I?peg6A zD`VCYYZB=s&Zu{EwAbuWnsNjL>}sYLEtXIk<%}2R3pJ z9E>`6iB}w?#0CkB_eSx=%+Z_B;v`CTxusf zh^x*M%;V%>it98ZC#*l+USBtcpQ#}%NX6JkJt1uQZm zC2up^kl9LOPoDg(!3>L7Qc_-LbtR=^Ndk9pH^%B0lK#q~ej#&-LhkXc!$KAYe9}S| zDdf%#LZlueN1+@2R7q5q6w6g+2#K|+571L literal 0 HcmV?d00001 diff --git a/target/classes/ftp/sar/server/ServerConnector.class b/target/classes/ftp/sar/server/ServerConnector.class new file mode 100644 index 0000000000000000000000000000000000000000..080752fae6541972c2d9b848b411cb93150142f7 GIT binary patch literal 2747 zcmZ`**>V$C5ItipV-I5+8?ccvt698Yl!YyZuo*)XXFj(l}mLaYe%!T$M*sLm1O4uE{u~LBlI5Ue(Yna;oqX}<`!q&9m z8Zj$ZaEUjKTM8m2RK|{;T`3~EEmK8aq<2Eq79U?@rX-ZjB?y6S_F-oV^Yf--rhSY; z&o`CCp64U?QfAK0*p}zK$BTl_r$n!yIpG?qo1;d~V_3yq755Zqz7?{)E^k`g?{>iy zCinN&Y*wb}Db^*w>xH86f?LB;mmiF9R4b#)?RE|Jij#3A{BB>P7G083r)928N(H}~ zE+1Q_iV2F1`$5u%>Qn;M5_Z8!nNm9nHr7?v0Vxq3{TNVjU&rfsLq{+A$m98usoB%< z`0Tk@d?cY`1m{>EUO`n$M#r0YpyMsPEhgS!UOd3+YSHm7-V@CGEU5}+RfQ<%sK{29 zg=l`D<3l`9@sW;?@rjC0b$o`0IzGok1sgoQmGz?I3kSDajJk; z=VJ}0O5}^`H#)wR;J?H7I)1=_jvr;uk~=GNqM*0ZMa)V`M~4l|vfc7I_tU3fTLrpy zKVTVF10J8d!6v~&v!>1pXsNu(Nd;Qp&v-Z%OgCobUBgPTT)KPv{IgJxWs!vhoMTlH zR&~hlH7dmuwnN|88)GDLjiVNmL)GGKT63g2D+YzbYM0@bo69!p1Y%`FRaEXKvf3y; zN4oJ!Chq55ll?8gdk_}tIg39c&~_5LE1{$J7X3j$9#Z@?g*Eksj> zAV1&h_~}02%{)A!c!o0t&*C|vX-m04oXRz$zdbmxh|m(kNscQ2jYTw#E+DEu?pBjH7Ch=l({_!0C0nQeTu{CDv2DD^u6 zkGZXiB&K;&2zZX3;8g->4qsoh>qFEJ}|3!z2;eXJ$OmIU90Yzm5XQ>(F;%<7t zW?iPZr%dsTLI%Uarpmvt%Xw#Va1on}hzO}&9;sV~n1$|SBvi!Kp>QNT5MVO4En>S+ zxnz~1p zDabucu%|A3>dK5 zQtCfBSXkR}Ju=p*CQvDGC8F-pO`fz7a67KRe1BA!-Ej#YYI?fyc3W@zz9@JokO@i- zoDfKz>MiTg_h7t_2jy4H8A4>vxhQ9}sny$i0f(PbZ8|5eVQyJ|b9xM4k>zJFjC=-5 zxRJqiOtMLRdlXfX!5Uaesf+rb*%@pgFEHN4_c$n%KN6Vf9`-FlisRfByPzJ1aCQWS z|Mc?t!737W4o?yaKtA1bfhkCLr<%M z^rXN7uUd}x54>fRgFK%jTxom@z7v%Th%fvYz$l+de=~_OerEyz#xcPaM-Y>I%HSV} z5ed{P)pHDdL_(ZZs>O4}b}kX$zd&LwJ{7N>Bl+?Z)V0J^;vA{k8G{Sdv&efM^OG&{ zri1?}sQeqEwj2?8V#bIXq35HhGPxA=5`krw&#sKva>HTW)0_qu8e>+t0 zMadLIMN-sAiW*80a;iht7i5t5>?Hfgc5Pj=>IGChuTqu-Knzld_ifSPa9E!M90aZ!?H7EkqLpRRSZgFgDy{@Pb zKZO6lg$tEH;^WGXLd-fAO8GkM&g|QnH*aS5`;U*G0o*~`!5Lh(v0&p$1&aTT@_EqbN}6*H7WIKl7#6!PbnGQuc}F~uL#`v` zZN*ez>{HcBenCX%TNAP#4Gx8`H`>ohHH8>KldAJ;Qr*+sf4R-$ys*=YQss;L(ny<` zsI_idu3`$)g#X??!@_@sGA!>7U*EcU`_1n9KbyLFEfw7hou-$buBvq^C}54E5YN XJ*OrjT);&lpU<*bo!m?0T4?+PH0-vb literal 0 HcmV?d00001 diff --git a/target/classes/ftp/sar/validator/Validator.class b/target/classes/ftp/sar/validator/Validator.class new file mode 100644 index 0000000000000000000000000000000000000000..2e9a4249f914be8c6bd52e820cf788c779089eb1 GIT binary patch literal 160 zcmX^0Z`VEs1_pBmPId-%b_Nbc29C1CoXnKOl2k?pQ4OE0#Ii*FoW#6zegCAa)Z`Lt z%_v3&uHgLAqU2P!%p9O1zA%XT{31P&Vnzn(w2}h-;>03-s6qKf`fw$T3AUw}qKVnT93146>fZCT5a_Kw_L@oV{z zltdFhfFH^@d$%oTNo8N`&Q4~2JM*9Y{pZIo059>vL>@J{t(aKFJrnn_CbtJB3~ANT zFvx1^SeKrfj)x36*9#-=wFSeH^C>#BLmt@YuJ~;4iO}x{ZQ=O*SOl94*)7*|qt^^m z^~NECw(TENR?%@ivD@#pMDUTfy5uQ2ew%j>dEm;sa%$0u8#3fOA{v4jR_e|vKj(Ir zdmVc}3S6(V*+^WTi0p$sho03u-ixVMLK(^_+}n@{g7+92ld-OE?|5hZCCwoRzLG>0xK2+H$>djc&QEc2_B9?#Gh8bEQt@p%96}8?rwO1r#kj!iEmp!eczq z@zlaBDi&^IPRBC~^LTE-!VQLn{|t;_=2Ectty9sCXxh~6c9(}Vi89rF84x>3j^db$ zp)gEIs$`hEnmGC*m9g|;jurdWOc`eXL8!r_MxQcIUzt&d)E-$`vPloxXXs|r$>^MJ zUVwciBZHeNNQRckwvqsp<8*om6_xykqBAn0IY4HBsr3Q0FJlZdW>k|n#gNP@ZpBa2 z04CF>$7zLYX!BT5v{$M&qe)d|2hhh+r4-5-6=tZy3@lbeCXoLL(l_%jC=8?q7oK;F$mb literal 0 HcmV?d00001 diff --git a/target/classes/ftp/sar/view/mainPage/MainPageController.class b/target/classes/ftp/sar/view/mainPage/MainPageController.class new file mode 100644 index 0000000000000000000000000000000000000000..7e7380fda835aff2f58bf63f31107b5b87b84449 GIT binary patch literal 872 zcmah{ZEF)j5PmjEbM1L;lU9w@SW{n#ek5gm=g7iu(@pFmdjq*Y-0L< z`~!ltpx_ViM~Sm{i7yzGgPEP1nP;AP`S$(uR{#%D^RbGuhwDBvD6hf8u8$k2ICIa# zO%JyiJay7kGU_u_TE}841~WbmrItL5wKZ|XkL1iI5e%I zu^uyQEz$?GQN)|C+bv4SKT=xR#|+tOt;>)*jQf&dv!%3rHW~G#ITD29lH*WBU15~7 z=Rb4yog(0RYhX|KSQtK4@;x63rC*4l;?g z@+VF<92G`YFD`R3tdEoIrU-3pP8oK85=b39MW6ersNabvCX`L(S}Fa_>%JRofOTvz zlo!n`!wRql-^1+ycW^hrJyaR0i-iAm&roo6cqH_YKkpsO&=U85@09jGl-8}7rctdW z^GE?Y)+jx6D-4YkmKxhnXZeTwX>Ivz8rY+ATctCkNxP; zjPy$V9PDG_E|7G03JT9rXfb&uLD<4JSwt9@D8d1}MV3C`$`@qboFm)buYW@B3@gR* uhco0~{leTx;)+CV8zn+;xRo?_j!P)GOg=_21$ysLjo+y=T&0{0uKfT3ebH6` literal 0 HcmV?d00001 diff --git a/target/classes/main_page.fxml b/target/classes/main_page.fxml new file mode 100644 index 0000000..583c075 --- /dev/null +++ b/target/classes/main_page.fxml @@ -0,0 +1,20 @@ + + + + + + + + + + + + +