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 0000000..a7f81cb Binary files /dev/null and b/target/classes/ftp/sar/Main.class differ diff --git a/target/classes/ftp/sar/PropertiesLoader.class b/target/classes/ftp/sar/PropertiesLoader.class new file mode 100644 index 0000000..c9f6afc Binary files /dev/null and b/target/classes/ftp/sar/PropertiesLoader.class differ diff --git a/target/classes/ftp/sar/exception/CannotConnectException.class b/target/classes/ftp/sar/exception/CannotConnectException.class new file mode 100644 index 0000000..936a922 Binary files /dev/null and b/target/classes/ftp/sar/exception/CannotConnectException.class differ diff --git a/target/classes/ftp/sar/server/Server.class b/target/classes/ftp/sar/server/Server.class new file mode 100644 index 0000000..8ed34a9 Binary files /dev/null and b/target/classes/ftp/sar/server/Server.class differ diff --git a/target/classes/ftp/sar/server/ServerConnector.class b/target/classes/ftp/sar/server/ServerConnector.class new file mode 100644 index 0000000..080752f Binary files /dev/null and b/target/classes/ftp/sar/server/ServerConnector.class differ diff --git a/target/classes/ftp/sar/server/ServerFactory.class b/target/classes/ftp/sar/server/ServerFactory.class new file mode 100644 index 0000000..240a6f8 Binary files /dev/null and b/target/classes/ftp/sar/server/ServerFactory.class differ diff --git a/target/classes/ftp/sar/validator/IpValidator.class b/target/classes/ftp/sar/validator/IpValidator.class new file mode 100644 index 0000000..45223a4 Binary files /dev/null and b/target/classes/ftp/sar/validator/IpValidator.class differ diff --git a/target/classes/ftp/sar/validator/Validator.class b/target/classes/ftp/sar/validator/Validator.class new file mode 100644 index 0000000..2e9a424 Binary files /dev/null and b/target/classes/ftp/sar/validator/Validator.class differ diff --git a/target/classes/ftp/sar/view/ResourceLoader.class b/target/classes/ftp/sar/view/ResourceLoader.class new file mode 100644 index 0000000..5e2c464 Binary files /dev/null and b/target/classes/ftp/sar/view/ResourceLoader.class differ 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 0000000..7e7380f Binary files /dev/null and b/target/classes/ftp/sar/view/mainPage/MainPageController.class differ 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 @@ + + + + + + + + + + + + +