From 539acadee2121c096b7003c05da008df2cfbcd55 Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Mon, 17 Jul 2023 14:18:07 +0200
Subject: [PATCH] Xmlparse revamped

---
 ws/Artifacts/Unitmarking/pom.xml              |  9 +--
 ws/{eclipse => Artifacts}/Xmlparse/.gitignore |  0
 ws/{eclipse => Artifacts}/Xmlparse/pom.xml    | 76 +++++++++++--------
 .../utils/xmlparse/LongoptExplanation.java    | 40 +++++-----
 .../mi}/utils/xmlparse/Parser.java            | 54 ++++++-------
 .../mi}/utils/xmlparse/ParserHandler.java     |  2 +-
 .../test/java/hdm/util/xmlparse/AppTest.java  | 38 ----------
 7 files changed, 95 insertions(+), 124 deletions(-)
 rename ws/{eclipse => Artifacts}/Xmlparse/.gitignore (100%)
 rename ws/{eclipse => Artifacts}/Xmlparse/pom.xml (51%)
 rename ws/{eclipse/Xmlparse/src/main/java/hdm => Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi}/utils/xmlparse/LongoptExplanation.java (78%)
 rename ws/{eclipse/Xmlparse/src/main/java/hdm => Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi}/utils/xmlparse/Parser.java (81%)
 rename ws/{eclipse/Xmlparse/src/main/java/hdm => Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi}/utils/xmlparse/ParserHandler.java (97%)
 delete mode 100644 ws/eclipse/Xmlparse/src/test/java/hdm/util/xmlparse/AppTest.java

diff --git a/ws/Artifacts/Unitmarking/pom.xml b/ws/Artifacts/Unitmarking/pom.xml
index dab3034bf..97ca3c799 100644
--- a/ws/Artifacts/Unitmarking/pom.xml
+++ b/ws/Artifacts/Unitmarking/pom.xml
@@ -13,7 +13,7 @@
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <oxygenxml.version>25.1.0.0</oxygenxml.version>
+    <maven.compiler.release>17</maven.compiler.release>
   </properties>
 
   <distributionManagement>
@@ -48,14 +48,11 @@
       </extension>
     </extensions>
     <plugins>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.10.1</version>
-        <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
-        </configuration>
+        <version>3.11.0</version>
       </plugin>
 
     </plugins>
diff --git a/ws/eclipse/Xmlparse/.gitignore b/ws/Artifacts/Xmlparse/.gitignore
similarity index 100%
rename from ws/eclipse/Xmlparse/.gitignore
rename to ws/Artifacts/Xmlparse/.gitignore
diff --git a/ws/eclipse/Xmlparse/pom.xml b/ws/Artifacts/Xmlparse/pom.xml
similarity index 51%
rename from ws/eclipse/Xmlparse/pom.xml
rename to ws/Artifacts/Xmlparse/pom.xml
index c7679ee33..14e62e388 100644
--- a/ws/eclipse/Xmlparse/pom.xml
+++ b/ws/Artifacts/Xmlparse/pom.xml
@@ -2,9 +2,9 @@
 	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>hdm.util</groupId>
+	<groupId>de.hdm_stuttgart.mi.utils</groupId>
 	<artifactId>xmlparse</artifactId>
-	<version>0.9</version>
+	<version>1.0</version>
 	<packaging>jar</packaging>
 
 	<name>${project.artifactId}</name>
@@ -12,64 +12,80 @@
 
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<maven.compiler.release>17</maven.compiler.release>
 	</properties>
 
+	<distributionManagement>
+		<repository>
+			<id>mi-nexus</id>
+			<url>https://maven.mi.hdm-stuttgart.de/nexus/repository/mi-maven</url>
+		</repository>
+	</distributionManagement>
+
 	<dependencies>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
-			<scope>test</scope>
-		</dependency>
 		<dependency>
 			<groupId>gnu.getopt</groupId>
 			<artifactId>java-getopt</artifactId>
 			<version>1.0.13</version>
 		</dependency>
+
 		<dependency>
 			<groupId>xerces</groupId>
 			<artifactId>xercesImpl</artifactId>
-			<version>2.11.0</version>
+			<version>2.12.2</version>
 		</dependency>
 	</dependencies>
+
 	<build>
-		<finalName>${project.artifactId}-${project.version}-nodeps</finalName>
+		<extensions>
+			<extension>
+				<groupId>org.apache.maven.wagon</groupId>
+				<artifactId>wagon-ssh-external</artifactId>
+				<version>3.5.3</version>
+			</extension>
+		</extensions>
 		<plugins>
+
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-compiler-plugin</artifactId>
-				<version>2.3.2</version>
-				<configuration>
-					<source>1.8</source>
-					<target>1.8</target>
-					<optimize>true</optimize>
-				</configuration>
+				<version>3.11.0</version>
 			</plugin>
+
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-shade-plugin</artifactId>
-				<version>1.2.1</version>
+				<version>3.5.0</version>
+				<configuration>
+					<transformers>
+						<transformer
+								implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+							<manifestEntries>
+								<Main-Class>de.hdm_stuttgart.mi.utils.xmlparse.Parser</Main-Class>
+								<Multi-Release>true</Multi-Release>
+							</manifestEntries>
+						</transformer>
+					</transformers>
+				</configuration>
 				<executions>
 					<execution>
 						<phase>package</phase>
 						<goals>
 							<goal>shade</goal>
 						</goals>
+						<configuration>
+							<filters>
+								<filter>
+									<artifact>*:*</artifact>
+									<excludes>
+										<exclude>META-INF/*</exclude>
+									</excludes>
+								</filter>
+							</filters>
+						</configuration>
+
 					</execution>
 				</executions>
-				<configuration>
-					<finalName>${project.artifactId}-${project.version}</finalName>
-					<filters>
-						<filter>
-							<artifact>*:*</artifact>
-							<excludes>
-								<exclude>META-INF/*.SF</exclude>
-								<exclude>META-INF/*.DSA</exclude>
-								<exclude>META-INF/*.RSA</exclude>
-							</excludes>
-						</filter>
-					</filters>
-				</configuration>
 			</plugin>
 
 		</plugins>
diff --git a/ws/eclipse/Xmlparse/src/main/java/hdm/utils/xmlparse/LongoptExplanation.java b/ws/Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi/utils/xmlparse/LongoptExplanation.java
similarity index 78%
rename from ws/eclipse/Xmlparse/src/main/java/hdm/utils/xmlparse/LongoptExplanation.java
rename to ws/Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi/utils/xmlparse/LongoptExplanation.java
index 89c6eff2e..c4bb87946 100644
--- a/ws/eclipse/Xmlparse/src/main/java/hdm/utils/xmlparse/LongoptExplanation.java
+++ b/ws/Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi/utils/xmlparse/LongoptExplanation.java
@@ -1,4 +1,4 @@
-package hdm.utils.xmlparse;
+package de.hdm_stuttgart.mi.utils.xmlparse;
 
 import gnu.getopt.LongOpt;
 
@@ -7,15 +7,16 @@ import java.util.Map;
 import java.util.Vector;
 
 /**
- * Practical extension to gnu's copt package
+ * Practical extension to gnu's opt package
  *
 */
 public class LongoptExplanation extends LongOpt {
+
   /**
-   * @param isRequired
-   * @param name
-   * @param flag
-   * @param val
+   * @param isRequired true if parameter is being required, false otherwise.
+   * @param name Parameter's name
+   * @param flag Getopt flags
+   * @param val Parameter's value
    * @throws IllegalArgumentException
    */
   public static void add
@@ -23,16 +24,15 @@ public class LongoptExplanation extends LongOpt {
      String name,
      StringBuffer flag,
      int val) throws IllegalArgumentException{
-    
     addOption(name, new LongoptExplanation(isRequired, name, flag, val));
   }
   /**
-   * @param isRequired
-   * @param name
-   * @param argumentRequiredFlag
-   * @param flag
-   * @param val
-   * @param explain
+   * @param isRequired true if parameter is being required, false otherwise.
+   * @param name Parameter's name
+   * @param argumentRequiredFlag T
+   * @param flag Getopt flags
+   * @param val Parameter's value
+   * @param explain Explanation to CLI end user.
    * @throws IllegalArgumentException
    */
   public static void add
@@ -54,17 +54,20 @@ public class LongoptExplanation extends LongOpt {
     }
   }
   /**
-   * @return defined option set
+   * <p>Option values.</p>
+   * @return Set of option values being defined.
    */
   public static LongoptExplanation [] getOptions(){
     return optionOverName.values().toArray(new LongoptExplanation[0]);
   }
   /**
+   * <p>Short option list</p>
    * @return short options
    */
   public static String getShortOptString(){
-    StringBuffer shortOptString = new StringBuffer();
-    LongoptExplanation [] options = getOptions();
+    final StringBuffer shortOptString = new StringBuffer();
+    final LongoptExplanation [] options = getOptions();
+
     for (int i = 0; i < options.length; i++){
       
       shortOptString.append((char)options[i].getVal());
@@ -78,6 +81,7 @@ public class LongoptExplanation extends LongOpt {
     return shortOptString.toString();
   }
   /**
+   * <p>End user CLI usage description.</p>
    * @return Usage description
    */
   public static String getUsage(){
@@ -140,6 +144,6 @@ public class LongoptExplanation extends LongOpt {
   }
   private boolean isRequiredArgument;
   private String argumentExplanation;
-  private static Map <String, LongoptExplanation> optionOverName = new Hashtable<String, LongoptExplanation> ();
-  static Vector<LongoptExplanation> optionsInOrder = new Vector<LongoptExplanation> ();
+  static private Map <String, LongoptExplanation> optionOverName = new Hashtable<String, LongoptExplanation> ();
+  static private Vector<LongoptExplanation> optionsInOrder = new Vector<LongoptExplanation> ();
 }
diff --git a/ws/eclipse/Xmlparse/src/main/java/hdm/utils/xmlparse/Parser.java b/ws/Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi/utils/xmlparse/Parser.java
similarity index 81%
rename from ws/eclipse/Xmlparse/src/main/java/hdm/utils/xmlparse/Parser.java
rename to ws/Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi/utils/xmlparse/Parser.java
index 39310687c..f00617b1d 100644
--- a/ws/eclipse/Xmlparse/src/main/java/hdm/utils/xmlparse/Parser.java
+++ b/ws/Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi/utils/xmlparse/Parser.java
@@ -1,4 +1,4 @@
-package hdm.utils.xmlparse;
+package de.hdm_stuttgart.mi.utils.xmlparse;
 
 import gnu.getopt.Getopt;
 
@@ -32,7 +32,7 @@ public class Parser {
     while ((c = g.getopt()) != -1){
       switch(c){
       case 0:
-        final int longOptionCode = (new Integer(sb.toString())).intValue();
+        final int longOptionCode = Integer.parseInt(sb.toString());
         processOptionCode(longOptionCode, g);
       case 1://
         if (null == xmlFileName){//Not yet initialized?
@@ -85,35 +85,27 @@ public class Parser {
     }
   }
   private static void processOptionCode(int optionCode, Getopt getopt){
-    switch(optionCode){
-    case OPTION_HELP:
-      printUsage();
-      System.exit(0);
-      break;
-
-    case OPTION_VALIDATION:
-      doValidation = true;
-      break;
-
-    case OPTION_SCHEMAVALIDATION:
-      doValidation = true;
-      doSchemaValidation=true;
-      break;
-
-    case OPTION_DEBUG:
-      doDebugging = true;
-      break;
-
-    case OPTION_VERSION:
-      System.out.print("Version " + version + "\n");
-      System.exit(0);
-      break;
-
-    default:
-      System.err.println
-        ("processOptionCode:No such long option code:" +
-         optionCode  + ":" + (char)optionCode);
-      System.exit(1);
+    switch (optionCode) {
+      case OPTION_HELP -> {
+        printUsage();
+        System.exit(0);
+      }
+      case OPTION_VALIDATION -> doValidation = true;
+      case OPTION_SCHEMAVALIDATION -> {
+        doValidation = true;
+        doSchemaValidation = true;
+      }
+      case OPTION_DEBUG -> doDebugging = true;
+      case OPTION_VERSION -> {
+        System.out.print("Version " + version + "\n");
+        System.exit(0);
+      }
+      default -> {
+        System.err.println
+                ("processOptionCode:No such long option code:" +
+                        optionCode + ":" + (char) optionCode);
+        System.exit(1);
+      }
     }
   }
   private  static void printUsage(){
diff --git a/ws/eclipse/Xmlparse/src/main/java/hdm/utils/xmlparse/ParserHandler.java b/ws/Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi/utils/xmlparse/ParserHandler.java
similarity index 97%
rename from ws/eclipse/Xmlparse/src/main/java/hdm/utils/xmlparse/ParserHandler.java
rename to ws/Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi/utils/xmlparse/ParserHandler.java
index 0389a3ffa..f7e345cff 100644
--- a/ws/eclipse/Xmlparse/src/main/java/hdm/utils/xmlparse/ParserHandler.java
+++ b/ws/Artifacts/Xmlparse/src/main/java/de/hdm_stuttgart/mi/utils/xmlparse/ParserHandler.java
@@ -1,4 +1,4 @@
-package hdm.utils.xmlparse;
+package de.hdm_stuttgart.mi.utils.xmlparse;
 
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
diff --git a/ws/eclipse/Xmlparse/src/test/java/hdm/util/xmlparse/AppTest.java b/ws/eclipse/Xmlparse/src/test/java/hdm/util/xmlparse/AppTest.java
deleted file mode 100644
index 8e6be1432..000000000
--- a/ws/eclipse/Xmlparse/src/test/java/hdm/util/xmlparse/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package hdm.util.xmlparse;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest 
-    extends TestCase
-{
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public AppTest( String testName )
-    {
-        super( testName );
-    }
-
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite()
-    {
-        return new TestSuite( AppTest.class );
-    }
-
-    /**
-     * Rigourous Test :-)
-     */
-    public void testApp()
-    {
-        assertTrue( true );
-    }
-}
-- 
GitLab