Initial Commit

This commit is contained in:
joss 2025-03-31 21:11:37 +02:00
commit 4b78ccbbd9
8 changed files with 179 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
build/
doc/

39
README.txt Normal file
View file

@ -0,0 +1,39 @@
Beleg SoSe 2025
===============
EINLEITUNG
In diesem Ordner befinden sich fast alle notwendigen Dateien um die vorliegende
Belegarbeit zu kompilieren. Für zusätzliche Abhängigkeiten siehe KOMPILIEREN.
Im Ordner src befindet sich der Java-Quellcode der Anwendung und im Ordner doc
wird die Javadoc-Dokumentation ausgegeben.
AUSFÜHREN
Da die Anwendung keine grafische Oberfläche im klassischen Sinne nutzt
empfiehlt sich ein Starten über die Komandozeile mit
java -jar build/jar/beleg.jar
Beendet werden kann die Anwendung mit Ctrl+C.
Zum Vergleich mit einer "getesteten Instanz" gibt es mindestens bis zum Anfang
des WiSe 25/26 noch eine von mir gehostete Version unter
http://beleg.infra.jossco.de.
KOMPILIEREN
Die folgenden Schritte beschreiben das Kompilieren der Anwendung sowie der
Dokumentation und zusätzlich der schriftlichen Belegarbeit.
Abhängigkeiten für die Anwendung:
* Apache ANT
* Das Java JDK, mindestens in Version 8
Für die Dokumentation wird zusätzlich Javadoc benötigt.

39
build.xml Normal file
View file

@ -0,0 +1,39 @@
<project default="clean-jar">
<property name="main-class" value="hsmw.jotto5.beleg.Main"/>
<target name="clean">
<delete dir="build"/>
<delete dir="doc"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="build/dist"/>
<jar destfile="build/dist/beleg.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="build/dist/beleg.jar" fork="true"/>
</target>
<target name="clean-jar" depends="clean,jar"/>
<target name="doc">
<mkdir dir="doc"/>
<javadoc sourcepath="src" destdir="doc">
<fileset dir="src">
<include name="**"/>
</fileset>
</javadoc>
</target>
</project>

26
src/Main.java Normal file
View file

@ -0,0 +1,26 @@
package hsmw.jotto5.beleg;
import hsmw.jotto5.beleg.views.*;
import com.sun.net.httpserver.*;
import java.net.InetSocketAddress;
/**
* Die Main-Klasse mit dem Einstiegspunkt der Anwendung
*/
public class Main {
/**
* Main-Methode
* @param args Die Programmargumente
*/
public static void main(String[] args) throws Exception {
HttpServer s = HttpServer.create(new InetSocketAddress(8000), 0);
s.createContext("/main", new StartView());
s.setExecutor(null);
s.start();
}
}

26
src/Model.java Normal file
View file

@ -0,0 +1,26 @@
package hsmw.jotto5.beleg;
import java.util.ArrayList;
/**
* Das Model der Anwendung.
*
* Stellt einfache Abfragen bereit und verwaltet die Anbindung an ein Speicher-Backend.
* Zugriff auf Daten ist Thread-sicher. Um ständiges Zusammenbauen von Objekten
* zu vermeiden und um besser vom eigentlichen Backend zu abstrahieren sind viele
* einfache Abfragen als Methode umgesetzt.
*/
public class Model {
private ArrayList<Student> students;
private ArrayList<Resource> resources;
/**
* Initialisiert ein leeres Model.
*/
public Model() {
students = new ArrayList<Student>();
resources = new ArrayList<Resource>();
}
}

13
src/Resource.java Normal file
View file

@ -0,0 +1,13 @@
package hsmw.jotto5.beleg;
/**
* Basisklasse für eine beliebige Ressource.
*
* Alle spezifischen Ressourcen erben von dieser Klasse.
*/
public abstract class Resource {
private String displayName;
private String uid; // UID String, ähnlich "CN" in LDAP
}

13
src/Student.java Normal file
View file

@ -0,0 +1,13 @@
package hsmw.jotto5.beleg;
/**
* Beschreibt eine Studierende Person.
*
* Aus verwaltungstechnischen Gründen zählen Studierende auch als Ressourcen.
*/
public class Student extends Resource {
private String name;
private String lastName;
}

21
src/views/StartView.java Normal file
View file

@ -0,0 +1,21 @@
package hsmw.jotto5.beleg.views;
import java.io.IOException;
import java.io.OutputStream;
import com.sun.net.httpserver.*;
public class StartView implements HttpHandler {
public void handle(HttpExchange t) throws IOException {
String response;
OutputStream os;
response = "<h1>Beleg - Startseite!</h1><p>Bitte waehle aus einer der nachstehenden Optionen.</p>";
od = t.getResponseBody();
t.sendResponseHeaders(200, response.length());
os.write(response.getBytes());
os.close();
}
}