From c35818873c691a693db9deec312eea2baafa68b3 Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Mon, 16 Jan 2023 19:04:31 +0100
Subject: [PATCH] Maven update until winter 2019

---
 Klausuren/Sd1/2019winter/Exam/pom.xml         | 67 +++++++++---------
 .../mi/sd1/sample/CharacterMoves.java         | 11 +--
 .../mi/sd1/task1/_1_OddValues.java            |  3 +
 .../mi/sd1/task1/_2_Purchase.java             |  6 +-
 .../mi/sd1/task1/_3_ByteMax.java              | 38 ++++++-----
 .../mi/sd1/task1/_4_ArrayOrder.java           |  4 +-
 .../mi/sd1/task1/_5_Scrabble.java             |  9 ++-
 .../hdm_stuttgart/mi/sd1/task1/extra/Day.java | 24 +++++++
 .../hdm_stuttgart/mi/sd1/task2/Position.java  | 39 ++++-------
 .../main/javadoc/resources/jdocSupplement.css | 68 +++++++++++++++++++
 .../main/javadoc/resources/jdocSupplement.js  |  7 ++
 Klausuren/Sd1/2019winter/Solve/pom.xml        | 67 +++++++++---------
 .../mi/sd1/sample/CharacterMoves.java         |  8 ++-
 .../mi/sd1/task1/_1_OddValues.java            |  3 +
 .../mi/sd1/task1/_2_Purchase.java             |  3 +
 .../mi/sd1/task1/_3_ByteMax.java              | 32 +++++----
 .../mi/sd1/task1/_4_ArrayOrder.java           |  4 +-
 .../mi/sd1/task1/_5_Scrabble.java             | 59 ++++------------
 .../hdm_stuttgart/mi/sd1/task1/extra/Day.java | 28 ++++++++
 .../hdm_stuttgart/mi/sd1/task2/Position.java  | 16 +++--
 .../main/javadoc/resources/jdocSupplement.css | 68 +++++++++++++++++++
 .../main/javadoc/resources/jdocSupplement.js  |  7 ++
 .../main/javadoc/resources/jdocSupplement.js  |  7 ++
 .../main/javadoc/resources/jdocSupplement.js  |  7 ++
 .../main/javadoc/resources/jdocSupplement.js  |  7 ++
 .../main/javadoc/resources/jdocSupplement.js  |  7 ++
 .../main/javadoc/resources/jdocSupplement.js  |  7 ++
 .../main/javadoc/resources/jdocSupplement.js  |  7 ++
 28 files changed, 417 insertions(+), 196 deletions(-)
 create mode 100644 Klausuren/Sd1/2019winter/Exam/src/main/javadoc/resources/jdocSupplement.css
 create mode 100644 Klausuren/Sd1/2019winter/Exam/src/main/javadoc/resources/jdocSupplement.js
 create mode 100644 Klausuren/Sd1/2019winter/Solve/src/main/javadoc/resources/jdocSupplement.css
 create mode 100644 Klausuren/Sd1/2019winter/Solve/src/main/javadoc/resources/jdocSupplement.js
 create mode 100644 Klausuren/Sd1/2020summer/Exam/src/main/javadoc/resources/jdocSupplement.js
 create mode 100644 Klausuren/Sd1/2020summer/Solve/src/main/javadoc/resources/jdocSupplement.js
 create mode 100644 Klausuren/Sd1/2020winter/First/Exam/src/main/javadoc/resources/jdocSupplement.js
 create mode 100644 Klausuren/Sd1/2020winter/First/Solve/src/main/javadoc/resources/jdocSupplement.js
 create mode 100644 Klausuren/Sd1/2020winter/Second/Exam/src/main/javadoc/resources/jdocSupplement.js
 create mode 100644 Klausuren/Sd1/2020winter/Second/Solve/src/main/javadoc/resources/jdocSupplement.js

diff --git a/Klausuren/Sd1/2019winter/Exam/pom.xml b/Klausuren/Sd1/2019winter/Exam/pom.xml
index a0bb6c1fe..47427a504 100644
--- a/Klausuren/Sd1/2019winter/Exam/pom.xml
+++ b/Klausuren/Sd1/2019winter/Exam/pom.xml
@@ -13,6 +13,14 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+    	<maven.compiler.target>17</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+
+        <freedocs.url>https://freedocs.mi.hdm-stuttgart.de</freedocs.url>
+        <jdk.api_17.url>${freedocs.url}/doc/openjdk-17-doc/api/</jdk.api_17.url>
+        <mathjax.url>${freedocs.url}/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML</mathjax.url>
+        <libhighlight.url>${freedocs.url}/lib/highlight.js</libhighlight.url>
     </properties>
 
     <repositories>
@@ -23,50 +31,44 @@
     </repositories>
 
     <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.13</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>2.16.0</version>
-        </dependency>
-
         <dependency>
             <groupId>de.hdm_stuttgart.mi.exam</groupId>
             <artifactId>unitmarking</artifactId>
-            <version>1.1</version>
+            <version>1.2</version>
         </dependency>
 
     </dependencies>
 
     <build>
         <plugins>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
-                <configuration>
-                    <source>11</source>
-                    <target>11</target>
-                </configuration>
+                <version>3.10.1</version>
             </plugin>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <version>3.2.0</version>
+		        <artifactId>maven-javadoc-plugin</artifactId>
+		        <version>3.4.1</version>
                 <configuration>
-                    <doclint>none</doclint>
+                    <!-- Tweak: Get rid of Error message
+                      »fetching link: .../target/javadoc-bundle-options. Ignored it«
+                      corresponding to api_11 below -->
+                    <release>11</release>
+                    <doclint>all</doclint>
+                    <show>public</show>
+                    <docfilessubdirs>true</docfilessubdirs>
+                    <addStylesheets>
+                        <stylesheet>resources/jdocSupplement.css</stylesheet>
+                    </addStylesheets>
+
+                    <windowtitle>Exam documentation</windowtitle>
+
                     <javaApiLinks>
                         <property>
                             <name>api_11</name>
-                            <value>https://freedocs.mi.hdm-stuttgart.de/lib/openjdk-11-doc/api/</value>
+                            <value>${jdk.api_17.url}</value>
                         </property>
                     </javaApiLinks>
 
@@ -74,22 +76,21 @@
                         <additionalOption>-html5 --allow-script-in-comments</additionalOption>
                     </additionalOptions>
                     <nohelp>true</nohelp>
+
                     <header><![CDATA[
-            <script type="text/javascript"
-                src="https://freedocs.mi.hdm-stuttgart.de/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-            <link rel="stylesheet" href="https://freedocs.mi.hdm-stuttgart.de/lib/mi/jdocSupplement.css">
-            <link rel="stylesheet" href="https://freedocs.mi.hdm-stuttgart.de/lib/highlight.js/styles/idea.css">
-            <script src="https://freedocs.mi.hdm-stuttgart.de/lib/highlight.js/highlight.js"></script>
+            <script type="text/javascript" src="${mathjax.url}"></script>
+            <script type="text/javascript" src="{@docRoot}/resources/jdocSupplement.js"></script>
+            <link rel="stylesheet" href="${libhighlight.url}/styles/idea.css">
+            <script src="${libhighlight.url}/highlight.js"></script>
             <script type="text/javascript">hljs.initHighlightingOnLoad();</script>]]>
                     </header>
-                    <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
                 </configuration>
             </plugin>
 
             <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.3.0</version>
-
+                <version>3.4.2</version>
                 <configuration>
                     <descriptors>
                         <descriptor>src/main/assembly/assembly.xml</descriptor>
@@ -105,7 +106,7 @@
                         <configuration>
                             <archive>
                                 <manifest>
-                                    <mainClass>de.hdm_stuttgart.mi.sd1.test.ShowReachedPoints</mainClass>
+                                    <mainClass>de.hdm_stuttgart.mi.sd1.ShowReachedPoints</mainClass>
                                 </manifest>
                             </archive>
                         </configuration>
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/sample/CharacterMoves.java b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/sample/CharacterMoves.java
index fdda34faa..90df42482 100644
--- a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/sample/CharacterMoves.java
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/sample/CharacterMoves.java
@@ -1,11 +1,14 @@
 package de.hdm_stuttgart.mi.sd1.sample;
 
-import de.hdm_stuttgart.mi.sd1.task2.Direction;
-import de.hdm_stuttgart.mi.sd1.task2.Position;
-
+/**
+ * Character move demo.
+ */
 public class CharacterMoves {
 
-
+    /**
+     * Comment containing intended use.
+     * @param args Unused
+     */
     public static void main(String[] args) {
         /* Code may work after completing implementation of class Position
 
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_1_OddValues.java b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_1_OddValues.java
index db10e34c6..736d8d809 100644
--- a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_1_OddValues.java
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_1_OddValues.java
@@ -1,5 +1,8 @@
 package de.hdm_stuttgart.mi.sd1.task1;
 
+/**
+ * Integer helper method.
+ */
 public class _1_OddValues {
     /**
      * <p>Calculate the sum of <em>odd</em> values only. Examples:</p>
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_2_Purchase.java b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_2_Purchase.java
index e6efdc2ae..a3c0f6b88 100644
--- a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_2_Purchase.java
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_2_Purchase.java
@@ -2,6 +2,9 @@ package de.hdm_stuttgart.mi.sd1.task1;
 
 import de.hdm_stuttgart.mi.sd1.task1.extra.Day;
 
+/**
+ * Calculating time dependent costs.
+ */
 public class _2_Purchase {
 
     /**
@@ -26,9 +29,8 @@ public class _2_Purchase {
      * @param purchaseCosts The cost following regular product prizes.
      * @param day Day of week i.e. monday, tuesday,...
      * @return The total cost including possible weekend service fees.
-     *
      * <section class="implementationHints">
-     *   <h3 class="implementationHints">Hint:</h3>
+     *   <h4 class="implementationHints">Hint:</h4>
      *   <p>There are different ways implementing this method. You may extend enum {@link Day} suiting your needs.</p>
      * </section>
      */
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_3_ByteMax.java b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_3_ByteMax.java
index cf43edfa1..878a6cfe8 100644
--- a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_3_ByteMax.java
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_3_ByteMax.java
@@ -13,6 +13,8 @@ public class _3_ByteMax {
      * value. Examples:</p>
      *
      *  <table class="goikTableDefaults" style="text-align: right;">
+     *      <caption>The closest <code>byte</code> value to the maximum of two
+     *      <code>int</code> values.</caption>
      *      <tr>
      *         <th>a</th>
      *         <th>b</th>
@@ -21,38 +23,38 @@ public class _3_ByteMax {
      *         <th style="text-align: center;">Remark</th>
      *      </tr>
      *      <tr>
-     *         <td >-5</th>
-     *         <td>60</th>
-     *         <td>60</th>
-     *         <td>60</th>
-     *         <td style="text-align: left;">Maximum is in <code>byte</code> range.</th>
+     *         <td >-5</td>
+     *         <td>60</td>
+     *         <td>60</td>
+     *         <td>60</td>
+     *         <td style="text-align: left;">Maximum is in <code>byte</code> range.</td>
      *      </tr>
      *      <tr>
-     *         <td>100</th>
-     *         <td>200</th>
-     *         <td>200</th>
-     *         <td>127</th>
+     *         <td>100</td>
+     *         <td>200</td>
+     *         <td>200</td>
+     *         <td>127</td>
      *         <td style="text-align: left;">An <code>int</code> value of 200 is larger than the largest possible
      *         <code>byte</code> value of 127. Thus 127 is the best possible <code>byte</code> value
-     *         approximation.</th>
+     *         approximation.</td>
      *      </tr>
      *      <tr>
-     *         <td>-300</th>
-     *         <td>-500</th>
-     *         <td>-300</th>
-     *         <td>-128</th>
+     *         <td>-300</td>
+     *         <td>-500</td>
+     *         <td>-300</td>
+     *         <td>-128</td>
      *         <td style="text-align: left;">An <code>int</code> value of  -300 is smaller than the smallest
      *         <code>byte</code> value -128. Thus -128 provides the best possible <code>byte</code> value
-     *         approximation.</th>
+     *         approximation.</td>
      *      </tr>
      *  </table>
      *
      * @param a First value
      * @param b Second value
-     * @return the closest <code>byte</code> value to the maximum of both arguments.
-     *
+     * @return the closest <code>byte</code> value
+     *          to the maximum of both arguments.
      * <section class="implementationHints">
-     *   <h3 class="implementationHints">Hint:</h3>
+     *   <h4 class="implementationHints">Hint:</h4>
      *   <p>You may need a cast from <code>int</code> to <code>byte</code> i.e.:</p>
      *   <pre>... = (byte) ...</pre>
      * </section>
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_4_ArrayOrder.java b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_4_ArrayOrder.java
index a05d20ad3..c809e387c 100644
--- a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_4_ArrayOrder.java
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_4_ArrayOrder.java
@@ -12,21 +12,19 @@ public class _4_ArrayOrder {
    * element itself. Examples:</p>
    *
    * <table class="goikTableDefaults" style="text-align: right;">
+   *   <caption>Order of array values</caption>
    *   <tr>
    *     <th>Values</th>
    *     <th>Result</th>
    *   </tr>
-   *
    *   <tr>
    *       <td>{1, 3, 7, 11}</td>
    *       <td>Ascending</td>
    *   </tr>
-   *
    *   <tr>
    *       <td>{1, 6, 6, 9}</td>
    *       <td>Ascending</td>
    *   </tr>
-   *
    *   <tr>
    *       <td>{4, 3, 6}</td>
    *       <td>Not ascending since 3 &lt; 4</td>
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_5_Scrabble.java b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_5_Scrabble.java
index c7aa66822..654fd7400 100644
--- a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_5_Scrabble.java
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_5_Scrabble.java
@@ -2,8 +2,7 @@ package de.hdm_stuttgart.mi.sd1.task1;
 
 /**
  * Scrabble game scores.
- * 
- * <object data="doc-files/scrabble.jpg" type="image/jpg" ></object>
+ * <img src="doc-files/scrabble.jpg" alt="Scrabble" >
  *
  */
 public class _5_Scrabble {
@@ -14,6 +13,7 @@ public class _5_Scrabble {
      * independent score:</p>
      *
      *    <table class="goikTableDefaults">
+     *        <caption>Letters and related score</caption>
      *        <tr>
      *            <th>Letters</th>
      *            <th>Score</th>
@@ -51,13 +51,12 @@ public class _5_Scrabble {
      *  <p>A word's score equals the sum of its character scores. We calculate the score of
      *  <code>"CYPHERTEXT"</code> :</p>
      *
-     * <object data="doc-files/scrabble.svg" type="image/svg+xml"></object>
+     * <img src="doc-files/scrabble.svg" alt="Scrabble">
      *
      * @param word A string or null
      * @return The word's score. Zero for empty string or <code>null</code>.
-     *
      * <section class="implementationHints">
-     *   <h3 class="implementationHints">Helpful classes and methods:</h3>
+     *   <h4 class="implementationHints">Helpful classes and methods:</h4>
      *
      *   <ul>
      *       <li>{@link String#toCharArray()} for splitting a word into its characters</li>
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/extra/Day.java b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/extra/Day.java
index c5e206c90..21837a622 100644
--- a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/extra/Day.java
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task1/extra/Day.java
@@ -1,11 +1,35 @@
 package de.hdm_stuttgart.mi.sd1.task1.extra;
 
+/**
+ * Representing week days.
+ */
 public enum Day {
+    /**
+     * Monday
+     */
     MONDAY,
+    /**
+     * Tuesday
+     */
     TUESDAY,
+    /**
+     * Wednesday
+     */
     WEDNESDAY,
+    /**
+     * Thursday
+     */
     THURSDAY,
+    /**
+     * Friday
+     */
     FRIDAY,
+    /**
+     * Saturday
+     */
     SATURDAY,
+    /**
+     * Sunday
+     */
     SUNDAY;
 }
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task2/Position.java b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task2/Position.java
index d3f423475..92afb49e3 100644
--- a/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task2/Position.java
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/java/de/hdm_stuttgart/mi/sd1/task2/Position.java
@@ -3,9 +3,10 @@ package de.hdm_stuttgart.mi.sd1.task2;
 /**
  * <p>Representing a computer game's character positions.</p>
  *
- * <p>Developing a computer game we start defining an 11×11 grid:</p>
+ * <p>The game in question requires a grid:</p>
  *
  * <table class="goikTableDefaults">
+ *     <caption>A 11×11 grid</caption>
  *     <colgroup>
  *         <col style="width: 50%;">
  *         <col style="width: 50%;">
@@ -20,15 +21,15 @@ package de.hdm_stuttgart.mi.sd1.task2;
  *
  *         <td>
  *             <p>A character can move into {@linkplain Direction eight compass directions} starting from its
- *»current« <code>(x|y)</code> position.</p></td>
+ *                »current« <code>(x|y)</code> position.</p>
+ *         </td>
  *     </tr>
- *
  *     <tr>
  *         <td>
- *            <object data="doc-files/grid.svg" type="image/svg+xml"></object>
+ *            <img src="doc-files/grid.svg" alt="Grid">
  *         </td>
  *         <td>
- *           <object data="doc-files/move.svg" type="image/svg+xml"></object>
+ *           <img src="doc-files/move.svg" alt="moving">
  *         </td>
  *     </tr>
  * </table>
@@ -40,13 +41,14 @@ package de.hdm_stuttgart.mi.sd1.task2;
  * <p>The following example illustrates the expected behaviour:</p>
  *
  * <table class="goikTableDefaults">
+ *  <caption>Creating and moving a {@link Position} instance.</caption>
  *  <tr>
  *    <th>Code</th>
  *    <th>Result</th>
  *  </tr>
  *  <tr>
  *    <td>
- *      <pre><code class="java">{@code  final Position jim =
+ *      <pre><code class="java"> final Position jim =
  *     new Position(3,2);               // Starting at (3|2)
  *
  * System.out.println("Start: " + jim); // Output »Start: (3|2)«
@@ -60,20 +62,20 @@ package de.hdm_stuttgart.mi.sd1.task2;
  *     "Result moving SE: " +           // Attempt leaving grid in
  * jim.move(Direction.SE));             // {@link Direction#SE} fails.
  *
- * System.out.println(jim);             // Unchanged position (2|0)}</code></pre>
+ * System.out.println(jim);             // Unchanged position (2|0)</code></pre>
  *    </td>
  *    <td>
- *      <pre><code class="nohighlight">{@code  Start: (3|2)
+ *      <pre><code class="nohighlight"> Start: (3|2)
  * (2|0)
  * Result moving SE: false
- * (2|0)}</code></pre>
+ * (2|0)</code></pre>
  *    </td>
  *
  *   </tr>
  * </table>
  *
  * <section class="implementationHints">
- *   <h3 class="implementationHints">Hint:</h3>
+ *   <h2 class="implementationHints">Hint:</h2>
  *   <ul>
  *       <li>Consider implementing <code>toString()</code>.</li>
  *       <li>After completing your implementation un-comment
@@ -85,20 +87,5 @@ package de.hdm_stuttgart.mi.sd1.task2;
  * </section>
  */
 public class Position {
-
-    private int x, y;
-
-    public Position(int x, int y) {
-        this.x = x;
-        this.y = y;
-    }
-
-    public void move(Direction d) {
-        // TODO
-    }
-
-    @Override
-    public String toString() {
-        return "(" + x + "|" + y + ")"; // TODO
-    }
+  // Todo: Implement me!
 }
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/javadoc/resources/jdocSupplement.css b/Klausuren/Sd1/2019winter/Exam/src/main/javadoc/resources/jdocSupplement.css
new file mode 100644
index 000000000..9f39b10d8
--- /dev/null
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/javadoc/resources/jdocSupplement.css
@@ -0,0 +1,68 @@
+/* Javadoc extensions: */
+
+table.goikTableDefaults,
+table.goikTableDefaults>caption,
+table.goikTableDefaults>tr>th,
+table.goikTableDefaults>tr>td,
+table.goikTableDefaults>tbody>tr>th,
+table.goikTableDefaults>tbody>tr>td {
+    border: 2px solid black;
+    border-collapse: collapse;
+    padding: 1ex;
+    vertical-align: top;
+}
+
+table.goikTableDefaults>caption {
+    /* border-top-style: solid; border-left-style: solid; border-right-style: solid' */
+    border-bottom-style: none;
+    font-weight: bold;
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+
+table.goikTableDefaults>tbody>tr>td {
+    vertical-align:top;
+}
+table.goikTableDefaults {
+    border-spacing: 0px !important;
+}
+
+table.indexTable {
+    border-collapse: collapse;
+    border-style: hidden;
+}
+
+table.indexTable caption {
+    text-align: left;
+}
+
+table.indexTable td, table.indexTable th {
+    border: 1px solid black;
+    padding: 0.5ex;
+}
+
+em {
+    font-weight: bold;
+    font-style: normal;
+}
+section.implementationHints>h3 {
+    font-weight: bold;
+    background-color: rgb(222, 227, 233);
+}
+
+code {
+    white-space: pre;
+}
+
+.implementationHints {
+    background-color: hsl(120, 100%, 95%) !important;
+}
+
+.myRed {
+    color: red;
+}
+
+.myGreen {
+    color: limegreen;
+}
diff --git a/Klausuren/Sd1/2019winter/Exam/src/main/javadoc/resources/jdocSupplement.js b/Klausuren/Sd1/2019winter/Exam/src/main/javadoc/resources/jdocSupplement.js
new file mode 100644
index 000000000..97911e558
--- /dev/null
+++ b/Klausuren/Sd1/2019winter/Exam/src/main/javadoc/resources/jdocSupplement.js
@@ -0,0 +1,7 @@
+for(var i in document.links) {
+   var link = document.links[i];
+   if (link.href && link.href.indexOf('http') === 0) { 
+       link.target = '_blank';
+   }
+}
+
diff --git a/Klausuren/Sd1/2019winter/Solve/pom.xml b/Klausuren/Sd1/2019winter/Solve/pom.xml
index ffe45837b..410dddb92 100644
--- a/Klausuren/Sd1/2019winter/Solve/pom.xml
+++ b/Klausuren/Sd1/2019winter/Solve/pom.xml
@@ -13,6 +13,14 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+    	<maven.compiler.target>17</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+
+        <freedocs.url>https://freedocs.mi.hdm-stuttgart.de</freedocs.url>
+        <jdk.api_17.url>${freedocs.url}/doc/openjdk-17-doc/api/</jdk.api_17.url>
+        <mathjax.url>${freedocs.url}/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML</mathjax.url>
+        <libhighlight.url>${freedocs.url}/lib/highlight.js</libhighlight.url>
     </properties>
 
     <repositories>
@@ -23,50 +31,44 @@
     </repositories>
 
     <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.13</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>2.16.0</version>
-        </dependency>
-
         <dependency>
             <groupId>de.hdm_stuttgart.mi.exam</groupId>
             <artifactId>unitmarking</artifactId>
-            <version>1.1</version>
+            <version>1.2</version>
         </dependency>
 
     </dependencies>
 
     <build>
         <plugins>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
-                <configuration>
-                    <source>11</source>
-                    <target>11</target>
-                </configuration>
+                <version>3.10.1</version>
             </plugin>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <version>3.2.0</version>
+		        <artifactId>maven-javadoc-plugin</artifactId>
+		        <version>3.4.1</version>
                 <configuration>
-                    <doclint>none</doclint>
+                    <!-- Tweak: Get rid of Error message
+                      »fetching link: .../target/javadoc-bundle-options. Ignored it«
+                      corresponding to api_11 below -->
+                    <release>17</release>
+                    <doclint>all</doclint>
+                    <show>public</show>
+                    <docfilessubdirs>true</docfilessubdirs>
+                    <addStylesheets>
+                        <stylesheet>resources/jdocSupplement.css</stylesheet>
+                    </addStylesheets>
+
+                    <windowtitle>Exam documentation</windowtitle>
+
                     <javaApiLinks>
                         <property>
                             <name>api_11</name>
-                            <value>https://freedocs.mi.hdm-stuttgart.de/lib/openjdk-11-doc/api/</value>
+                            <value>${jdk.api_17.url}</value>
                         </property>
                     </javaApiLinks>
 
@@ -74,22 +76,21 @@
                         <additionalOption>-html5 --allow-script-in-comments</additionalOption>
                     </additionalOptions>
                     <nohelp>true</nohelp>
+
                     <header><![CDATA[
-            <script type="text/javascript"
-                src="https://freedocs.mi.hdm-stuttgart.de/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-            <link rel="stylesheet" href="https://freedocs.mi.hdm-stuttgart.de/lib/mi/jdocSupplement.css">
-            <link rel="stylesheet" href="https://freedocs.mi.hdm-stuttgart.de/lib/highlight.js/styles/idea.css">
-            <script src="https://freedocs.mi.hdm-stuttgart.de/lib/highlight.js/highlight.js"></script>
+            <script type="text/javascript" src="${mathjax.url}"></script>
+            <script type="text/javascript" src="{@docRoot}/resources/jdocSupplement.js"></script>
+            <link rel="stylesheet" href="${libhighlight.url}/styles/idea.css">
+            <script src="${libhighlight.url}/highlight.js"></script>
             <script type="text/javascript">hljs.initHighlightingOnLoad();</script>]]>
                     </header>
-                    <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
                 </configuration>
             </plugin>
 
             <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.3.0</version>
-
+                <version>3.4.2</version>
                 <configuration>
                     <descriptors>
                         <descriptor>src/main/assembly/assembly.xml</descriptor>
@@ -105,7 +106,7 @@
                         <configuration>
                             <archive>
                                 <manifest>
-                                    <mainClass>de.hdm_stuttgart.mi.sd1.test.ShowReachedPoints</mainClass>
+                                    <mainClass>de.hdm_stuttgart.mi.sd1.ShowReachedPoints</mainClass>
                                 </manifest>
                             </archive>
                         </configuration>
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/sample/CharacterMoves.java b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/sample/CharacterMoves.java
index b6ed4b68e..9f94479e6 100644
--- a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/sample/CharacterMoves.java
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/sample/CharacterMoves.java
@@ -3,9 +3,15 @@ package de.hdm_stuttgart.mi.sd1.sample;
 import de.hdm_stuttgart.mi.sd1.task2.Direction;
 import de.hdm_stuttgart.mi.sd1.task2.Position;
 
+/**
+ * Character move demo.
+ */
 public class CharacterMoves {
 
-
+    /**
+     * Comment containing intended use.
+     * @param args Unused
+     */
     public static void main(String[] args) {
 
         final Position jim =
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_1_OddValues.java b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_1_OddValues.java
index 45d22497a..c10a14f62 100644
--- a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_1_OddValues.java
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_1_OddValues.java
@@ -1,5 +1,8 @@
 package de.hdm_stuttgart.mi.sd1.task1;
 
+/**
+ * Integer helper method.
+ */
 public class _1_OddValues {
     /**
      * <p>Calculate the sum of <em>odd</em> values only. Examples:</p>
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_2_Purchase.java b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_2_Purchase.java
index 62c390c85..33dc78d56 100644
--- a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_2_Purchase.java
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_2_Purchase.java
@@ -2,6 +2,9 @@ package de.hdm_stuttgart.mi.sd1.task1;
 
 import de.hdm_stuttgart.mi.sd1.task1.extra.Day;
 
+/**
+ * Calculating time dependent costs.
+ */
 public class _2_Purchase {
 
     /**
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_3_ByteMax.java b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_3_ByteMax.java
index 1ee2e666a..67f1858cf 100644
--- a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_3_ByteMax.java
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_3_ByteMax.java
@@ -13,6 +13,8 @@ public class _3_ByteMax {
      * value. Examples:</p>
      *
      *  <table class="goikTableDefaults" style="text-align: right;">
+     *      <caption>The closest <code>byte</code> value to the maximum of two
+     *      <code>int</code> values.</caption>
      *      <tr>
      *         <th>a</th>
      *         <th>b</th>
@@ -21,29 +23,29 @@ public class _3_ByteMax {
      *         <th style="text-align: center;">Remark</th>
      *      </tr>
      *      <tr>
-     *         <td >-5</th>
-     *         <td>60</th>
-     *         <td>60</th>
-     *         <td>60</th>
-     *         <td style="text-align: left;">Maximum is in <code>byte</code> range.</th>
+     *         <td >-5</td>
+     *         <td>60</td>
+     *         <td>60</td>
+     *         <td>60</td>
+     *         <td style="text-align: left;">Maximum is in <code>byte</code> range.</td>
      *      </tr>
      *      <tr>
-     *         <td>100</th>
-     *         <td>200</th>
-     *         <td>200</th>
-     *         <td>127</th>
+     *         <td>100</td>
+     *         <td>200</td>
+     *         <td>200</td>
+     *         <td>127</td>
      *         <td style="text-align: left;">An <code>int</code> value of 200 is larger than the largest possible
      *         <code>byte</code> value of 127. Thus 127 is the best possible <code>byte</code> value
-     *         approximation.</th>
+     *         approximation.</td>
      *      </tr>
      *      <tr>
-     *         <td>-300</th>
-     *         <td>-500</th>
-     *         <td>-300</th>
-     *         <td>-128</th>
+     *         <td>-300</td>
+     *         <td>-500</td>
+     *         <td>-300</td>
+     *         <td>-128</td>
      *         <td style="text-align: left;">An <code>int</code> value of  -300 is smaller than the smallest
      *         <code>byte</code> value -128. Thus -128 provides the best possible <code>byte</code> value
-     *         approximation.</th>
+     *         approximation.</td>
      *      </tr>
      *  </table>
      *
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_4_ArrayOrder.java b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_4_ArrayOrder.java
index bea6a5b71..3ab3884f9 100644
--- a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_4_ArrayOrder.java
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_4_ArrayOrder.java
@@ -12,21 +12,19 @@ public class _4_ArrayOrder {
    * element itself. Examples:</p>
    *
    * <table class="goikTableDefaults" style="text-align: right;">
+   *   <caption>Order of array values</caption>
    *   <tr>
    *     <th>Values</th>
    *     <th>Result</th>
    *   </tr>
-   *
    *   <tr>
    *       <td>{1, 3, 7, 11}</td>
    *       <td>Ascending</td>
    *   </tr>
-   *
    *   <tr>
    *       <td>{1, 6, 6, 9}</td>
    *       <td>Ascending</td>
    *   </tr>
-   *
    *   <tr>
    *       <td>{4, 3, 6}</td>
    *       <td>Not ascending since 3 &lt; 4</td>
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_5_Scrabble.java b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_5_Scrabble.java
index a1124a45d..4bef9152a 100644
--- a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_5_Scrabble.java
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/_5_Scrabble.java
@@ -2,8 +2,7 @@ package de.hdm_stuttgart.mi.sd1.task1;
 
 /**
  * Scrabble game scores.
- * 
- * <object data="doc-files/scrabble.jpg" type="image/jpg" ></object>
+ * <img src="doc-files/scrabble.jpg" alt="Scrabble" >
  *
  */
 public class _5_Scrabble {
@@ -14,6 +13,7 @@ public class _5_Scrabble {
      * independent score:</p>
      *
      *    <table class="goikTableDefaults">
+     *        <caption>Letters and related score</caption>
      *        <tr>
      *            <th>Letters</th>
      *            <th>Score</th>
@@ -51,7 +51,7 @@ public class _5_Scrabble {
      *  <p>A word's score equals the sum of its character scores. We calculate the score of
      *  <code>"CYPHERTEXT"</code> :</p>
      *
-     * <object data="doc-files/scrabble.svg" type="image/svg+xml"></object>
+     * <img src="doc-files/scrabble.svg" alt="Scrabble">
      *
      * @param word A string or null
      * @return The word's score. Zero for empty string or <code>null</code>.
@@ -69,49 +69,16 @@ public class _5_Scrabble {
     }
 
     static private byte getLetterScore(final char c) {
-        switch(c) {
-            case 'A':
-            case 'E':
-            case 'I':
-            case 'O':
-            case 'U':
-            case 'L':
-            case 'N':
-            case 'R':
-            case 'S':
-            case 'T':
-                return 1;
-
-            case 'D':
-            case 'G':
-                return 2;
-
-            case 'B':
-            case 'C':
-            case 'M':
-            case 'P':
-                return 3;
-
-            case 'F':
-            case 'H':
-            case 'V':
-            case 'W':
-            case 'Y':
-                return 4;
-
-            case 'K':
-                return 5;
-
-            case 'J':
-            case 'X':
-                return 8;
-
-            case 'Q':
-            case 'Z':
-                return 10;
-        }
-        return 0;
+        return switch (c) {
+            case 'A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T' -> 1;
+            case 'D', 'G' -> 2;
+            case 'B', 'C', 'M', 'P' -> 3;
+            case 'F', 'H', 'V', 'W', 'Y' -> 4;
+            case 'K' -> 5;
+            case 'J', 'X' -> 8;
+            case 'Q', 'Z' -> 10;
+            default -> 0;
+        };
     }
-
     private _5_Scrabble(){/* Ignore me: My presence suppresses an otherwise visible default constructor's Javadoc */}
 }
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/extra/Day.java b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/extra/Day.java
index a187583a1..fd90397ba 100644
--- a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/extra/Day.java
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task1/extra/Day.java
@@ -1,12 +1,36 @@
 package de.hdm_stuttgart.mi.sd1.task1.extra;
 
+/**
+ * Representing week days.
+ */
 public enum Day {
+    /**
+     * Monday
+     */
     MONDAY,
+    /**
+     * Tuesday
+     */
     TUESDAY,
+    /**
+     * Wednesday
+     */
     WEDNESDAY,
+    /**
+     * Thursday
+     */
     THURSDAY,
+    /**
+     * Friday
+     */
     FRIDAY,
+    /**
+     * Saturday
+     */
     SATURDAY(100),
+    /**
+     * Sunday
+     */
     SUNDAY(200);
 
     Day() {
@@ -15,5 +39,9 @@ public enum Day {
     Day(final int serviceFee) {
         this.serviceFee = serviceFee;
     }
+
+    /**
+     * Week day dependent service fee.
+     */
     public final int serviceFee;
 }
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task2/Position.java b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task2/Position.java
index 52fc2302b..4ef1c79bd 100644
--- a/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task2/Position.java
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/java/de/hdm_stuttgart/mi/sd1/task2/Position.java
@@ -3,9 +3,10 @@ package de.hdm_stuttgart.mi.sd1.task2;
 /**
  * <p>Representing a computer game's character positions.</p>
  *
- * <p>Developing a computer game we start defining an 11×11 grid:</p>
+ * <p>The game's grid:</p>
  *
  * <table class="goikTableDefaults">
+ *     <caption>A 11×11 grid</caption>
  *     <colgroup>
  *         <col style="width: 50%;">
  *         <col style="width: 50%;">
@@ -25,10 +26,10 @@ package de.hdm_stuttgart.mi.sd1.task2;
  *
  *     <tr>
  *         <td>
- *            <object data="doc-files/grid.svg" type="image/svg+xml"></object>
+ *            <img src="doc-files/grid.svg" alt="Grid">
  *         </td>
  *         <td>
- *           <object data="doc-files/move.svg" type="image/svg+xml"></object>
+ *           <img src="doc-files/move.svg" alt="Moving">
  *         </td>
  *     </tr>
  * </table>
@@ -40,13 +41,14 @@ package de.hdm_stuttgart.mi.sd1.task2;
  * <p>The following example illustrates the expected behaviour:</p>
  *
  * <table class="goikTableDefaults">
+ *  <caption>Moving character positions</caption>
  *  <tr>
  *    <th>Code</th>
  *    <th>Result</th>
  *  </tr>
  *  <tr>
  *    <td>
- *      <pre><code class="java">{@code  final Position jim =
+ *      <pre><code class="java"> final Position jim =
  *     new Position(3,2);               // Starting at (3|2)
  *
  * System.out.println("Start: " + jim); // Output »Start: (3|2)«
@@ -60,13 +62,13 @@ package de.hdm_stuttgart.mi.sd1.task2;
  *     "Result moving SE: " +           // Attempt leaving grid in
  * jim.move(Direction.SE));             // {@link Direction#SE} fails.
  *
- * System.out.println(jim);             // Unchanged position (2|0)}</code></pre>
+ * System.out.println(jim);             // Unchanged position (2|0)</code></pre>
  *    </td>
  *    <td>
- *      <pre><code class="nohighlight">{@code  Start: (3|2)
+ *      <pre><code class="nohighlight"> Start: (3|2)
  * (2|0)
  * Result moving SE: false
- * (2|0)}</code></pre>
+ * (2|0)</code></pre>
  *    </td>
  *
  *   </tr>
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/javadoc/resources/jdocSupplement.css b/Klausuren/Sd1/2019winter/Solve/src/main/javadoc/resources/jdocSupplement.css
new file mode 100644
index 000000000..9f39b10d8
--- /dev/null
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/javadoc/resources/jdocSupplement.css
@@ -0,0 +1,68 @@
+/* Javadoc extensions: */
+
+table.goikTableDefaults,
+table.goikTableDefaults>caption,
+table.goikTableDefaults>tr>th,
+table.goikTableDefaults>tr>td,
+table.goikTableDefaults>tbody>tr>th,
+table.goikTableDefaults>tbody>tr>td {
+    border: 2px solid black;
+    border-collapse: collapse;
+    padding: 1ex;
+    vertical-align: top;
+}
+
+table.goikTableDefaults>caption {
+    /* border-top-style: solid; border-left-style: solid; border-right-style: solid' */
+    border-bottom-style: none;
+    font-weight: bold;
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+
+table.goikTableDefaults>tbody>tr>td {
+    vertical-align:top;
+}
+table.goikTableDefaults {
+    border-spacing: 0px !important;
+}
+
+table.indexTable {
+    border-collapse: collapse;
+    border-style: hidden;
+}
+
+table.indexTable caption {
+    text-align: left;
+}
+
+table.indexTable td, table.indexTable th {
+    border: 1px solid black;
+    padding: 0.5ex;
+}
+
+em {
+    font-weight: bold;
+    font-style: normal;
+}
+section.implementationHints>h3 {
+    font-weight: bold;
+    background-color: rgb(222, 227, 233);
+}
+
+code {
+    white-space: pre;
+}
+
+.implementationHints {
+    background-color: hsl(120, 100%, 95%) !important;
+}
+
+.myRed {
+    color: red;
+}
+
+.myGreen {
+    color: limegreen;
+}
diff --git a/Klausuren/Sd1/2019winter/Solve/src/main/javadoc/resources/jdocSupplement.js b/Klausuren/Sd1/2019winter/Solve/src/main/javadoc/resources/jdocSupplement.js
new file mode 100644
index 000000000..97911e558
--- /dev/null
+++ b/Klausuren/Sd1/2019winter/Solve/src/main/javadoc/resources/jdocSupplement.js
@@ -0,0 +1,7 @@
+for(var i in document.links) {
+   var link = document.links[i];
+   if (link.href && link.href.indexOf('http') === 0) { 
+       link.target = '_blank';
+   }
+}
+
diff --git a/Klausuren/Sd1/2020summer/Exam/src/main/javadoc/resources/jdocSupplement.js b/Klausuren/Sd1/2020summer/Exam/src/main/javadoc/resources/jdocSupplement.js
new file mode 100644
index 000000000..97911e558
--- /dev/null
+++ b/Klausuren/Sd1/2020summer/Exam/src/main/javadoc/resources/jdocSupplement.js
@@ -0,0 +1,7 @@
+for(var i in document.links) {
+   var link = document.links[i];
+   if (link.href && link.href.indexOf('http') === 0) { 
+       link.target = '_blank';
+   }
+}
+
diff --git a/Klausuren/Sd1/2020summer/Solve/src/main/javadoc/resources/jdocSupplement.js b/Klausuren/Sd1/2020summer/Solve/src/main/javadoc/resources/jdocSupplement.js
new file mode 100644
index 000000000..97911e558
--- /dev/null
+++ b/Klausuren/Sd1/2020summer/Solve/src/main/javadoc/resources/jdocSupplement.js
@@ -0,0 +1,7 @@
+for(var i in document.links) {
+   var link = document.links[i];
+   if (link.href && link.href.indexOf('http') === 0) { 
+       link.target = '_blank';
+   }
+}
+
diff --git a/Klausuren/Sd1/2020winter/First/Exam/src/main/javadoc/resources/jdocSupplement.js b/Klausuren/Sd1/2020winter/First/Exam/src/main/javadoc/resources/jdocSupplement.js
new file mode 100644
index 000000000..97911e558
--- /dev/null
+++ b/Klausuren/Sd1/2020winter/First/Exam/src/main/javadoc/resources/jdocSupplement.js
@@ -0,0 +1,7 @@
+for(var i in document.links) {
+   var link = document.links[i];
+   if (link.href && link.href.indexOf('http') === 0) { 
+       link.target = '_blank';
+   }
+}
+
diff --git a/Klausuren/Sd1/2020winter/First/Solve/src/main/javadoc/resources/jdocSupplement.js b/Klausuren/Sd1/2020winter/First/Solve/src/main/javadoc/resources/jdocSupplement.js
new file mode 100644
index 000000000..97911e558
--- /dev/null
+++ b/Klausuren/Sd1/2020winter/First/Solve/src/main/javadoc/resources/jdocSupplement.js
@@ -0,0 +1,7 @@
+for(var i in document.links) {
+   var link = document.links[i];
+   if (link.href && link.href.indexOf('http') === 0) { 
+       link.target = '_blank';
+   }
+}
+
diff --git a/Klausuren/Sd1/2020winter/Second/Exam/src/main/javadoc/resources/jdocSupplement.js b/Klausuren/Sd1/2020winter/Second/Exam/src/main/javadoc/resources/jdocSupplement.js
new file mode 100644
index 000000000..97911e558
--- /dev/null
+++ b/Klausuren/Sd1/2020winter/Second/Exam/src/main/javadoc/resources/jdocSupplement.js
@@ -0,0 +1,7 @@
+for(var i in document.links) {
+   var link = document.links[i];
+   if (link.href && link.href.indexOf('http') === 0) { 
+       link.target = '_blank';
+   }
+}
+
diff --git a/Klausuren/Sd1/2020winter/Second/Solve/src/main/javadoc/resources/jdocSupplement.js b/Klausuren/Sd1/2020winter/Second/Solve/src/main/javadoc/resources/jdocSupplement.js
new file mode 100644
index 000000000..97911e558
--- /dev/null
+++ b/Klausuren/Sd1/2020winter/Second/Solve/src/main/javadoc/resources/jdocSupplement.js
@@ -0,0 +1,7 @@
+for(var i in document.links) {
+   var link = document.links[i];
+   if (link.href && link.href.indexOf('http') === 0) { 
+       link.target = '_blank';
+   }
+}
+
-- 
GitLab