Changed package name from java.src to vslab1.src because java not allowed as name at compiling stage (upsi xD).

This commit is contained in:
WickedJack99
2024-04-04 19:32:57 +02:00
parent 674ae83178
commit 2fe7df43ab
33 changed files with 114 additions and 98 deletions

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "interactive"
}

View File

@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>java.src</groupId>
<groupId>vslab1.src</groupId>
<artifactId>labor1vs</artifactId>
<version>1.0-SNAPSHOT</version>

View File

@@ -1,7 +1,7 @@
package java.src.FileReaderWriter;
package vslab1.src.FileReaderWriter;
import java.src.Peers.EOnlineState;
import java.src.Peers.Peer;
import vslab1.src.Peers.EOnlineState;
import vslab1.src.Peers.Peer;
public class FileReaderWriter {

View File

@@ -2,19 +2,20 @@
* @author Aaron Moser
*/
package java.src.Input;
package vslab1.src.Input;
import java.src.Terminatable;
import java.src.Peers.Peer;
import java.src.Peers.PeerOrganizer;
import java.src.Sending.SendingQueue;
import java.src.Sending.Data.PublishFileNameNotification;
import vslab1.src.Terminatable;
import vslab1.src.Peers.Peer;
import vslab1.src.Peers.PeerOrganizer;
import vslab1.src.Sending.SendingQueue;
import vslab1.src.Sending.Data.PublishFileNameNotification;
import java.util.Scanner;
public class InputThread extends Thread implements Terminatable {
private Terminatable receiverThread;
private Terminatable senderThread;
private Terminatable requestExecuterThread;
private SendingQueue sendingQueue;
@@ -25,9 +26,10 @@ public class InputThread extends Thread implements Terminatable {
private boolean receivedValidIP = false;
private boolean receivedValidAndFreePort = false;
public InputThread(Terminatable senderThread, Terminatable receiverThread, SendingQueue sendingQueue) {
public InputThread(Terminatable senderThread, Terminatable receiverThread, Terminatable requestExecuterThread, SendingQueue sendingQueue) {
this.senderThread = senderThread;
this.receiverThread = receiverThread;
this.requestExecuterThread = requestExecuterThread;
this.sendingQueue = sendingQueue;
}
@@ -80,6 +82,9 @@ public class InputThread extends Thread implements Terminatable {
if (receiverThread != null) {
receiverThread.terminate();
}
if (requestExecuterThread != null) {
requestExecuterThread.terminate();
}
this.terminate();
}break;
case "ShowNodes": {
@@ -123,5 +128,6 @@ public class InputThread extends Thread implements Terminatable {
public void terminate() {
inputThreadRunning = false;
this.interrupt();
}
}

View File

@@ -1,4 +1,4 @@
package java.src.Input;
package vslab1.src.Input;
import java.net.InetAddress;
import java.net.NetworkInterface;

View File

@@ -2,15 +2,16 @@
* @author Aaron Moser
*/
package java.src;
package vslab1.src;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.src.Input.InputThread;
import java.src.Receiving.ReceiverThread;
import java.src.Receiving.ReceivingQueue;
import java.src.Sending.SenderThread;
import java.src.Sending.SendingQueue;
import vslab1.src.Input.InputThread;
import vslab1.src.Receiving.ReceiverThread;
import vslab1.src.Receiving.ReceivingQueue;
import vslab1.src.Request.RequestExecuterThread;
import vslab1.src.Sending.SenderThread;
import vslab1.src.Sending.SendingQueue;
public class Main {
public static void main(String[] args) {
@@ -20,14 +21,17 @@ public class Main {
SendingQueue sendingQueue = new SendingQueue();
ReceivingQueue receivingQueue = new ReceivingQueue();
RequestExecuterThread requestExecuterThread = new RequestExecuterThread(sendingQueue, receivingQueue);
requestExecuterThread.start();
ReceiverThread receiverThread = new ReceiverThread(datagramSocket, receivingQueue);
receiverThread.start();
SenderThread senderThread = new SenderThread(datagramSocket, sendingQueue);
senderThread.start();
InputThread inputThread = new InputThread(senderThread, receiverThread, sendingQueue);
InputThread inputThread = new InputThread(senderThread, receiverThread, requestExecuterThread, sendingQueue);
inputThread.start();
try {
requestExecuterThread.join();
receiverThread.join();
senderThread.join();
inputThread.join();

View File

@@ -1,4 +1,4 @@
package java.src.Peers;
package vslab1.src.Peers;
public enum EOnlineState {
Online,

View File

@@ -2,7 +2,7 @@
* @author Aaron Moser
*/
package java.src.Peers;
package vslab1.src.Peers;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package java.src.Peers;
package vslab1.src.Peers;
import java.io.FileReader;
import java.util.LinkedList;

View File

@@ -2,6 +2,6 @@
* @author Aaron Moser
*/
package java.src.Receiving;
package vslab1.src.Receiving;
public record ReceivedData(String data) {}

View File

@@ -2,12 +2,12 @@
* @author Aaron Moser
*/
package java.src.Receiving;
package vslab1.src.Receiving;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.src.Terminatable;
import vslab1.src.Terminatable;
/**
* An instance of a ReceiverThread is handling incoming traffic by putting data into an internal
@@ -48,6 +48,7 @@ public class ReceiverThread extends Thread implements Terminatable {
*/
public void terminate() {
receiverThreadRunning = false;
this.interrupt();
}
/**

View File

@@ -2,7 +2,7 @@
* @author Aaron Moser
*/
package java.src.Receiving;
package vslab1.src.Receiving;
import java.util.concurrent.LinkedBlockingQueue;

View File

@@ -1,10 +1,10 @@
package java.src.Request.Data;
package vslab1.src.Request.Data;
import java.src.FileReaderWriter.FileReaderWriter;
import java.src.Peers.EOnlineState;
import java.src.Peers.Peer;
import java.src.Sending.SendingQueue;
import java.src.Sending.Data.EDataType;
import vslab1.src.FileReaderWriter.FileReaderWriter;
import vslab1.src.Peers.EOnlineState;
import vslab1.src.Peers.Peer;
import vslab1.src.Sending.SendingQueue;
import vslab1.src.Sending.Data.EDataType;
public record OnlineStateNotificationRequest(Peer sender, Peer receiver) implements Requestable {

View File

@@ -1,9 +1,9 @@
package java.src.Request.Data;
package vslab1.src.Request.Data;
import java.src.Peers.Peer;
import java.src.Sending.SendingQueue;
import java.src.Sending.Data.EDataType;
import java.src.Sending.Data.OnlineStateNotification;
import vslab1.src.Peers.Peer;
import vslab1.src.Sending.SendingQueue;
import vslab1.src.Sending.Data.EDataType;
import vslab1.src.Sending.Data.OnlineStateNotification;
public record OnlineStateRequestRequest(Peer sender, Peer receiver) implements Requestable {

View File

@@ -1,10 +1,10 @@
package java.src.Request.Data;
package vslab1.src.Request.Data;
import java.io.FileReader;
import java.io.FileWriter;
import java.src.Peers.Peer;
import java.src.Sending.SendingQueue;
import java.src.Sending.Data.EDataType;
import vslab1.src.Peers.Peer;
import vslab1.src.Sending.SendingQueue;
import vslab1.src.Sending.Data.EDataType;
import org.json.JSONArray;
import org.json.JSONObject;

View File

@@ -1,9 +1,9 @@
package java.src.Request.Data;
package vslab1.src.Request.Data;
import java.src.Peers.Peer;
import java.src.Sending.SendingQueue;
import java.src.Sending.Data.EDataType;
import java.src.Sending.Data.PullFileListRequest;
import vslab1.src.Peers.Peer;
import vslab1.src.Sending.SendingQueue;
import vslab1.src.Sending.Data.EDataType;
import vslab1.src.Sending.Data.PullFileListRequest;
public record PullFileListRequestRequest(Peer sender, Peer receiver) implements Requestable {

View File

@@ -1,10 +1,10 @@
package java.src.Request.Data;
package vslab1.src.Request.Data;
import java.io.BufferedReader;
import java.io.FileReader;
import java.src.Peers.Peer;
import java.src.Sending.SendingQueue;
import java.src.Sending.Data.EDataType;
import vslab1.src.Peers.Peer;
import vslab1.src.Sending.SendingQueue;
import vslab1.src.Sending.Data.EDataType;
public record PullFileRequestRequest(Peer sender, Peer receiver, String fileName) implements Requestable {

View File

@@ -1,8 +1,8 @@
package java.src.Request.Data;
package vslab1.src.Request.Data;
import java.src.Peers.Peer;
import java.src.Sending.SendingQueue;
import java.src.Sending.Data.EDataType;
import vslab1.src.Peers.Peer;
import vslab1.src.Sending.SendingQueue;
import vslab1.src.Sending.Data.EDataType;
public interface Requestable {
public EDataType getType();

View File

@@ -1,8 +1,8 @@
package java.src.Request.Data;
package vslab1.src.Request.Data;
import java.src.Peers.Peer;
import java.src.Sending.SendingQueue;
import java.src.Sending.Data.EDataType;
import vslab1.src.Peers.Peer;
import vslab1.src.Sending.SendingQueue;
import vslab1.src.Sending.Data.EDataType;
public record SendFileReplyRequest(Peer sender, Peer receiver, String fileName, String fileContent) implements Requestable {

View File

@@ -2,23 +2,23 @@
* @author Aaron Moser
*/
package java.src.Request;
package vslab1.src.Request;
import java.src.Terminatable;
import java.src.FileReaderWriter.FileReaderWriter;
import java.src.FileReaderWriter.FileReaderWriter.EUpdated;
import java.src.Peers.EOnlineState;
import java.src.Peers.Peer;
import java.src.Receiving.ReceivedData;
import java.src.Receiving.ReceivingQueue;
import java.src.Request.Data.OnlineStateNotificationRequest;
import java.src.Request.Data.OnlineStateRequestRequest;
import java.src.Request.Data.PublishFileNameNotificationRequest;
import java.src.Request.Data.PullFileListRequestRequest;
import java.src.Request.Data.PullFileRequestRequest;
import java.src.Request.Data.Requestable;
import java.src.Request.Data.SendFileReplyRequest;
import java.src.Sending.SendingQueue;
import vslab1.src.Terminatable;
import vslab1.src.FileReaderWriter.FileReaderWriter;
import vslab1.src.FileReaderWriter.FileReaderWriter.EUpdated;
import vslab1.src.Peers.EOnlineState;
import vslab1.src.Peers.Peer;
import vslab1.src.Receiving.ReceivedData;
import vslab1.src.Receiving.ReceivingQueue;
import vslab1.src.Request.Data.OnlineStateNotificationRequest;
import vslab1.src.Request.Data.OnlineStateRequestRequest;
import vslab1.src.Request.Data.PublishFileNameNotificationRequest;
import vslab1.src.Request.Data.PullFileListRequestRequest;
import vslab1.src.Request.Data.PullFileRequestRequest;
import vslab1.src.Request.Data.Requestable;
import vslab1.src.Request.Data.SendFileReplyRequest;
import vslab1.src.Sending.SendingQueue;
import org.json.JSONObject;
@@ -56,6 +56,7 @@ public class RequestExecuterThread extends Thread implements Terminatable {
public void terminate() {
requestExecuterThreadRunning = false;
this.interrupt();
}
private static Requestable toRequestable(JSONObject receivedData) {

View File

@@ -1,4 +1,4 @@
package java.src.Sending.Data;
package vslab1.src.Sending.Data;
public enum EDataType {
OnlineStateRequest,

View File

@@ -1,6 +1,6 @@
package java.src.Sending.Data;
package vslab1.src.Sending.Data;
import java.src.Peers.Peer;
import vslab1.src.Peers.Peer;
public record OnlineStateNotification(Peer sender, Peer receiver) implements Sendable {

View File

@@ -1,6 +1,6 @@
package java.src.Sending.Data;
package vslab1.src.Sending.Data;
import java.src.Peers.Peer;
import vslab1.src.Peers.Peer;
public record OnlineStateRequest(Peer sender, Peer receiver) implements Sendable {

View File

@@ -1,6 +1,6 @@
package java.src.Sending.Data;
package vslab1.src.Sending.Data;
import java.src.Peers.Peer;
import vslab1.src.Peers.Peer;
public record OnlineStateResponse(Peer sender, Peer receiver) implements Sendable {

View File

@@ -1,6 +1,6 @@
package java.src.Sending.Data;
package vslab1.src.Sending.Data;
import java.src.Peers.Peer;
import vslab1.src.Peers.Peer;
public record PublishFileNameNotification(Peer sender, Peer receiver, String fileName) implements Sendable {

View File

@@ -1,6 +1,6 @@
package java.src.Sending.Data;
package vslab1.src.Sending.Data;
import java.src.Peers.Peer;
import vslab1.src.Peers.Peer;
/**
* Is never getting sent because szenario is, that all peers come online and stay online forever.

View File

@@ -1,6 +1,6 @@
package java.src.Sending.Data;
package vslab1.src.Sending.Data;
import java.src.Peers.Peer;
import vslab1.src.Peers.Peer;
public record PullFileRequest(Peer sender, Peer receiver, String fileName) implements Sendable {

View File

@@ -1,6 +1,6 @@
package java.src.Sending.Data;
package vslab1.src.Sending.Data;
import java.src.Peers.Peer;
import vslab1.src.Peers.Peer;
public record SendFileReply(Peer sender, Peer receiver, String fileContent, String fileName) implements Sendable {

View File

@@ -2,9 +2,9 @@
* @author Aaron Moser
*/
package java.src.Sending.Data;
package vslab1.src.Sending.Data;
import java.src.Peers.Peer;
import vslab1.src.Peers.Peer;
/**
* An instance of this class represents data to send to another peer, by also providing information

View File

@@ -2,15 +2,15 @@
* @author Aaron Moser
*/
package java.src.Sending;
package vslab1.src.Sending;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.src.Terminatable;
import java.src.Sending.Data.Sendable;
import vslab1.src.Terminatable;
import vslab1.src.Sending.Data.Sendable;
public class SenderThread extends Thread implements Terminatable {
@@ -54,6 +54,7 @@ public class SenderThread extends Thread implements Terminatable {
public void terminate() {
senderThreadRunning = false;
this.interrupt();
}
}

View File

@@ -2,9 +2,9 @@
* @author Aaron Moser
*/
package java.src.Sending;
package vslab1.src.Sending;
import java.src.Sending.Data.Sendable;
import vslab1.src.Sending.Data.Sendable;
import java.util.concurrent.LinkedBlockingQueue;
public class SendingQueue extends LinkedBlockingQueue<Sendable> {}

View File

@@ -1,4 +1,4 @@
package java.src.Sending;
package vslab1.src.Sending;
public class TimeoutHandler {

View File

@@ -2,7 +2,7 @@
* @author Aaron Moser
*/
package java.src;
package vslab1.src;
public interface Terminatable {
public void terminate();