diff --git a/.classpath b/.classpath
index a5d9509..234db15 100644
--- a/.classpath
+++ b/.classpath
@@ -18,7 +18,7 @@
-
+
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 91106d3..da5f736 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -9,9 +9,9 @@ jobs:
steps:
- uses: actions/checkout@v1
- - name: Set up JDK 1.8
+ - name: Set up JDK 11
uses: actions/setup-java@v1
with:
- java-version: 1.8
+ java-version: 11
- name: Build with Maven
run: mvn -B package --file pom.xml
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index cbcb911..7d167b0 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -10,9 +10,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -87,7 +87,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warn
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -127,4 +127,4 @@ org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.source=11
diff --git a/pom.xml b/pom.xml
index ec25577..572b5ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,68 +1,77 @@
-
- 4.0.0
-
- informatik-ag-ngl
- envoy-client
- 0.3-alpha
-
- Envoy Client
- https://github.com/informatik-ag-ngl/envoy-client
-
-
- UTF-8
- UTF-8
- 1.8
- 1.8
-
-
-
-
- jitpack.io
- https://jitpack.io
-
-
-
-
-
- com.github.informatik-ag-ngl
- envoy-common
- develop-SNAPSHOT
-
-
-
-
- envoy-client
-
-
- src/main/resources
-
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
- 2.4.1
-
-
- package
-
- single
-
-
-
-
- envoy.client.ui.Startup
-
-
-
- jar-with-dependencies
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+ 4.0.0
+
+ informatik-ag-ngl
+ envoy-client
+ 0.1-beta
+
+ Envoy Client
+ https://github.com/informatik-ag-ngl/envoy-client
+
+
+ UTF-8
+ UTF-8
+ 11
+ 11
+
+
+
+
+ jitpack.io
+ https://jitpack.io
+
+
+
+
+
+ com.github.informatik-ag-ngl
+ envoy-common
+ develop-SNAPSHOT
+
+
+
+
+ envoy-client
+
+
+ src/main/resources
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.2.0
+
+
+ package
+
+ single
+
+
+
+
+ envoy.client.ui.Startup
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
+
+
diff --git a/src/main/java/envoy/client/data/package-info.java b/src/main/java/envoy/client/data/package-info.java
new file mode 100644
index 0000000..3129027
--- /dev/null
+++ b/src/main/java/envoy/client/data/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * This package contains all data classes and classes related to persistence.
+ *
+ * @author Kai S. K. Engelbart
+ * @author Leon Hofmeister
+ * @author Maximilian Käfer
+ * @since Envoy v0.1-beta
+ */
+package envoy.client.data;
diff --git a/src/main/java/envoy/client/event/package-info.java b/src/main/java/envoy/client/event/package-info.java
new file mode 100644
index 0000000..58383e0
--- /dev/null
+++ b/src/main/java/envoy/client/event/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * This package contains all client-sided events.
+ *
+ * @author Kai S. K. Engelbart
+ * @author Leon Hofmeister
+ * @author Maximilian Käfer
+ * @since Envoy v0.1-beta
+ */
+package envoy.client.event;
diff --git a/src/main/java/envoy/client/net/Client.java b/src/main/java/envoy/client/net/Client.java
index 42bfe0b..acd16e5 100644
--- a/src/main/java/envoy/client/net/Client.java
+++ b/src/main/java/envoy/client/net/Client.java
@@ -85,7 +85,7 @@ public class Client implements Closeable {
rejected = false;
// Start receiver
- new Thread(receiver).start();
+ receiver.start();
// Write login credentials
SerializationUtils.writeBytesWithLength(credentials, socket.getOutputStream());
diff --git a/src/main/java/envoy/client/net/Receiver.java b/src/main/java/envoy/client/net/Receiver.java
index 3b53b48..08ea28d 100644
--- a/src/main/java/envoy/client/net/Receiver.java
+++ b/src/main/java/envoy/client/net/Receiver.java
@@ -21,7 +21,7 @@ import envoy.util.SerializationUtils;
* @author Kai S. K. Engelbart
* @since Envoy v0.3-alpha
*/
-public class Receiver implements Runnable {
+public class Receiver extends Thread {
private final InputStream in;
private final Map, Consumer>> processors = new HashMap<>();
@@ -33,7 +33,10 @@ public class Receiver implements Runnable {
*
* @param in the {@link InputStream} to parse objects from
*/
- public Receiver(InputStream in) { this.in = in; }
+ public Receiver(InputStream in) {
+ super("Receiver");
+ this.in = in;
+ }
@Override
public void run() {
diff --git a/src/main/java/envoy/client/net/package-info.java b/src/main/java/envoy/client/net/package-info.java
new file mode 100644
index 0000000..5ee0e4e
--- /dev/null
+++ b/src/main/java/envoy/client/net/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * This package contains all classes related to client-server communication.
+ *
+ * @author Kai S. K. Engelbart
+ * @author Leon Hofmeister
+ * @author Maximilian Käfer
+ * @since Envoy v0.1-beta
+ */
+package envoy.client.net;
diff --git a/src/main/java/envoy/client/ui/list/ComponentListModel.java b/src/main/java/envoy/client/ui/list/ComponentListModel.java
index fff3e6c..a604149 100644
--- a/src/main/java/envoy/client/ui/list/ComponentListModel.java
+++ b/src/main/java/envoy/client/ui/list/ComponentListModel.java
@@ -91,7 +91,7 @@ public final class ComponentListModel implements Iterable, Serializable {
*/
@Override
public Iterator iterator() {
- return new Iterator() {
+ return new Iterator<>() {
Iterator iter = elements.iterator();
diff --git a/src/main/java/envoy/client/ui/list/package-info.java b/src/main/java/envoy/client/ui/list/package-info.java
new file mode 100644
index 0000000..5f12ffd
--- /dev/null
+++ b/src/main/java/envoy/client/ui/list/package-info.java
@@ -0,0 +1,10 @@
+/**
+ * This package defines a Swing component that can be used to display lists of
+ * other components to the user.
+ *
+ * @author Kai S. K. Engelbart
+ * @author Leon Hofmeister
+ * @author Maximilian Käfer
+ * @since Envoy v0.3-alpha
+ */
+package envoy.client.ui.list;
diff --git a/src/main/java/envoy/client/ui/package-info.java b/src/main/java/envoy/client/ui/package-info.java
new file mode 100644
index 0000000..22238af
--- /dev/null
+++ b/src/main/java/envoy/client/ui/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * This package contains classes defining the user interface.
+ *
+ * @author Kai S. K. Engelbart
+ * @author Leon Hofmeister
+ * @author Maximilian Käfer
+ * @since Envoy v0.1-beta
+ */
+package envoy.client.ui;
diff --git a/src/main/java/envoy/client/ui/settings/package-info.java b/src/main/java/envoy/client/ui/settings/package-info.java
new file mode 100644
index 0000000..bde6540
--- /dev/null
+++ b/src/main/java/envoy/client/ui/settings/package-info.java
@@ -0,0 +1,9 @@
+/**
+ * This package contains user interface classes related to the settings screen.
+ *
+ * @author Kai S. K. Engelbart
+ * @author Leon Hofmeister
+ * @author Maximilian Käfer
+ * @since Envoy v0.2-alpha
+ */
+package envoy.client.ui.settings;
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
new file mode 100644
index 0000000..4227885
--- /dev/null
+++ b/src/main/java/module-info.java
@@ -0,0 +1,17 @@
+/**
+ * This module contains all classes defining the client application of the Envoy
+ * project.
+ *
+ * @author Kai S. K. Engelbart
+ * @author Leon Hofmeister
+ * @author Maximilian Käfer
+ * @since Envoy v0.1-beta
+ */
+module envoy {
+
+ requires transitive envoy.common;
+ requires transitive java.desktop;
+ requires transitive java.logging;
+ requires transitive java.naming;
+ requires transitive java.prefs;
+}