From 9b8df2effc8b7a582ecef8a45517d045894bd582 Mon Sep 17 00:00:00 2001
From: husakki > getMClasses() {
+ return ResponseEntity.ok(mClassService.getAllMCLass());
+ }
+
+ @PostMapping("/class")
+ public ResponseEntity
testfiles/shell}.
+ * For each file a {@code DynamicTest} is created with the name of the file.
+ *
+ * @return A {@code Stream with one DynamicTest for each *.in}-file.
+ */
+ @TestFactory
+ public Stream evaluateExpressionFiles() {
+ URL testDirURL = getClass().getClassLoader().getResource("testfiles/shell");
+ Path testDirPath = null;
+
+ if (testDirURL == null) {
+ fail("Directory for shell integration tests not found!");
+ }
+
+ try {
+ testDirPath = Path.of(testDirURL.toURI());
+ } catch (URISyntaxException e) {
+ fail("Directory for shell integration tests not found!");
+ }
+
+ try {
+ return Files.walk(testDirPath).filter(
+ path -> path.getFileName().toString().endsWith(".in")
+ ).map(mapInFileToTest());
+ } catch (IOException e) {
+ fail("Error iterating shell integration test input files!");
+ }
+
+ return Stream.empty();
+ }
+
+ /**
+ * This {@code Function} is used to map
+ * a given testinput-file given as a {@code Path}
+ * to a {@code DynamicTest}.
+ *
+ * @return A {@code DynamicTest that uses the function assertShellExpression}
+ * to test the given testinput file.
+ */
+ private Function mapInFileToTest() {
+ return path -> {
+ final String modelFilename = path.getFileName().toString().replace(".in", ".use");
+ final Path modelPath = path.resolveSibling(modelFilename);
+
+ return DynamicTest.dynamicTest(path.getFileName().toString(), path.toUri(), () -> assertShellExpressions(path, modelPath));
+ };
+ }
+
+ /**
+ * This function controls the overall process for test for a single testfile.
+ *
+ * The process is as follows:
+ *
+ * - a command file and the expected output are created by examining the input file (via {@code createCommandFile}.
+ * - USE is executed using the {@code useFile
and the created command file (runUSE}).
+ * The output of USE is compared to the expected output created in 1. ({@code validateOutput}).
+ *
+ *
+ * @param testFile {@code Path} to the test input file to execute.
+ * @param useFile {@code Path} to the USE file containing the model to load for the test.
+ */
+ private void assertShellExpressions(Path testFile, Path useFile) {
+
+ Path cmdFile = testFile.resolveSibling(testFile.getFileName() + ".cmd");
+
+ List expectedOutput = createCommandFile(testFile, cmdFile);
+
+ List actualOutput = runUSE(useFile, cmdFile).collect(Collectors.toList());
+
+ validateOutput(testFile, expectedOutput, actualOutput);
+ }
+
+ /**
+ * Compares the two lists of strings {@code expectedOutput}
+ * and {@code actualOutput}.
+ * If they differ, two files are written at the location of the
+ * {@code testFile . One with the expected output (.expected})
+ * and one with the actual output ({@code .actual}).
+ *
+ * @param testFile The {@code Path to the testFile}
+ * @param expectedOutput List of strings with the expected output (one String per line)
+ * @param actualOutput List of strings with the actual output (one String per line)
+ */
+ private void validateOutput(Path testFile, List expectedOutput, List actualOutput) {
+ //create a configured DiffRowGenerator
+ DiffRowGenerator generator = DiffRowGenerator.create()
+ .showInlineDiffs(true)
+ .mergeOriginalRevised(true)
+ .inlineDiffByWord(true)
+ .ignoreWhiteSpaces(true)
+ .lineNormalizer( (s) -> s ) // No normalization required
+ .oldTag((f, start) -> start ? "-\033[9m" : "\033[m-") //introduce markdown style for strikethrough
+ .newTag((f, start) -> start ? "+\033[97;42m" : "\033[m+") //introduce markdown style for bold
+ .build();
+
+ //compute the differences for two test texts.
+ List rows = generator.generateDiffRows(expectedOutput, actualOutput);
+ Predicate filter = d -> d.getTag() != DiffRow.Tag.EQUAL;
+
+ if (rows.stream().anyMatch(filter)) {
+ StringBuilder diffMsg = new StringBuilder("USE output does not match expected output!").append(System.lineSeparator());
+
+ diffMsg.append("Testfile: ").append(testFile).append(System.lineSeparator());
+
+ diffMsg.append(System.lineSeparator()).append("Note: the position is not the position in the input file!");
+ diffMsg.append(System.lineSeparator()).append(System.lineSeparator());
+
+ rows.stream().filter(filter).forEach(
+ row ->diffMsg.append(System.lineSeparator()).append(row.getOldLine())
+ );
+
+ writeToFile(expectedOutput, testFile.getParent().resolve(testFile.getFileName().toString() + ".expected"));
+ writeToFile(actualOutput, testFile.getParent().resolve(testFile.getFileName().toString() + ".actual"));
+
+ fail(diffMsg.toString());
+ }
+ }
+
+ /**
+ * Helper method that writes the list of strings {@code data}
+ * to the file located by the {@code Path} {@code file}.
+ *
+ * If the file is not accessible, i.e., an IOException is thrown,
+ * the exceptions is caught and the test case fails.
+ * @param data The {@code List} of string (lines) to write.
+ * @param file The path to the file to write (file is overwritten).
+ */
+ private void writeToFile(List data, Path file) {
+ try (FileWriter writer = new FileWriter(file.toFile())) {
+
+ for (String line : data) {
+ writer.write(line);
+ writer.write(System.lineSeparator());
+ }
+ } catch (IOException e) {
+ fail("Testoutput could not be written!", e);
+ }
+ }
+
+ /**
+ * Creates a USE-command file at the position located by the path {@code cmdFile}.
+ * The file contains all commands that are specified in the {@code inFile}.
+ * The expected output, i.e., lines starting with a {@code *} are added to the list {@code expectedOutput}.
+ *
+ * @param inFile The {@code Path} to the test input file.
+ * @param cmdFile The {@code Path} where to create the command file.
+ * @return A {@code List} which is filled with the expected output of USE.
+ */
+ private List createCommandFile(Path inFile, Path cmdFile) {
+ List expectedOutput = new LinkedList<>();
+
+ // Build USE command file and build expected output
+ try (
+ Stream linesStream = Files.lines(inFile, StandardCharsets.UTF_8);
+ FileWriter cmdWriter = new FileWriter(cmdFile.toFile(), StandardCharsets.UTF_8, false)
+ ) {
+
+ linesStream.forEach(inputLine -> {
+
+ // Ignore empty lines in expected, since they are also suppressed in actual output
+ if (inputLine.isBlank())
+ return;
+
+ if ((inputLine.startsWith("*") || inputLine.startsWith("#"))
+ && inputLine.substring(1).isBlank()) {
+ return;
+ }
+
+ if (inputLine.startsWith("*")) {
+ // Input line minus prefix(*) is expected output
+ expectedOutput.add(inputLine.substring(1).trim());
+ } else if (!inputLine.startsWith("#")) { // Not a comment
+ try {
+ cmdWriter.write(inputLine);
+ cmdWriter.write(System.lineSeparator());
+
+ // Multi line commands (backslash and dot) are ignored
+ if (!inputLine.matches("^[\\\\.]$")) {
+ expectedOutput.add(inputLine);
+ }
+ } catch (IOException e1) {
+ fail("Could not write USE command file for test!", e1);
+ }
+ }
+ });
+ } catch (IOException e) {
+ fail("Could not write USE command file for test!", e);
+ }
+
+ return expectedOutput;
+ }
+
+ /**
+ * Executes USE with the given {@code useFile} as the model
+ * and the {@code cmdFile} to execute commands.
+ * The output is captured from the output and error streams.
+ *
+ * @param useFile Path to the USE model to load on startup
+ * @param cmdFile Path to the commands file to execute
+ * @return A {@code List} of strings. Each string is one line of output.
+ */
+ private Stream runUSE(Path useFile, Path cmdFile) {
+
+ // We need to specify a concrete locale to always get the same formatted result
+ Locale.setDefault(new Locale("en", "US"));
+
+ Options.resetOptions();
+ USEWriter.getInstance().clearLog();
+
+ String homeDir = null;
+ try {
+ homeDir = useFile.getParent().resolve("../../../../../use-core/target/classes").toFile().getCanonicalPath();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ String[] args = new String[] {
+ "-nogui",
+ "-nr",
+ "-t",
+ "-it",
+ "-q",
+ "-oclAnyCollectionsChecks:E",
+ "-extendedTypeSystemChecks:E",
+ /* This is currently an unstable workaround
+ USE determines the plugin and the extensions to OCL by fixed paths.
+ For now, the use-core module contains the directories including the extensions
+ and an empty plugins folder.
+ The folder is located: use/use-core/target/classes
+ Therefore, this is used as the USE home
+ */
+ "-H=" + homeDir,
+ useFile.toString(),
+ cmdFile.toString()};
+
+ Main.main(args);
+
+ try (ByteArrayOutputStream protocol = new ByteArrayOutputStream();) {
+ USEWriter.getInstance().writeProtocolFile(protocol);
+ String output = protocol.toString();
+ return output.lines().filter(l -> !l.isBlank());
+ } catch (IOException e) {
+ fail(e);
+ }
+
+ return Collections.emptyList().stream();
+ }
+}
diff --git a/use-gui/src/main/java/org/tzi/use/main/Main.java b/use-gui/src/main/java/org/tzi/use/main/Main.java
new file mode 100644
index 000000000..5a70ef8ad
--- /dev/null
+++ b/use-gui/src/main/java/org/tzi/use/main/Main.java
@@ -0,0 +1,259 @@
+/*
+ * USE - UML based specification environment
+ * Copyright (C) 1999-2004 Mark Richters, University of Bremen
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.tzi.use.main;
+
+import org.tzi.use.config.Options;
+import org.tzi.use.gui.main.MainWindow;
+import org.tzi.use.main.runtime.IRuntime;
+import org.tzi.use.main.shell.Shell;
+import org.tzi.use.parser.use.USECompiler;
+import org.tzi.use.uml.mm.MMPrintVisitor;
+import org.tzi.use.uml.mm.MMVisitor;
+import org.tzi.use.uml.mm.MModel;
+import org.tzi.use.uml.mm.ModelFactory;
+import org.tzi.use.uml.ocl.extension.ExtensionManager;
+import org.tzi.use.uml.sys.MSystem;
+import org.tzi.use.util.Log;
+import org.tzi.use.util.USEWriter;
+
+import javax.swing.*;
+import javax.swing.plaf.FontUIResource;
+import javax.swing.plaf.metal.DefaultMetalTheme;
+import javax.swing.plaf.metal.MetalLookAndFeel;
+import java.awt.*;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.lang.reflect.Method;
+import java.nio.file.Path;
+
+/**
+ * Main class.
+ *
+ * @author Mark Richters
+ */
+public final class Main {
+
+ // utility class
+ private Main() {
+ }
+
+ private static void initGUIdefaults() {
+ MetalLookAndFeel.setCurrentTheme(new MyTheme());
+ }
+
+ public static void main(String[] args) {
+ // set System.out to the OldUSEWriter to protocol the output.
+ System.setOut(USEWriter.getInstance().getOut());
+ // set System.err to the OldUSEWriter to protocol the output.
+ System.setErr(USEWriter.getInstance().getErr());
+
+ // read and set global options, setup application properties
+ Options.processArgs(args);
+ if (Options.doGUI) {
+ initGUIdefaults();
+ }
+
+ Session session = new Session();
+ IRuntime pluginRuntime = null;
+ MModel model = null;
+ MSystem system = null;
+
+ if (!Options.disableExtensions) {
+ ExtensionManager.EXTENSIONS_FOLDER = Options.homeDir + Options.FILE_SEPARATOR +
+ "oclextensions";
+ ExtensionManager.getInstance().loadExtensions();
+ }
+
+ // Plugin Framework
+ if (Options.doPLUGIN) {
+ // create URL from plugin directory
+ Path pluginDirURL = Options.pluginDir;
+ Log.verbose("Plugin path: [" + pluginDirURL + "]");
+ Class> mainPluginRuntimeClass = null;
+ try {
+ mainPluginRuntimeClass = Class
+ .forName("org.tzi.use.runtime.MainPluginRuntime");
+ } catch (ClassNotFoundException e) {
+ Log
+ .error("Could not load PluginRuntime. Probably use-runtime-...jar is missing.\n"
+ + "Try starting use with -noplugins switch.\n"
+ + e.getMessage());
+ System.exit(1);
+ }
+ try {
+ Method run = mainPluginRuntimeClass.getMethod("run",
+ new Class[] { Path.class });
+ pluginRuntime = (IRuntime) run.invoke(null,
+ new Object[] { pluginDirURL });
+ Log.debug("Starting plugin runtime, got class ["
+ + pluginRuntime.getClass() + "]");
+ } catch (Exception e) {
+ e.printStackTrace();
+ Log.error("FATAL ERROR.");
+ System.exit(1);
+ }
+ }
+
+ // compile spec if filename given as argument
+ if (Options.specFilename != null) {
+ Path file = Path.of(Options.specFilename);
+
+ try (FileInputStream specStream = new FileInputStream(Options.specFilename)){
+ Log.verbose("compiling specification...");
+ model = USECompiler.compileSpecification(specStream,
+ file.getFileName().toString(), new PrintWriter(System.err),
+ new ModelFactory());
+ } catch (FileNotFoundException e) {
+ Log.error("File `" + Options.specFilename + "' not found.");
+ if (Options.integrationTestMode) {
+ return;
+ } else {
+ System.exit(1);
+ }
+ } catch (IOException e1) {
+ // close failed
+ }
+
+ // compile errors?
+ if (model == null) {
+ if (Options.integrationTestMode) {
+ return;
+ } else {
+ System.exit(1);
+ }
+ }
+
+ if(!Options.quiet){
+ Options.setLastDirectory(new java.io.File(Options.specFilename).getAbsoluteFile().toPath().getParent());
+ }
+ if (!Options.testMode)
+ Options.getRecentFiles().push(Options.specFilename);
+
+ if (Options.compileOnly) {
+ Log.verbose("no errors.");
+ if (Options.compileAndPrint) {
+ MMVisitor v = new MMPrintVisitor(new PrintWriter(
+ System.out, true));
+ model.processWithVisitor(v);
+ }
+ System.exit(0);
+ }
+
+ // print some info about model
+ Log.verbose(model.getStats());
+
+ // create system
+ system = new MSystem(model);
+ }
+ session.setSystem(system);
+
+ if (Options.doGUI) {
+ if (pluginRuntime == null) {
+ Log.debug("Starting gui without plugin runtime!");
+ MainWindow.create(session);
+ } else {
+ Log.debug("Starting gui with plugin runtime.");
+ MainWindow.create(session, pluginRuntime);
+ }
+ }
+
+ // create thread for shell
+ Shell.createInstance(session, pluginRuntime);
+ Shell sh = Shell.getInstance();
+ Thread t = new Thread(sh);
+ t.start();
+
+ // wait on exit from shell (this thread never returns)
+ try {
+ t.join();
+ } catch (InterruptedException ex) {
+ // ignored
+ }
+ }
+}
+
+/**
+ * A theme with full control over fonts and customized tree display.
+ */
+class MyTheme extends DefaultMetalTheme {
+ private FontUIResource controlFont;
+
+ private FontUIResource systemFont;
+
+ private FontUIResource userFont;
+
+ private FontUIResource smallFont;
+
+ MyTheme() {
+ // System.out.println("font: " + Font.getFont("use.gui.controlFont"));
+ controlFont = new FontUIResource(Font.getFont("use.gui.controlFont",
+ super.getControlTextFont()));
+ systemFont = new FontUIResource(Font.getFont("use.gui.systemFont",
+ super.getSystemTextFont()));
+ userFont = new FontUIResource(Font.getFont("use.gui.userFont", super
+ .getUserTextFont()));
+ smallFont = new FontUIResource(Font.getFont("use.gui.smallFont", super
+ .getSubTextFont()));
+ }
+
+ public String getName() {
+ return "USE";
+ }
+
+ public FontUIResource getControlTextFont() {
+ return controlFont;
+ }
+
+ public FontUIResource getSystemTextFont() {
+ return systemFont;
+ }
+
+ public FontUIResource getUserTextFont() {
+ return userFont;
+ }
+
+ public FontUIResource getMenuTextFont() {
+ return controlFont;
+ }
+
+ public FontUIResource getWindowTitleFont() {
+ return controlFont;
+ }
+
+ public FontUIResource getSubTextFont() {
+ return smallFont;
+ }
+
+ public void addCustomEntriesToTable(UIDefaults table) {
+ initIcon(table, "Tree.expandedIcon", "TreeExpanded.gif");
+ initIcon(table, "Tree.collapsedIcon", "TreeCollapsed.gif");
+ initIcon(table, "Tree.leafIcon", "TreeLeaf.gif");
+ initIcon(table, "Tree.openIcon", "TreeOpen.gif");
+ initIcon(table, "Tree.closedIcon", "TreeClosed.gif");
+ table.put("Desktop.background", table.get("Menu.background"));
+ }
+
+ private void initIcon(UIDefaults table, String property, String iconFilename) {
+ table.put(property, new ImageIcon(getClass().getResource("/images/" + iconFilename)));
+ }
+
+}
diff --git a/use-gui/src/main/java/org/tzi/use/util/input/ShellReadline.java b/use-gui/src/main/java/org/tzi/use/util/input/ShellReadline.java
new file mode 100644
index 000000000..03c17e035
--- /dev/null
+++ b/use-gui/src/main/java/org/tzi/use/util/input/ShellReadline.java
@@ -0,0 +1,71 @@
+/*
+ * USE - UML based specification environment
+ * Copyright (C) 1999-2010 Mark Richters, University of Bremen
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.tzi.use.util.input;
+
+import java.io.IOException;
+
+import org.tzi.use.main.shell.Shell;
+
+/**
+ * A {@link Readline} implementation that reads input from the {@link Shell}
+ * using the current readline that is on top of the readline stack. This might
+ * either be interactive or from an open soil file.
+ *
+ * @author Frank Hilken
+ */
+public class ShellReadline implements Readline {
+
+ private Shell shell;
+
+ public ShellReadline(Shell useShell) {
+ shell = useShell;
+ }
+
+ @Override
+ public String readline(String prompt) throws IOException {
+ if(shell == null){
+ throw new IOException("Stream closed");
+ }
+ return shell.readline(prompt);
+ }
+
+ @Override
+ public void usingHistory() {
+ }
+
+ @Override
+ public void readHistory(String filename) throws IOException {
+ }
+
+ @Override
+ public void writeHistory(String filename) throws IOException {
+ }
+
+ @Override
+ public void close() throws IOException {
+ shell = null;
+ }
+
+ @Override
+ public boolean doEcho() {
+ return false;
+ }
+
+}
diff --git a/use-gui/src/main/resources/images/use1.gif b/use-gui/src/main/resources/images/use1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1b947ed7150d1815e38b91f375cf764dc0eb1d50
GIT binary patch
literal 1706
zcmbV{i&v9}8OA?85=h9!B#`T|m_&$8fbq$tT!!a_$R!aN7fFhM+Xn>XA{`<+gRTuU
zK}=FEa{Gu>xrqdDq7JJJw*&+Gpde6!q}4eXVr8rwt;|N-vBmxgd(L@(&-0%1p68r5
zUKSS~k#iJ)fPVu3>TsYA6#Z!s)PbNVf;bSwNd!hw7;(UelL!o>Fzh4@Ar1&ZAq0V7
z2Lz)K>XkTW>tEQXzc002M`07e1WNf>}o073xB8Qxw101W(O4u`|J{NLj3
zkdtzh`P|;|x1Ddl1l)GaEoD-FPCeRNK6O0u%6xytq3fA9
z>_ewN|1CIbzj62V(Uvw)-3h--!8{CnlDOyb#>3E6v3;%)EX9<%ON&7QT}NlreHbL{
zp%QnjdmGYj#I?C930_@PsHxal6~2}z5=$umm`>%oDd3x
zxFnG3N$n=ffKHQ%cR8j+?_;3zSq2uH$G$tnzdtt4`QrqeBmB-fwJQnJy+9Ss43Vg5
zrs>XVoEjX4b8uDBG1!v~X<{&6&HMxL{*xjx&%Zrh^`BM%b=OHk=-<}?lvA@Y(Y#`Y
zwtpDv#uA9Z;pdtylAXqn?+5L?i5PSEjkv8f2kn6(uz(jNe{~hI{UKkjey4nIg}`|8EzXQ)<+WhSANE_jNd)UEHF%(
z7Ck@xETBQH1CM=#f!hz3_KIWdjPNGx))`ju5^ng$)882{aIXE3zSYP2hSSpqka3D;
zNz`BsjDM4rYR-*%xOS6eU*ZQx
zXeirE5*9On@i?LHOoxkt<$Nu`=y#Yya?M?C-pM%lVgW9<4=4JwrMEV0kLZ?pPh$Eu
zf+t!x09V}1kz*wllhNveosB|@Nbe)mD5^t)^Z{h~cwhRa%`Gu%ir7Rv@L>?$BjFdf
zf&^GAepJH8H>QwtyCa7SXoPIr!$3jVmcrvt6%?i(`Br%45T_0=|IqIotC7!I@fu2E
zq!-s5c{TFDC9A3Bg)lTuCrP0tO<`KD+@9r=57v&mG4Qn1-xD(b@gt2LwbL{j;^Ph*aF4&<+TN9TKxCp8tJnK!onO*>L;o`lX%mErOiti
zW;L5}_|+G^YXIY3-Us`Kj0wqSxA|SG3uVEW;+J
zDLP&GB@}}-a|n|ungg>-!#<+htuD_ql$M!{*z*g4-<0mpQVl#i%I$|vo}S|ncBiO>
zGUAFlG9r((Xge8vK-;z)vlgz%_q*78zUp-^Mt9&s<)s}8X1n^)^-Le;SK`e+ru`sG
zqv{D?hs$2QSCi%Sw>b-?wVdwK8Zh3l-&b??&J)Ejk*ogKOoH^?(Wcf5Sw3yLF?Qmz
zZY20#Mfcv@QE8T!C1?Js&(CPT+K9&yx8gY0Q$7Y30quNq66hYT0m$4cO+!zPUzyo|
z`)Vy%C?sJa!q?R_zNkgd47(>w9k}m$OH?L4FM6rwa?+Nq`!d&6
z)FEu(HkSHB1Gli^>?P)6HF2a}Z16rYwE<9BAuhk>g;1+T4WStPWa{Z0lf8%^p?QIl
znk-T`!FsgyRV^8BY{I|q70voFVAW+TB|hAClf0|5Cicss`XJ>gtM^1~yJEj!+_(kQ
zZ}ZuAdF#|-#c=PlxJ!O4^ZevghscHxGi`8YI~1&?eox|-;ab$!vboByUS5vHfxyrI
E2b_JZ&Hw-a
literal 0
HcmV?d00001
diff --git a/use-gui/src/test/java/org/tzi/use/util/DiagramUtilTest.java b/use-gui/src/test/java/org/tzi/use/util/DiagramUtilTest.java
new file mode 100644
index 000000000..d84d8fe02
--- /dev/null
+++ b/use-gui/src/test/java/org/tzi/use/util/DiagramUtilTest.java
@@ -0,0 +1,130 @@
+/*
+ * USE - UML based specification environment
+ * Copyright (C) 1999-2010 Mark Richters, University of Bremen
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.tzi.use.util;
+
+import java.awt.geom.Ellipse2D;
+import java.awt.geom.Line2D;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+import org.tzi.use.gui.views.diagrams.util.Util;
+
+/**
+ * Test for diagram utilities (mainly geometry)
+ * @author Lars Hamann
+ *
+ */
+public class DiagramUtilTest extends TestCase {
+ @Test
+ public void testCircleIntersection() {
+ Ellipse2D circle = new Ellipse2D.Double(-4, -4, 8, 8);
+ Point2D res;
+ Point2D.Double expected = new Point2D.Double();
+
+ expected.x = 4;
+ expected.y = 0;
+ res = Util.intersectionPoint(circle, new Point2D.Double(4, 0));
+ assertEquals(expected, res);
+
+ expected.x = 0;
+ expected.y = 4;
+ res = Util.intersectionPoint(circle, new Point2D.Double(0, 4));
+ assertEquals(expected, res);
+
+ expected.x = -4;
+ expected.y = 0;
+ res = Util.intersectionPoint(circle, new Point2D.Double(-4, 0));
+ assertEquals(expected, res);
+
+ expected.x = 0;
+ expected.y = -4;
+ res = Util.intersectionPoint(circle, new Point2D.Double(0, -4));
+ assertEquals(expected, res);
+
+ res = Util.intersectionPoint(circle, new Point2D.Double(1.5, -2.5));
+ Point2D res2 = Util.intersectionPoint(circle, res);
+ assertEquals(res, res2);
+ }
+
+ public void testRectangleInterception() {
+ Rectangle2D.Double r = new Rectangle2D.Double();
+ r.x = 0;
+ r.y = 0;
+ r.width = 1;
+ r.height = 1;
+
+ Line2D.Double l = new Line2D.Double();
+ l.x1 = 0.5;
+ l.y1 = 0.5;
+
+ l.x2 = 1.5;
+ l.y2 = 0.5;
+
+ Point2D res = Util.intersectionPoint(r, l.getP1(), l.getP2(), true);
+ assertEquals(1.0, res.getX());
+ assertEquals(0.5, res.getY());
+
+ l.x2 = 0.5;
+ l.y2 = 1.5;
+ res = Util.intersectionPoint(r, l.getP1(), l.getP2(), true);
+ assertEquals(0.5, res.getX());
+ assertEquals(1.0, res.getY());
+
+ l.x2 = -0.5;
+ l.y2 = 0.5;
+ res = Util.intersectionPoint(r, l.getP1(), l.getP2(), true);
+ assertEquals(0.0, res.getX());
+ assertEquals(50, Math.round(res.getY() * 100));
+
+ l.x2 = 0.5;
+ l.y2 = -1.5;
+ res = Util.intersectionPoint(r, l.getP1(), l.getP2(), true);
+ assertEquals(0.5, res.getX());
+ assertEquals(0.0, res.getY() * 100);
+
+ // Test enlarge
+ l.x2 = 0.6;
+ l.y2 = 0.5;
+ res = Util.intersectionPoint(r, l.getP1(), l.getP2(), true);
+ assertEquals(1.0, res.getX());
+ assertEquals(0.5, res.getY());
+
+ l.x2 = 0.5;
+ l.y2 = 0.6;
+ res = Util.intersectionPoint(r, l.getP1(), l.getP2(), true);
+ assertEquals(0.5, res.getX());
+ assertEquals(1.0, res.getY());
+
+ l.x2 = 0.4;
+ l.y2 = 0.5;
+ res = Util.intersectionPoint(r, l.getP1(), l.getP2(), true);
+ assertEquals(0.0, res.getX());
+ assertEquals(50, Math.round(res.getY() * 100));
+
+ l.x2 = 0.5;
+ l.y2 = 0.4;
+ res = Util.intersectionPoint(r, l.getP1(), l.getP2(), true);
+ assertEquals(0.5, res.getX());
+ assertEquals(0.0, res.getY() * 100);
+ }
+}
From 88d6a613407f2ce9eade1a4daabe011188793a1b Mon Sep 17 00:00:00 2001
From: husakki
Date: Tue, 10 Dec 2024 01:08:36 +0100
Subject: [PATCH 002/148] wrong graphql name, now fixed
---
.../use/graphql/services/MClassGService.java | 2 +-
.../services/MClassGService$MClassInput.class | Bin 2411 -> 2411 bytes
.../use/graphql/services/MClassGService.class | Bin 1855 -> 2026 bytes
3 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/use-api/src/main/java/org/tzi/use/graphql/services/MClassGService.java b/use-api/src/main/java/org/tzi/use/graphql/services/MClassGService.java
index 26d4b843c..9c9bed7af 100644
--- a/use-api/src/main/java/org/tzi/use/graphql/services/MClassGService.java
+++ b/use-api/src/main/java/org/tzi/use/graphql/services/MClassGService.java
@@ -27,7 +27,7 @@ public Iterable classes() {
}
@MutationMapping
- public UseClass aClass(@Argument MClassInput mClassInput) {
+ public UseClass aUseClass(@Argument MClassInput mClassInput) {
UseClass tmpUseClass = new UseClass(mClassInput.name_mclass, mClassInput.attributes,mClassInput.operations);
return classRepo.save(tmpUseClass);
}
diff --git a/use-api/target/classes/org/tzi/use/graphql/services/MClassGService$MClassInput.class b/use-api/target/classes/org/tzi/use/graphql/services/MClassGService$MClassInput.class
index 9541a7ea99c0899d130de247dc8fe4f9e110265e..c0cfbc898a2ff62dd7dbccc9c212b5b004a9bfc7 100644
GIT binary patch
delta 53
zcmaDY^jc^G7dxZMWN!A!Kyp629helI{Fz+~$dco51Cps6Hb8O_hYOH=&d~w@pw$mG
delta 53
zcmaDY^jc^G7dxZ!WN!A!Kyp629helI{Fz+~$dco51Cps6Hb8O_hYOH=&d~w@pePS6
diff --git a/use-api/target/classes/org/tzi/use/graphql/services/MClassGService.class b/use-api/target/classes/org/tzi/use/graphql/services/MClassGService.class
index 17fb1e125944a873578ce59a3445320a425cf51b..cf74b4e71674b1109cb1121dbdfa0e41ffa92371 100644
GIT binary patch
delta 625
zcmZvZOHUJF6o#K~N;~a1pb=ViKsy6fp;YSy6)lP)f)`MvUgFA3;-u6-+e}9jSKYc`
zLuTc_FhVqFqHgs+n7HOg7|%=%Y+Ri4o$LFa^PO*fJNu2Fe?ET&Zt!Ts*y&^#Aghxz
zImBVbftT)Ux4h~$YUS#icHpfk63thEBD)Z0>do?!UvC7}!1vs>N*YVi|J1XkQPp{FShJGZZ+k
zbHd~#qoJdorwbHK#wmqw)o{MRX_GP~h0$zzz8ln=jkbZqS(7B^!XIiXHDPjri<|qj
zb(PGxkK5knyTpu^yo6#h{GA-^T$XR?BO!W#9NZxcrQ_n2s0%)uwtyJZx8Fb*qWSTM&49MQa8m=%yR1=Y)ht(1}c7_
z|KO3241U3RHonD($e75fPn=ndC`;R%*Z7XJN84Q`Pa0dU;l%WI7j1WyB6G|OE)E9)ciuD(=bz$ZJ
delta 453
zcmYLF$xZ@65PjVaGdLOWFfi(%fFo{z`-X}OsNDPjPliMeUc{(J6Mn#pnUC;l0*OK6
za`sdB2;=M4$f2rhdG%gZ_l7>=_Sg5zJAevm4|dPAkPz_0JHw9+!o#qI5eK8Jyos}@
zhcO4^NQXHYWISXYOdu^_H?JDk_1lZ)<&6y&lMW)tg$-FYrya~-w*4sYg*5B!l2MhB
zISAy#mYHf5C>zHBeF6rOP=ZBf9wfbuc`Wc%(IOm92`pim_&jTCI%hB6fz?G!;E7cU
z#c8q!_?k=2^|@9wW|h-Kwb)u`Ah3bWKiYGyt`-Vj;hq*cNYYZY%rk-$B~|QVO5zi4
zU(VL+W_UzaOJ;u={?`vs!WLB$Ja!v9L~D7}1j>}!rCI8@Jq8B$=_L*{Mln~IS80d3
QEBHA_jBMgPL~#uN2fa=&)&Kwi
From 901dce79fcc9fafd1280f8fd795157c72285d9ff Mon Sep 17 00:00:00 2001
From: husakki
Date: Tue, 10 Dec 2024 02:15:11 +0100
Subject: [PATCH 003/148] added duplication error
---
.../main/java/org/tzi/use/rest/services/MClassRService.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/use-api/src/main/java/org/tzi/use/rest/services/MClassRService.java b/use-api/src/main/java/org/tzi/use/rest/services/MClassRService.java
index 4ca710434..38e58fa92 100644
--- a/use-api/src/main/java/org/tzi/use/rest/services/MClassRService.java
+++ b/use-api/src/main/java/org/tzi/use/rest/services/MClassRService.java
@@ -18,6 +18,9 @@ public class MClassRService {
public UseClass saveMClass(UseClass aUseClass) throws MInvalidModelException, UseApiException {
MClassFacade.createMClass(aUseClass);
+ if(classRepository.findById(aUseClass.getName_mclass()).isPresent()) {
+ throw new UseApiException("Class name already exists");
+ }
return classRepository.save(aUseClass);
}
From 93f7266a68af3b1aa81b44c15d473969acedc568 Mon Sep 17 00:00:00 2001
From: husakki
Date: Tue, 10 Dec 2024 02:15:19 +0100
Subject: [PATCH 004/148] now name is ID
---
use-api/src/main/java/org/tzi/use/model/UseClass.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/use-api/src/main/java/org/tzi/use/model/UseClass.java b/use-api/src/main/java/org/tzi/use/model/UseClass.java
index 27c69d053..f43624150 100644
--- a/use-api/src/main/java/org/tzi/use/model/UseClass.java
+++ b/use-api/src/main/java/org/tzi/use/model/UseClass.java
@@ -1,6 +1,7 @@
package org.tzi.use.model;
import jakarta.persistence.*;
+import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.ArrayList;
@@ -10,8 +11,6 @@
public class UseClass {
@Id
- private String id;
-
private String name_mclass;
// Unidirectional OneToMany relationship
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
From 33e888f85c3b8aa32975c7708762ecf94f2b73a3 Mon Sep 17 00:00:00 2001
From: husakki
Date: Tue, 10 Dec 2024 02:15:26 +0100
Subject: [PATCH 005/148] target
---
.../services/MClassGService$MClassInput.class | Bin 2411 -> 2411 bytes
.../use/graphql/services/MClassGService.class | Bin 2026 -> 1858 bytes
.../classes/org/tzi/use/model/UseClass.class | Bin 2379 -> 2382 bytes
.../use/rest/services/MClassRService.class | Bin 1237 -> 2296 bytes
4 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/use-api/target/classes/org/tzi/use/graphql/services/MClassGService$MClassInput.class b/use-api/target/classes/org/tzi/use/graphql/services/MClassGService$MClassInput.class
index c0cfbc898a2ff62dd7dbccc9c212b5b004a9bfc7..9541a7ea99c0899d130de247dc8fe4f9e110265e 100644
GIT binary patch
delta 53
zcmaDY^jc^G7dxZ!WN!A!Kyp629helI{Fz+~$dco51Cps6Hb8O_hYOH=&d~w@pePS6
delta 53
zcmaDY^jc^G7dxZMWN!A!Kyp629helI{Fz+~$dco51Cps6Hb8O_hYOH=&d~w@pw$mG
diff --git a/use-api/target/classes/org/tzi/use/graphql/services/MClassGService.class b/use-api/target/classes/org/tzi/use/graphql/services/MClassGService.class
index cf74b4e71674b1109cb1121dbdfa0e41ffa92371..90b52ea789f258838497160b96941c5178655fa8 100644
GIT binary patch
delta 445
zcmYLF$xZ@65PjXi40Z-Q42(J`;D{UGzAG+>a`OW`8522p5u+YW_y#i{;nhSEgGOUK
zdi5{(2;=M4$f2rhdG%gZcl$q*>ht^g4L}w3JJq#pqy+r%HtHw(;9CJib;#$GQn1dJ!VMA7|2?vvydc2okk=Qf@iebyj
zv`UmqB0`@+6lrLoGBXd7USS5ae04Mjhf@OcSRlU0+Oo;nE4E>GkPvuaRYG%G>;b;v
z(sMnoMT1%5G*K}HQ*=hNVMP+bmMjcWbHY88#
z9I`pgc+XRhvn70+GL_y-HCilj)TT;BVYNG96vWMTYt_QzxXm_B^uDR7{z;otoPM|6
z_>t+JL2*`Y;VOoFVEOAPzx*EajbsMr#1E1YKTIEaauhf(Ss_JJV@fjV;{vvDDK0WC
zc+EMPdKWjP`?rfPw{cA*M`ZKs
v+>nX?j&f7bx5P}n=)44dEQmL_oj@#!?nu5Ub~mXid98aAS%NQ#Y8~e{vJYU0
diff --git a/use-api/target/classes/org/tzi/use/model/UseClass.class b/use-api/target/classes/org/tzi/use/model/UseClass.class
index a7959244849582f07ae0adb75caf9c7d9a631aa8..106b3e977237a85acd5b4d22fd28518bf38c83f7 100644
GIT binary patch
delta 824
zcma)4NlpSm6n)hQjX1Z)#0hc6a=;M>6vT;*7f|D(6O|ZaW01s+35V#5Xw;1h51@%>
z@Fd1p)g5e!3m5!f#jpQ{|NGtguwrjtFRuXd*nWuh2sbJE$C3x7axrytUA}ON=Vklq
z?6y?COr6>lJ7qggsbW_yO3ve<=xC^hU?7YL1O^DAa-7*fBVvq$`kc_UIPXLJ4Ie|C
zVFaTXJHj|7*pj@#Br7d}9{I1HXqDYlm}Z8z
zo4^7V8C7$Z3Jm6moO*_M;K_jMRz5(XVMY0&
ztO8OwbMMTdnRVVgx03rzXy1}sk_h>m&1j|#H9_~yES&r>i2jH~eeuB$(CAP2
zAI5WUD>iOvn3>xGpCGFQF|a13*oMAV5M9Ke)2_phFa{982sXH&O^$sFNo-3nleggDIUBpJ
zCo=0iIo+CEUqbe6aw#eJ+(m9ks!iIg{i2soznFGBOeHey5_gXi+V?OOyE81hGX#4N
z%1wxs{ajO!`5S
diff --git a/use-api/target/classes/org/tzi/use/rest/services/MClassRService.class b/use-api/target/classes/org/tzi/use/rest/services/MClassRService.class
index 4ffd776f2c0dae023ff486d51df4a1a55f9256ed..721065c02b6ce3340f1ac9fde2c6aec47f7c4466 100644
GIT binary patch
literal 2296
zcmah~>v9xD7(JbYOfn3&5FkMe3j!wLGJvSa0vaNh;4Z-|1OXL0yPZvwxopk!2I7D$-mJKwec`sdZ}0H)A#(Su$GeIB-;Uts5Bxgz~Q
zMooWq;jyY4f&Pm+(&n;2@A$;LivbKea6N2=ComExP2YU4{dTJS>U1E}^qQ>8h7$1V
ziIPTjHU%z>SBkP>+)#mkH&xl4^2FN?2eBPH9PIS43qu0qMVv&X#!pqUqU$Qn8O+r>
zYk?hg%VQR_!
z5*QwzsJwPz%_KT%mbYR*-f?ii!@C$0C>0SmqaZM_sH4V})tLs(9WMZOVnTOiI@(4D
z{%p(WIFbQ*mvG3zVGr-&h``WB5rILS-loe`#JDn?4+e1z?>iXxFoDUg=+{
zZOZQHDAcikn-&?`rDRwhzzG3Yr=?a0)5R(H4o-VGgR=s=GX~vv1e}&d2qJc1J;Gv9*0{cR_tfu3rF3mk{
zmN-j|j7<6l*czRJ@AEAOEQN!`5XzRenLO3fSD)5Z7LEaYCNP@iR4HP9lw?4UHC9XN
zsZLGm;u5adiaTpl<8u#JaZR8vl`AZq|1&DL)84${VFowp5t}YkLBOc5Dohd{z*t4N7w{A=M{wvg|J?8KwTBtlO&b<@yDGs%_#Y
zI#CV6_D!>hS!5L*sax%EK_z!2;Yp$r*JUs-6K&V|W}jKo)HnG?0seRSQiE$fverR7
z6Sgvs+Jdu6Hq;sOTduVffdgHdx+|C1+iFJEm#eas^K;jOmpXVLFi{L~I}H3V^s6%w
zb5A#_wtKD1v)8c=(EZiv3fm1?)O0hFrk#-H=?ww7_%>dbt<|--oz&GeZGE}BWByuC
zJ7tY#Q`j_Wtk^`wX0@gKyaf_%=ao1%sYzt3s?1W{NC!|C*hOcSUgzh9lGxD?AHA_
zHf$pPupqxlx#tkmG6-tgC>rn0M3G7|I~Bvq0y(52V1F8WyC`4Aj$Js!2dalX
zM)1ogisKht^>eIn?B&R}mES5?K1acE%j9#2pE>ElEq?7W2s6vC*Ac*Ne94u-9Cv!M
z%g+eb%e}kDU%^e}>&JG1`M?IQS#Z{(_@J+&bBH^a3ALd2r$tJ^|%U{)S8U
zhdzCdsXsEYmzeIspBVm$z`YrnF*uwLll2~qU@za5eeCEXY+9qZjPgl
z_PaSb$5Tqwd8+*s15!X@R%!?vt@*cG5Rk;$#JXz
delta 395
zcmYjNyGjE=6g{)!?%=oyy{g87KS&W|u4Xe`89
zuoV0Qf5A#TGaJIlUWL+{r^pgjOAsY`3R=W(!EU|{!0-9)%2`qEs(FE8hTBB0>2z8j;
zBbSaaD0z56?T+(IOS_#iO)E~Xn%#``c#RdTQg@9P0pAj|$vUXBw=O+0n?_rM5oQJc
bw6mPGe>rt?EZlVgHYl>`x~<<|*am(8Hnb=@
From 826fef703072ae1d48e782a558c503b4294d8389 Mon Sep 17 00:00:00 2001
From: husakki
Date: Tue, 10 Dec 2024 09:31:50 +0100
Subject: [PATCH 006/148] new tests added
the performance tests has to be sperarated
---
.../use-webapi.postman_collection.json | 239 +++++++++++++++++-
.../use/rest/services/MClassRService.class | Bin 2296 -> 1530 bytes
.../use-webapi.postman_collection.json | 239 +++++++++++++++++-
.../2024-12-10T09-19-19_942.dumpstream | 5 +
.../2024-12-10T09-22-32_147.dumpstream | 5 +
.../2024-12-10T09-23-54_430.dumpstream | 5 +
6 files changed, 489 insertions(+), 4 deletions(-)
create mode 100644 use-api/target/surefire-reports/2024-12-10T09-19-19_942.dumpstream
create mode 100644 use-api/target/surefire-reports/2024-12-10T09-22-32_147.dumpstream
create mode 100644 use-api/target/surefire-reports/2024-12-10T09-23-54_430.dumpstream
diff --git a/use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json b/use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json
index 246729bbb..3555d7aa3 100644
--- a/use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json
+++ b/use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json
@@ -224,8 +224,11 @@
{
"listen": "prerequest",
"script": {
- "packages": {},
- "type": "text/javascript"
+ "exec": [
+ ""
+ ],
+ "type": "text/javascript",
+ "packages": {}
}
}
],
@@ -244,6 +247,238 @@
"url": "localhost:8080/class"
},
"response": []
+ },
+ {
+ "name": "duplicate class",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Class name already exists\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClass2\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }\r\n",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "duplicate attribute",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Attribute creation failed!\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClassDoubleAttr\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "duplicate operation",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Operation creation failed!\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClassDupOperation\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n },\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "no attribute name",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Modelelement without name\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClassNoAttrName\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "no operation name",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Operation name is required!\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClassNoOperationName\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "POST performance",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "// Generate a unique name using an iteration counter and timestamp\r",
+ "let iter = pm.info.iteration || 0;\r",
+ "let uniqueName = `Class-${iter}-${Date.now()}`;\r",
+ "\r",
+ "pm.environment.set(\"uniqueName\", uniqueName);\r",
+ "\r",
+ "console.log(\"Generated unique name: \" + uniqueName);"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Response time is below 20ms\", function () {\r",
+ " pm.expect(pm.response.responseTime).to.be.below(20);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Response time is below 100ms\", function () {\r",
+ " pm.expect(pm.response.responseTime).to.be.below(100);\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"{{uniqueName}}\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }\r\n {\r\n \"name_mclass\": \"TestClass2\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
}
]
}
\ No newline at end of file
diff --git a/use-api/target/classes/org/tzi/use/rest/services/MClassRService.class b/use-api/target/classes/org/tzi/use/rest/services/MClassRService.class
index 721065c02b6ce3340f1ac9fde2c6aec47f7c4466..0498f7dcc2007c9f0f13368f9d4f1de3e682395f 100644
GIT binary patch
delta 458
zcmYjN%}N4c6g}UJqcCcqs8qC2$uh0R(ta(=tTbpB6fFl5G0cS{kt-i!UL+wh3#w&A
z?R$e>AzDahMhQ3foO3zfJ@>{;ktfR
z4(qi>S-)t7%Qsb{X{d-H;emprKrnuMsbA|_O|Mt9lV+n@uVm*=-I&CJ2aC{5Q_eV-
zJXl8B{FJ}VFGoq_&4}{WMg(J!m@Qa+@DnpsPT~qtCMvdCrP8PbQAuR+
zW}VeDFkl0lR03IcBv_AI9A*Wjk`Hj5CGOx&-oyNGx!c|+#LoS*UCh1M?H=YOydrQ*
zw`?c);UEuil_16uLX_1?3k@a?(>NPj*k)?Zekr2ZA#u{Q%g++nLz>)LCPQT{tunCa
e?I9rH$S*HFA$SOeol%efkb;cKH8UMc@zE7d~zP
delta 1156
zcmaJ=+fEZv6kTU(J9QXQ3JCR~sR+o`0^*Gd3RP}$(*hOoc7y?jPG_3Vfyh%oVjlD-
zOoSM2ChDW{GkozEj3&fA(&)~|#qTQR$I;;z0E5VGD@QDU7R|US
zqeVq4+88dZ^GzNzxVaijZrMW1F!-zu!B9Kl?dVo)Ca0SsDRLUm#DnNyP;@(*&1tq~
z3I*2?lhLK38$Arwr_3KvS@SRT*opHJzdH_zmgirj^!W
z1^)%N!+c3txh;nGr9O+m!das;+*~#^yK%y@(i_=$xzv)*iOJcmtab`~(fPo_dG8e#
z;R$XSNnL1h26fCdwVY>4vt<|zO=Sj(x=zTFLElH@|4@cN!2>QMUkQmm07h#SLKGiS
z6`(jl(MQqmRg+Z3sA3fTZF^wblt`GO)dd5Un5I=N05F5cR53iEjs$mjm&kk+=i2un
zr`kT@T>CDn58!n8gZZ8vG=-?{Jnn}j?Bn_*ZFC&sjyvD^8T|{PdwUrC>cI|>knjyP
zABolHDTzR)yoMy#q8=9!MIHU0>d}udMiB87MhV+Zdr8cC#^*?D-W5yI=r>QIQVQ^KH-bX{peJI8Icklaa
diff --git a/use-api/target/classes/postman_collection/use-webapi.postman_collection.json b/use-api/target/classes/postman_collection/use-webapi.postman_collection.json
index 246729bbb..3555d7aa3 100644
--- a/use-api/target/classes/postman_collection/use-webapi.postman_collection.json
+++ b/use-api/target/classes/postman_collection/use-webapi.postman_collection.json
@@ -224,8 +224,11 @@
{
"listen": "prerequest",
"script": {
- "packages": {},
- "type": "text/javascript"
+ "exec": [
+ ""
+ ],
+ "type": "text/javascript",
+ "packages": {}
}
}
],
@@ -244,6 +247,238 @@
"url": "localhost:8080/class"
},
"response": []
+ },
+ {
+ "name": "duplicate class",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Class name already exists\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClass2\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }\r\n",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "duplicate attribute",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Attribute creation failed!\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClassDoubleAttr\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "duplicate operation",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Operation creation failed!\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClassDupOperation\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n },\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "no attribute name",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Modelelement without name\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClassNoAttrName\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "no operation name",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Status code is 400\", function () {\r",
+ " pm.response.to.have.status(400);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Body is correct\", function () {\r",
+ " pm.response.to.have.body(\"Operation name is required!\");\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"TestClassNoOperationName\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
+ },
+ {
+ "name": "POST performance",
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "exec": [
+ "// Generate a unique name using an iteration counter and timestamp\r",
+ "let iter = pm.info.iteration || 0;\r",
+ "let uniqueName = `Class-${iter}-${Date.now()}`;\r",
+ "\r",
+ "pm.environment.set(\"uniqueName\", uniqueName);\r",
+ "\r",
+ "console.log(\"Generated unique name: \" + uniqueName);"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "pm.test(\"Response time is below 20ms\", function () {\r",
+ " pm.expect(pm.response.responseTime).to.be.below(20);\r",
+ "});\r",
+ "\r",
+ "pm.test(\"Response time is below 100ms\", function () {\r",
+ " pm.expect(pm.response.responseTime).to.be.below(100);\r",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "\r\n {\r\n \"name_mclass\": \"{{uniqueName}}\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }\r\n {\r\n \"name_mclass\": \"TestClass2\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": "localhost:8080/class"
+ },
+ "response": []
}
]
}
\ No newline at end of file
diff --git a/use-api/target/surefire-reports/2024-12-10T09-19-19_942.dumpstream b/use-api/target/surefire-reports/2024-12-10T09-19-19_942.dumpstream
new file mode 100644
index 000000000..233bdad5d
--- /dev/null
+++ b/use-api/target/surefire-reports/2024-12-10T09-19-19_942.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2024-12-10T09:19:20.103
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2024-12-10T09-22-32_147.dumpstream b/use-api/target/surefire-reports/2024-12-10T09-22-32_147.dumpstream
new file mode 100644
index 000000000..f29696b82
--- /dev/null
+++ b/use-api/target/surefire-reports/2024-12-10T09-22-32_147.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2024-12-10T09:22:32.307
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2024-12-10T09-23-54_430.dumpstream b/use-api/target/surefire-reports/2024-12-10T09-23-54_430.dumpstream
new file mode 100644
index 000000000..f5a07f726
--- /dev/null
+++ b/use-api/target/surefire-reports/2024-12-10T09-23-54_430.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2024-12-10T09:23:54.605
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
From af175c7ee67076eed2036f7bcd2993686466d34f Mon Sep 17 00:00:00 2001
From: husakki
Date: Mon, 20 Jan 2025 08:25:07 +0100
Subject: [PATCH 007/148] removed maven build for test
---
use-api/pom.xml | 125 +++++++++++++-----
.../tzi/use/rest/services/MClassRService.java | 1 +
.../src/main/resources/application.properties | 1 +
use-api/target/classes/application.properties | 1 +
.../use/rest/services/MClassRService.class | Bin 1530 -> 1530 bytes
use-api/target/maven-archiver/pom.properties | 3 +
.../2024-12-10T10-03-05_575.dumpstream | 5 +
.../2025-01-10T08-46-29_140.dumpstream | 5 +
.../2025-01-10T08-47-48_006.dumpstream | 5 +
.../2025-01-10T08-48-02_892.dumpstream | 5 +
.../2025-01-10T08-52-59_013.dumpstream | 5 +
.../2025-01-10T08-56-47_646.dumpstream | 5 +
.../2025-01-10T08-58-18_068.dumpstream | 5 +
.../2025-01-10T09-01-27_366.dumpstream | 5 +
.../2025-01-10T09-02-25_889.dumpstream | 5 +
.../2025-01-10T09-05-40_494.dumpstream | 5 +
.../2025-01-10T09-07-36_412.dumpstream | 5 +
.../2025-01-10T09-08-55_874.dumpstream | 5 +
.../2025-01-10T09-38-00_165.dumpstream | 5 +
.../2025-01-10T09-43-38_861.dumpstream | 5 +
.../2025-01-10T09-46-07_297.dumpstream | 5 +
.../2025-01-10T09-51-10_421.dumpstream | 5 +
.../2025-01-10T09-52-19_038.dumpstream | 5 +
.../2025-01-10T09-53-49_116.dumpstream | 5 +
.../2025-01-10T09-54-45_572.dumpstream | 5 +
use-api/target/use-api-7.1.1.jar | Bin 0 -> 16808 bytes
26 files changed, 195 insertions(+), 31 deletions(-)
create mode 100644 use-api/target/maven-archiver/pom.properties
create mode 100644 use-api/target/surefire-reports/2024-12-10T10-03-05_575.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T08-46-29_140.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T08-47-48_006.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T08-48-02_892.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T08-52-59_013.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T08-56-47_646.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T08-58-18_068.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-01-27_366.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-02-25_889.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-05-40_494.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-07-36_412.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-08-55_874.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-38-00_165.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-43-38_861.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-46-07_297.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-51-10_421.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-52-19_038.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-53-49_116.dumpstream
create mode 100644 use-api/target/surefire-reports/2025-01-10T09-54-45_572.dumpstream
create mode 100644 use-api/target/use-api-7.1.1.jar
diff --git a/use-api/pom.xml b/use-api/pom.xml
index 1d8d953c4..c727dd75d 100644
--- a/use-api/pom.xml
+++ b/use-api/pom.xml
@@ -108,35 +108,98 @@
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 3.0.0
-
-
- run-newman-tests
- test
-
- exec
-
-
- newman
-
- run
- ${project.basedir}/src/main/resources/postman_collection/use-webapi.postman_collection.json
- --reporters
- cli
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/use-api/src/main/java/org/tzi/use/rest/services/MClassRService.java b/use-api/src/main/java/org/tzi/use/rest/services/MClassRService.java
index 38e58fa92..dd75f8eae 100644
--- a/use-api/src/main/java/org/tzi/use/rest/services/MClassRService.java
+++ b/use-api/src/main/java/org/tzi/use/rest/services/MClassRService.java
@@ -19,6 +19,7 @@ public class MClassRService {
public UseClass saveMClass(UseClass aUseClass) throws MInvalidModelException, UseApiException {
MClassFacade.createMClass(aUseClass);
if(classRepository.findById(aUseClass.getName_mclass()).isPresent()) {
+ // TODO Exception already exists
throw new UseApiException("Class name already exists");
}
return classRepository.save(aUseClass);
diff --git a/use-api/src/main/resources/application.properties b/use-api/src/main/resources/application.properties
index 0cbfab18c..dd694a400 100644
--- a/use-api/src/main/resources/application.properties
+++ b/use-api/src/main/resources/application.properties
@@ -4,6 +4,7 @@ spring.graphql.graphiql.enabled=true
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.main.allow-bean-definition-overriding=true
+server.port=8080
# /api-docs endpoint custom path
springdoc.api-docs.path=/docs
diff --git a/use-api/target/classes/application.properties b/use-api/target/classes/application.properties
index 0cbfab18c..dd694a400 100644
--- a/use-api/target/classes/application.properties
+++ b/use-api/target/classes/application.properties
@@ -4,6 +4,7 @@ spring.graphql.graphiql.enabled=true
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.main.allow-bean-definition-overriding=true
+server.port=8080
# /api-docs endpoint custom path
springdoc.api-docs.path=/docs
diff --git a/use-api/target/classes/org/tzi/use/rest/services/MClassRService.class b/use-api/target/classes/org/tzi/use/rest/services/MClassRService.class
index 0498f7dcc2007c9f0f13368f9d4f1de3e682395f..263915a67031a004dfc2628aeb5f68f26748a465 100644
GIT binary patch
delta 23
ecmeyx{fm1;3M;EPgA#+}-Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T08-46-29_140.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-46-29_140.dumpstream
new file mode 100644
index 000000000..61720b4d2
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T08-46-29_140.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T08:46:29.277
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T08-47-48_006.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-47-48_006.dumpstream
new file mode 100644
index 000000000..b5922a932
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T08-47-48_006.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T08:47:48.181
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T08-48-02_892.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-48-02_892.dumpstream
new file mode 100644
index 000000000..40c400aa9
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T08-48-02_892.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T08:48:03.042
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T08-52-59_013.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-52-59_013.dumpstream
new file mode 100644
index 000000000..edd9b2991
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T08-52-59_013.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T08:52:59.172
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T08-56-47_646.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-56-47_646.dumpstream
new file mode 100644
index 000000000..f54579bb4
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T08-56-47_646.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T08:56:47.796
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T08-58-18_068.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-58-18_068.dumpstream
new file mode 100644
index 000000000..0424e9184
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T08-58-18_068.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T08:58:18.240
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-01-27_366.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-01-27_366.dumpstream
new file mode 100644
index 000000000..f9a0cf840
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-01-27_366.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:01:27.525
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-02-25_889.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-02-25_889.dumpstream
new file mode 100644
index 000000000..9504a75e7
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-02-25_889.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:02:26.046
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-05-40_494.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-05-40_494.dumpstream
new file mode 100644
index 000000000..1ff5af6be
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-05-40_494.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:05:40.653
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-07-36_412.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-07-36_412.dumpstream
new file mode 100644
index 000000000..04266e8b2
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-07-36_412.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:07:36.581
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-08-55_874.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-08-55_874.dumpstream
new file mode 100644
index 000000000..87fe53c9c
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-08-55_874.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:08:56.044
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-38-00_165.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-38-00_165.dumpstream
new file mode 100644
index 000000000..951334452
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-38-00_165.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:38:00.321
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-43-38_861.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-43-38_861.dumpstream
new file mode 100644
index 000000000..af1297e3a
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-43-38_861.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:43:39.012
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-46-07_297.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-46-07_297.dumpstream
new file mode 100644
index 000000000..08ab587bc
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-46-07_297.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:46:07.443
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-51-10_421.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-51-10_421.dumpstream
new file mode 100644
index 000000000..c5b5f36f2
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-51-10_421.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:51:10.574
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-52-19_038.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-52-19_038.dumpstream
new file mode 100644
index 000000000..962055196
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-52-19_038.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:52:19.189
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-53-49_116.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-53-49_116.dumpstream
new file mode 100644
index 000000000..9aa6678a2
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-53-49_116.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:53:49.266
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/surefire-reports/2025-01-10T09-54-45_572.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-54-45_572.dumpstream
new file mode 100644
index 000000000..0eb9194fa
--- /dev/null
+++ b/use-api/target/surefire-reports/2025-01-10T09-54-45_572.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2025-01-10T09:54:45.713
+Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/use-api/target/use-api-7.1.1.jar b/use-api/target/use-api-7.1.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..d3970f06689070697c7342c8c26dbb4dc73c6e9f
GIT binary patch
literal 16808
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
IlL_(v0p;i25&!@I
literal 0
HcmV?d00001
From 3e7a37a5b599d67106c8d7e706bcf6dc3a11f202 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 08:52:53 +0100
Subject: [PATCH 008/148] Create postmantestci.yml
---
.github/workflows/postmantestci.yml | 53 +++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 .github/workflows/postmantestci.yml
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
new file mode 100644
index 000000000..650161ae5
--- /dev/null
+++ b/.github/workflows/postmantestci.yml
@@ -0,0 +1,53 @@
+name: CI with Postman Tests
+
+on: push
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+
+ services:
+ mongo:
+ image: mongo:4.4
+ ports:
+ - 27017:27017
+
+ steps:
+ # Checkout repository
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ # Set up JDK
+ - name: Set up Java
+ uses: actions/setup-java@v3
+ with:
+ java-version: '21'
+ distribution: 'adopt'
+
+ # Build the application
+ - name: Build with Maven
+ run: mvn --batch-mode --update-snapshots verify
+
+ # Start Spring Boot
+ - name: Start Spring Boot
+ run: java -Dspring.profiles.active=test -jar target/your-application.jar &
+ env:
+ SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
+
+ # Wait for Spring Boot to start
+ - name: Wait for Spring Boot
+ run: |
+ for i in {1..10}; do
+ curl --fail http://localhost:8080/actuator/health && break || sleep 10;
+ done
+
+ # Run Postman Tests with Newman
+ - name: Run Postman tests
+ run: |
+ npm install -g newman
+ newman run src/main/resources/postman_collection/use-webapi.postman_collection.json
+
+
+ # Cleanup
+ - name: Stop Spring Boot
+ run: pkill -f 'java -Dspring.profiles.active=test'
From d35a7ee17a0172c47254999264539c5bd7d6148d Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 08:57:48 +0100
Subject: [PATCH 009/148] Update postmantestci.yml
---
.github/workflows/postmantestci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
index 650161ae5..4f1a36a9a 100644
--- a/.github/workflows/postmantestci.yml
+++ b/.github/workflows/postmantestci.yml
@@ -30,7 +30,7 @@ jobs:
# Start Spring Boot
- name: Start Spring Boot
- run: java -Dspring.profiles.active=test -jar target/your-application.jar &
+ run: java -Dspring.profiles.active=test -jar target/use-api-7.1.1.jar &
env:
SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
From 4cebe1b5940e00c81ae20bd2d20d2801562f574f Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 09:03:04 +0100
Subject: [PATCH 010/148] Update postmantestci.yml
---
.github/workflows/postmantestci.yml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
index 4f1a36a9a..8aef49b2a 100644
--- a/.github/workflows/postmantestci.yml
+++ b/.github/workflows/postmantestci.yml
@@ -27,10 +27,14 @@ jobs:
# Build the application
- name: Build with Maven
run: mvn --batch-mode --update-snapshots verify
-
+
+ #List target dir
+ - name: List target directory
+ run: ls -l target/
+
# Start Spring Boot
- name: Start Spring Boot
- run: java -Dspring.profiles.active=test -jar target/use-api-7.1.1.jar &
+ run: java -Dspring.profiles.active=test -jar target/use-api-7.1.1-SNAPSHOT.jar &
env:
SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
From a1634eac390796358bb8a10791eb848f3a894b32 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 09:08:35 +0100
Subject: [PATCH 011/148] Update postmantestci.yml now package
---
.github/workflows/postmantestci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
index 8aef49b2a..c1c482e3a 100644
--- a/.github/workflows/postmantestci.yml
+++ b/.github/workflows/postmantestci.yml
@@ -26,7 +26,7 @@ jobs:
# Build the application
- name: Build with Maven
- run: mvn --batch-mode --update-snapshots verify
+ run: mvn --batch-mode --update-snapshots clean package verify
#List target dir
- name: List target directory
From f3c2ef8bdf592fc0738da2bf4138b85ad51a0872 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 09:11:22 +0100
Subject: [PATCH 012/148] Update postmantestci.yml
---
.github/workflows/postmantestci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
index c1c482e3a..ebacf09d8 100644
--- a/.github/workflows/postmantestci.yml
+++ b/.github/workflows/postmantestci.yml
@@ -26,7 +26,7 @@ jobs:
# Build the application
- name: Build with Maven
- run: mvn --batch-mode --update-snapshots clean package verify
+ run: mvn clean package
#List target dir
- name: List target directory
From 4386571196d379cf9b821fa6649bed24884718f8 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 09:20:09 +0100
Subject: [PATCH 013/148] Update postmantestci.yml
---
.github/workflows/postmantestci.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
index ebacf09d8..9a46f8044 100644
--- a/.github/workflows/postmantestci.yml
+++ b/.github/workflows/postmantestci.yml
@@ -29,8 +29,8 @@ jobs:
run: mvn clean package
#List target dir
- - name: List target directory
- run: ls -l target/
+ #- name: List target directory
+ #run: ls -l target/
# Start Spring Boot
- name: Start Spring Boot
From 50a8d955047751fa96adb1546654edc636f6a691 Mon Sep 17 00:00:00 2001
From: husakki
Date: Mon, 20 Jan 2025 09:26:42 +0100
Subject: [PATCH 014/148] update pomxml
---
use-api/pom.xml | 19 ++++++++++--------
.../compile/default-compile/createdFiles.lst | 11 ++++++++++
.../2024-10-18T01-16-43_107.dumpstream | 5 -----
.../2024-10-18T01-17-10_802.dumpstream | 5 -----
.../2024-10-18T08-54-51_699.dumpstream | 5 -----
.../2024-10-18T09-06-30_147.dumpstream | 5 -----
.../2024-10-18T09-07-35_821.dumpstream | 5 -----
.../2024-12-10T09-19-19_942.dumpstream | 5 -----
.../2024-12-10T09-22-32_147.dumpstream | 5 -----
.../2024-12-10T09-23-54_430.dumpstream | 5 -----
.../2024-12-10T10-03-05_575.dumpstream | 5 -----
.../2025-01-10T08-46-29_140.dumpstream | 5 -----
.../2025-01-10T08-47-48_006.dumpstream | 5 -----
.../2025-01-10T08-48-02_892.dumpstream | 5 -----
.../2025-01-10T08-52-59_013.dumpstream | 5 -----
.../2025-01-10T08-56-47_646.dumpstream | 5 -----
.../2025-01-10T08-58-18_068.dumpstream | 5 -----
.../2025-01-10T09-01-27_366.dumpstream | 5 -----
.../2025-01-10T09-02-25_889.dumpstream | 5 -----
.../2025-01-10T09-05-40_494.dumpstream | 5 -----
.../2025-01-10T09-07-36_412.dumpstream | 5 -----
.../2025-01-10T09-08-55_874.dumpstream | 5 -----
.../2025-01-10T09-38-00_165.dumpstream | 5 -----
.../2025-01-10T09-43-38_861.dumpstream | 5 -----
.../2025-01-10T09-46-07_297.dumpstream | 5 -----
.../2025-01-10T09-51-10_421.dumpstream | 5 -----
.../2025-01-10T09-52-19_038.dumpstream | 5 -----
.../2025-01-10T09-53-49_116.dumpstream | 5 -----
.../2025-01-10T09-54-45_572.dumpstream | 5 -----
...eam => 2025-01-20T09-17-37_242.dumpstream} | 2 +-
use-api/target/use-api-7.1.1.jar | Bin 16808 -> 16808 bytes
31 files changed, 23 insertions(+), 144 deletions(-)
delete mode 100644 use-api/target/surefire-reports/2024-10-18T01-16-43_107.dumpstream
delete mode 100644 use-api/target/surefire-reports/2024-10-18T01-17-10_802.dumpstream
delete mode 100644 use-api/target/surefire-reports/2024-10-18T08-54-51_699.dumpstream
delete mode 100644 use-api/target/surefire-reports/2024-10-18T09-06-30_147.dumpstream
delete mode 100644 use-api/target/surefire-reports/2024-10-18T09-07-35_821.dumpstream
delete mode 100644 use-api/target/surefire-reports/2024-12-10T09-19-19_942.dumpstream
delete mode 100644 use-api/target/surefire-reports/2024-12-10T09-22-32_147.dumpstream
delete mode 100644 use-api/target/surefire-reports/2024-12-10T09-23-54_430.dumpstream
delete mode 100644 use-api/target/surefire-reports/2024-12-10T10-03-05_575.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T08-46-29_140.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T08-47-48_006.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T08-48-02_892.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T08-52-59_013.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T08-56-47_646.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T08-58-18_068.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-01-27_366.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-02-25_889.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-05-40_494.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-07-36_412.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-08-55_874.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-38-00_165.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-43-38_861.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-46-07_297.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-51-10_421.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-52-19_038.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-53-49_116.dumpstream
delete mode 100644 use-api/target/surefire-reports/2025-01-10T09-54-45_572.dumpstream
rename use-api/target/surefire-reports/{2024-10-18T01-08-48_582.dumpstream => 2025-01-20T09-17-37_242.dumpstream} (85%)
diff --git a/use-api/pom.xml b/use-api/pom.xml
index c727dd75d..9f25dcd1e 100644
--- a/use-api/pom.xml
+++ b/use-api/pom.xml
@@ -108,12 +108,15 @@
-
-
-
-
-
-
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+
@@ -200,6 +203,6 @@
-
-
+
+
\ No newline at end of file
diff --git a/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
index e69de29bb..34805f48f 100644
--- a/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
+++ b/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,11 @@
+org\tzi\use\model\UseClass.class
+org\tzi\use\OpenApiConfig.class
+org\tzi\use\graphql\services\MClassGService.class
+org\tzi\use\UseAPIApplication.class
+org\tzi\use\rest\controller\RestApiController.class
+org\tzi\use\model\Operation.class
+org\tzi\use\graphql\services\MClassGService$MClassInput.class
+org\tzi\use\MClassFacade.class
+org\tzi\use\rest\services\MClassRService.class
+org\tzi\use\model\Attribute.class
+org\tzi\use\repository\ClassRepo.class
diff --git a/use-api/target/surefire-reports/2024-10-18T01-16-43_107.dumpstream b/use-api/target/surefire-reports/2024-10-18T01-16-43_107.dumpstream
deleted file mode 100644
index 693429e22..000000000
--- a/use-api/target/surefire-reports/2024-10-18T01-16-43_107.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2024-10-18T01:16:43.301
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2024-10-18T01-17-10_802.dumpstream b/use-api/target/surefire-reports/2024-10-18T01-17-10_802.dumpstream
deleted file mode 100644
index b4de26efd..000000000
--- a/use-api/target/surefire-reports/2024-10-18T01-17-10_802.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2024-10-18T01:17:11.008
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2024-10-18T08-54-51_699.dumpstream b/use-api/target/surefire-reports/2024-10-18T08-54-51_699.dumpstream
deleted file mode 100644
index c6f4b5187..000000000
--- a/use-api/target/surefire-reports/2024-10-18T08-54-51_699.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2024-10-18T08:54:51.858
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2024-10-18T09-06-30_147.dumpstream b/use-api/target/surefire-reports/2024-10-18T09-06-30_147.dumpstream
deleted file mode 100644
index a802f26be..000000000
--- a/use-api/target/surefire-reports/2024-10-18T09-06-30_147.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2024-10-18T09:06:30.347
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2024-10-18T09-07-35_821.dumpstream b/use-api/target/surefire-reports/2024-10-18T09-07-35_821.dumpstream
deleted file mode 100644
index f3382bc0f..000000000
--- a/use-api/target/surefire-reports/2024-10-18T09-07-35_821.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2024-10-18T09:07:35.994
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2024-12-10T09-19-19_942.dumpstream b/use-api/target/surefire-reports/2024-12-10T09-19-19_942.dumpstream
deleted file mode 100644
index 233bdad5d..000000000
--- a/use-api/target/surefire-reports/2024-12-10T09-19-19_942.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2024-12-10T09:19:20.103
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2024-12-10T09-22-32_147.dumpstream b/use-api/target/surefire-reports/2024-12-10T09-22-32_147.dumpstream
deleted file mode 100644
index f29696b82..000000000
--- a/use-api/target/surefire-reports/2024-12-10T09-22-32_147.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2024-12-10T09:22:32.307
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2024-12-10T09-23-54_430.dumpstream b/use-api/target/surefire-reports/2024-12-10T09-23-54_430.dumpstream
deleted file mode 100644
index f5a07f726..000000000
--- a/use-api/target/surefire-reports/2024-12-10T09-23-54_430.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2024-12-10T09:23:54.605
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2024-12-10T10-03-05_575.dumpstream b/use-api/target/surefire-reports/2024-12-10T10-03-05_575.dumpstream
deleted file mode 100644
index 2b27b6684..000000000
--- a/use-api/target/surefire-reports/2024-12-10T10-03-05_575.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2024-12-10T10:03:05.758
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T08-46-29_140.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-46-29_140.dumpstream
deleted file mode 100644
index 61720b4d2..000000000
--- a/use-api/target/surefire-reports/2025-01-10T08-46-29_140.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T08:46:29.277
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T08-47-48_006.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-47-48_006.dumpstream
deleted file mode 100644
index b5922a932..000000000
--- a/use-api/target/surefire-reports/2025-01-10T08-47-48_006.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T08:47:48.181
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T08-48-02_892.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-48-02_892.dumpstream
deleted file mode 100644
index 40c400aa9..000000000
--- a/use-api/target/surefire-reports/2025-01-10T08-48-02_892.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T08:48:03.042
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T08-52-59_013.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-52-59_013.dumpstream
deleted file mode 100644
index edd9b2991..000000000
--- a/use-api/target/surefire-reports/2025-01-10T08-52-59_013.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T08:52:59.172
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T08-56-47_646.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-56-47_646.dumpstream
deleted file mode 100644
index f54579bb4..000000000
--- a/use-api/target/surefire-reports/2025-01-10T08-56-47_646.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T08:56:47.796
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T08-58-18_068.dumpstream b/use-api/target/surefire-reports/2025-01-10T08-58-18_068.dumpstream
deleted file mode 100644
index 0424e9184..000000000
--- a/use-api/target/surefire-reports/2025-01-10T08-58-18_068.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T08:58:18.240
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-01-27_366.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-01-27_366.dumpstream
deleted file mode 100644
index f9a0cf840..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-01-27_366.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:01:27.525
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-02-25_889.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-02-25_889.dumpstream
deleted file mode 100644
index 9504a75e7..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-02-25_889.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:02:26.046
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-05-40_494.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-05-40_494.dumpstream
deleted file mode 100644
index 1ff5af6be..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-05-40_494.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:05:40.653
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-07-36_412.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-07-36_412.dumpstream
deleted file mode 100644
index 04266e8b2..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-07-36_412.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:07:36.581
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-08-55_874.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-08-55_874.dumpstream
deleted file mode 100644
index 87fe53c9c..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-08-55_874.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:08:56.044
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-38-00_165.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-38-00_165.dumpstream
deleted file mode 100644
index 951334452..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-38-00_165.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:38:00.321
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-43-38_861.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-43-38_861.dumpstream
deleted file mode 100644
index af1297e3a..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-43-38_861.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:43:39.012
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-46-07_297.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-46-07_297.dumpstream
deleted file mode 100644
index 08ab587bc..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-46-07_297.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:46:07.443
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-51-10_421.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-51-10_421.dumpstream
deleted file mode 100644
index c5b5f36f2..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-51-10_421.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:51:10.574
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-52-19_038.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-52-19_038.dumpstream
deleted file mode 100644
index 962055196..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-52-19_038.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:52:19.189
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-53-49_116.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-53-49_116.dumpstream
deleted file mode 100644
index 9aa6678a2..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-53-49_116.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:53:49.266
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2025-01-10T09-54-45_572.dumpstream b/use-api/target/surefire-reports/2025-01-10T09-54-45_572.dumpstream
deleted file mode 100644
index 0eb9194fa..000000000
--- a/use-api/target/surefire-reports/2025-01-10T09-54-45_572.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-10T09:54:45.713
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/surefire-reports/2024-10-18T01-08-48_582.dumpstream b/use-api/target/surefire-reports/2025-01-20T09-17-37_242.dumpstream
similarity index 85%
rename from use-api/target/surefire-reports/2024-10-18T01-08-48_582.dumpstream
rename to use-api/target/surefire-reports/2025-01-20T09-17-37_242.dumpstream
index 0a71e38bc..e9d92f176 100644
--- a/use-api/target/surefire-reports/2024-10-18T01-08-48_582.dumpstream
+++ b/use-api/target/surefire-reports/2025-01-20T09-17-37_242.dumpstream
@@ -1,4 +1,4 @@
-# Created at 2024-10-18T01:08:48.748
+# Created at 2025-01-20T09:17:37.416
Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
'other' has different root
diff --git a/use-api/target/use-api-7.1.1.jar b/use-api/target/use-api-7.1.1.jar
index d3970f06689070697c7342c8c26dbb4dc73c6e9f..640a6763172c9ec5fbf537fbb46872c9cf81ed87 100644
GIT binary patch
delta 576
zcmZ3{%($YNkvG7bnT3mifrEj;*vn)huL?7WGHGBj@G^;-xI>A>5JcaT1JjcjA^gc|
zjA~$k$pMUdLLe0kNI;fha-pRn56oDQ^yIyaIuH$S84WQs2r^7|v=T+t5XfW((a_Cg
z0(Q&f!%Vs$w@v=cqy?rGn9V@+=1At-%*;SbHk-5Gf-pq5n<0!@e0v~_NTF6Hu$qS=
zoe)N@I1>w4q)56HBJxU>hY>9DQ_dbDWv!eC*1mX+8aH#HtI6i|hV86iyDiOI!Sq3M
z6EOY5+#cdcYYQWYvkNWsAPj2@smXgSBp{rd7EoUaTiQWHLM`1Pj0Ki95XJ*bM+igJ
z${NB*v2uej)>*kgtodeT3%1wH+6qh;Tf2ei&3mlH!G4&0%_alnm&uN{F<^RuttXg%
yW9tK^t?eLmmz_75f5XlTOsm=lg6T^8I52(7J`zluIcx-lz~omBpC`0*Npn0a=F0g_epuFk=k_fExBP>afJ}2SrYP%V;PhP}+~8L6Bjx
zqm?LJ1IWh7flOvBAa#?wnM_zddjX9&%%lr)+vLwoT3}j%*$hN)j%2>g%zO>VFlWC7
zVTf=yLm0F8_COesLaj_-H4jBPA&gvcCKj+rk#s3UZw0&Ipt%W{{$Xwp4zS7A7DnKZnp|k12Vq!SNKM{rApr@l
zn-*pehOng_gb`}#&H@gh1(r6D5PD$g2=Te9l{LhO6e~A~$T}+*NLYNcvIW~~W^Dzg
zi>=*2^yWR*;$S~azGjmF^2=mL+ZZstz}6E?zp?cJ)7Ewny35WR%)eph1*TQ)1Hp8q
ceH@s+WgiKq%^Ws@LSXVMhfr_;I60;P00qvmC;$Ke
From 17f3073ffc31fd7bd4549c7a0c3773bdd831af4d Mon Sep 17 00:00:00 2001
From: husakki
Date: Mon, 20 Jan 2025 09:52:19 +0100
Subject: [PATCH 015/148] mainclass added
---
use-api/pom.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/use-api/pom.xml b/use-api/pom.xml
index 9f25dcd1e..d492142a7 100644
--- a/use-api/pom.xml
+++ b/use-api/pom.xml
@@ -115,6 +115,7 @@
spring-boot-maven-plugin
true
+ org.tzi.use.UseAPIApplication
From 094deb3f8b1f1b3a4c8b879576c1d1ef04bb9d22 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 09:37:26 +0100
Subject: [PATCH 016/148] change the path with use-api/..
---
.github/workflows/postmantestci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
index 9a46f8044..5b6da2efa 100644
--- a/.github/workflows/postmantestci.yml
+++ b/.github/workflows/postmantestci.yml
@@ -34,7 +34,7 @@ jobs:
# Start Spring Boot
- name: Start Spring Boot
- run: java -Dspring.profiles.active=test -jar target/use-api-7.1.1-SNAPSHOT.jar &
+ run: java -Dspring.profiles.active=test -jar use-api/target/use-api-7.1.1-SNAPSHOT.jar &
env:
SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
From ef58bd044bba2c66cb4a9b4e14428be37f2292de Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 09:42:29 +0100
Subject: [PATCH 017/148] Update maven.yml ls tests
---
.github/workflows/maven.yml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 054da7ebb..9a0397899 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -19,6 +19,12 @@ jobs:
end_time=$(date +%s)
build_time=$((end_time - start_time))
echo "BUILD_TIME_SECONDS=$build_time" >> build_output.log
+ run: mvn --batch-mode --update-snapshots verify
+ #List target dir
+ - name: List target directory
+ run: ls -l use-assembly/target/
+ - name: List target directory
+ run: ls -l use-api/target/
- name: Upload build result
run: mkdir staging && cp use-assembly/target/*.zip staging
- uses: actions/upload-artifact@v4
From e325db0c974bb3a1892c60d234e128810c912ab7 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 09:47:42 +0100
Subject: [PATCH 018/148] small changes postmantestci.yml
but maybe it could be test and build
---
.github/workflows/postmantestci.yml | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
index 5b6da2efa..b4ee25ae5 100644
--- a/.github/workflows/postmantestci.yml
+++ b/.github/workflows/postmantestci.yml
@@ -23,18 +23,19 @@ jobs:
with:
java-version: '21'
distribution: 'adopt'
+ cache: maven
# Build the application
- name: Build with Maven
- run: mvn clean package
+ run: mvn --batch-mode --update-snapshots verify
#List target dir
- #- name: List target directory
- #run: ls -l target/
+ - name: List target directory
+ run: ls -l use-api/target/
# Start Spring Boot
- name: Start Spring Boot
- run: java -Dspring.profiles.active=test -jar use-api/target/use-api-7.1.1-SNAPSHOT.jar &
+ run: java -Dspring.profiles.active=test -jar use-api/target/use-api-7.1.1.jar &
env:
SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
From a806c8101caf7629564aebabdd26c722e73f1b51 Mon Sep 17 00:00:00 2001
From: husakki
Date: Mon, 20 Jan 2025 09:53:08 +0100
Subject: [PATCH 019/148] removed the list tar dir
---
.github/workflows/maven.yml | 5 -----
1 file changed, 5 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 9a0397899..95167a48e 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -20,11 +20,6 @@ jobs:
build_time=$((end_time - start_time))
echo "BUILD_TIME_SECONDS=$build_time" >> build_output.log
run: mvn --batch-mode --update-snapshots verify
- #List target dir
- - name: List target directory
- run: ls -l use-assembly/target/
- - name: List target directory
- run: ls -l use-api/target/
- name: Upload build result
run: mkdir staging && cp use-assembly/target/*.zip staging
- uses: actions/upload-artifact@v4
From fa35e98e816a667604020600b0ac720739555b0f Mon Sep 17 00:00:00 2001
From: husakki
Date: Mon, 20 Jan 2025 09:56:16 +0100
Subject: [PATCH 020/148] Update pom.xml
---
use-api/pom.xml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/use-api/pom.xml b/use-api/pom.xml
index d492142a7..97598e673 100644
--- a/use-api/pom.xml
+++ b/use-api/pom.xml
@@ -117,6 +117,13 @@
true
org.tzi.use.UseAPIApplication
+
+
+
+ repackage
+
+
+
From 6ae8bcbfcbcb0aca0156de7785425ad6fc8010f7 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Mon, 20 Jan 2025 10:00:50 +0100
Subject: [PATCH 021/148] Update postmantestci.yml
---
.github/workflows/postmantestci.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
index b4ee25ae5..71b3681f9 100644
--- a/.github/workflows/postmantestci.yml
+++ b/.github/workflows/postmantestci.yml
@@ -42,7 +42,7 @@ jobs:
# Wait for Spring Boot to start
- name: Wait for Spring Boot
run: |
- for i in {1..10}; do
+ for i in {1..4}; do
curl --fail http://localhost:8080/actuator/health && break || sleep 10;
done
@@ -50,7 +50,7 @@ jobs:
- name: Run Postman tests
run: |
npm install -g newman
- newman run src/main/resources/postman_collection/use-webapi.postman_collection.json
+ newman run use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json
# Cleanup
From 72b22b0a0ae332f29904ec0aaf9c93edf1bde5e5 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:22:28 +0100
Subject: [PATCH 022/148] Update maven.yml
added test job
with artifact upload and download
---
.github/workflows/maven.yml | 67 ++++++++++++++++++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 95167a48e..5c3f6c201 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -20,7 +20,7 @@ jobs:
build_time=$((end_time - start_time))
echo "BUILD_TIME_SECONDS=$build_time" >> build_output.log
run: mvn --batch-mode --update-snapshots verify
- - name: Upload build result
+ - name: Upload build result use-assembly
run: mkdir staging && cp use-assembly/target/*.zip staging
- uses: actions/upload-artifact@v4
with:
@@ -36,3 +36,68 @@ jobs:
path: |
docs/archunit-results/cycles-current-failure-report.txt
docs/archunit-results/layers-current-failure-report.txt
+
+ - name: Upload build result use-api
+ run: mkdir testphase && cp use-api/target/use-api-7.1.1.jar testphase
+ - uses: actions/upload-artifact@v4
+ with:
+ name: Constructed use-api
+ path: testphase
+
+ test:
+ runs-on: ubuntu-latest
+
+ services:
+ mongo:
+ image: mongo:4.4
+ ports:
+ - 27017:27017
+
+ steps:
+ # Checkout repository
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ # Set up JDK
+ - name: Set up Java
+ uses: actions/setup-java@v3
+ with:
+ java-version: '21'
+ distribution: 'adopt'
+ cache: maven
+
+ - name: Download Artifact use-api
+ uses: actions/download-artifact@v4
+ with:
+ name: Constructed use-api
+ # Build the application
+ - name: Build with Maven
+ run: mvn --batch-mode --update-snapshots verify
+
+ #List target dir
+ - name: List target directory
+ run: ls -l use-api/target/
+
+ # Start Spring Boot
+ - name: Start Spring Boot
+ run: java -Dspring.profiles.active=test -jar testphase/use-api-7.1.1.jar &
+ env:
+ SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
+
+ # Wait for Spring Boot to start
+ - name: Wait for Spring Boot
+ run: |
+ for i in {1..4}; do
+ curl --fail http://localhost:8080/actuator/health && break || sleep 10;
+ done
+
+ # Run Postman Tests with Newman
+ - name: Run Postman tests
+ run: |
+ npm install -g newman
+ newman run use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json
+
+
+ # Cleanup
+ - name: Stop Spring Boot
+ run: pkill -f 'java -Dspring.profiles.active=test'
From 3891c13ecd83685310199f8e51dfa58e616ac133 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:25:01 +0100
Subject: [PATCH 023/148] Update maven.yml
needs added for the job to wait
---
.github/workflows/maven.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 5c3f6c201..38988e157 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -45,6 +45,7 @@ jobs:
path: testphase
test:
+ needs: build
runs-on: ubuntu-latest
services:
From bd0b97bf72f05112c3c66a9d6a502f38f851ed30 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:29:35 +0100
Subject: [PATCH 024/148] Update maven.yml
removed mavn build and ls on testphase because cannot access right now
---
.github/workflows/maven.yml | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 38988e157..a873e7ef9 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -57,7 +57,7 @@ jobs:
steps:
# Checkout repository
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v3 # dont need to checkout if I put the postman collection into the artifact
# Set up JDK
- name: Set up Java
@@ -71,13 +71,10 @@ jobs:
uses: actions/download-artifact@v4
with:
name: Constructed use-api
- # Build the application
- - name: Build with Maven
- run: mvn --batch-mode --update-snapshots verify
#List target dir
- name: List target directory
- run: ls -l use-api/target/
+ run: ls -l testphase/
# Start Spring Boot
- name: Start Spring Boot
From 7e6339fc90171a3c7328590eb5abdf88c4009bbd Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:36:13 +0100
Subject: [PATCH 025/148] Update maven.yml
other name
---
.github/workflows/maven.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index a873e7ef9..ecae105bf 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -73,12 +73,12 @@ jobs:
name: Constructed use-api
#List target dir
- - name: List target directory
- run: ls -l testphase/
+ - name: List directory
+ run: ls -R "Constructed use-api"
# Start Spring Boot
- name: Start Spring Boot
- run: java -Dspring.profiles.active=test -jar testphase/use-api-7.1.1.jar &
+ run: java -Dspring.profiles.active=test -jar "Constructed use-api/use-api-7.1.1.jar" &
env:
SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
From 154e149619ecffcbffd0f0d458c9f7b4b6ba8c63 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:39:18 +0100
Subject: [PATCH 026/148] Update maven.yml
changed the artifact name
---
.github/workflows/maven.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index ecae105bf..0477fd81b 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -41,7 +41,7 @@ jobs:
run: mkdir testphase && cp use-api/target/use-api-7.1.1.jar testphase
- uses: actions/upload-artifact@v4
with:
- name: Constructed use-api
+ name: constructed_use-api
path: testphase
test:
@@ -70,15 +70,15 @@ jobs:
- name: Download Artifact use-api
uses: actions/download-artifact@v4
with:
- name: Constructed use-api
+ name: constructed_use-api
#List target dir
- name: List directory
- run: ls -R "Constructed use-api"
+ run: ls -l constructed_use-api
# Start Spring Boot
- name: Start Spring Boot
- run: java -Dspring.profiles.active=test -jar "Constructed use-api/use-api-7.1.1.jar" &
+ run: java -Dspring.profiles.active=test -jar constructed_use-api/use-api-7.1.1.jar &
env:
SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
From 341e796120e9af9e98a359b6712f042856d8ccc9 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:43:24 +0100
Subject: [PATCH 027/148] Update maven.yml
where are my files
---
.github/workflows/maven.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 0477fd81b..c468719be 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -43,6 +43,9 @@ jobs:
with:
name: constructed_use-api
path: testphase
+
+ - name: List files
+ run: ls -R $GITHUB_WORKSPACE
test:
needs: build
From 70c007ac16cfa8bed4c979750add50dd05910056 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:48:54 +0100
Subject: [PATCH 028/148] Update maven.yml
access testphase folder
---
.github/workflows/maven.yml | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index c468719be..9f8be1c94 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -44,8 +44,6 @@ jobs:
name: constructed_use-api
path: testphase
- - name: List files
- run: ls -R $GITHUB_WORKSPACE
test:
needs: build
@@ -77,11 +75,11 @@ jobs:
#List target dir
- name: List directory
- run: ls -l constructed_use-api
+ run: ls -l testphase
# Start Spring Boot
- name: Start Spring Boot
- run: java -Dspring.profiles.active=test -jar constructed_use-api/use-api-7.1.1.jar &
+ run: java -Dspring.profiles.active=test -jar testphase/use-api-7.1.1.jar &
env:
SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
From 6e81c7597ee075256a675084c24f5ec067797f2e Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:52:04 +0100
Subject: [PATCH 029/148] listing directories
removed the checkout for now aswell
---
.github/workflows/maven.yml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 9f8be1c94..28604cd99 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -57,8 +57,8 @@ jobs:
steps:
# Checkout repository
- - name: Checkout code
- uses: actions/checkout@v3 # dont need to checkout if I put the postman collection into the artifact
+ #- name: Checkout code
+ # uses: actions/checkout@v3 # dont need to checkout if I put the postman collection into the artifact
# Set up JDK
- name: Set up Java
@@ -73,6 +73,10 @@ jobs:
with:
name: constructed_use-api
+ #List target dir
+ - name: List directory
+ run: ls -R
+
#List target dir
- name: List directory
run: ls -l testphase
From 02dffd17d476fdc720a818f85ae50b69a77b45f8 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:55:04 +0100
Subject: [PATCH 030/148] checkout has to stay in for now
---
.github/workflows/maven.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 28604cd99..539f7a00f 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -57,8 +57,8 @@ jobs:
steps:
# Checkout repository
- #- name: Checkout code
- # uses: actions/checkout@v3 # dont need to checkout if I put the postman collection into the artifact
+ - name: Checkout code
+ uses: actions/checkout@v3 # dont need to checkout if I put the postman collection into the artifact
# Set up JDK
- name: Set up Java
From 25c6e4d921c2a69cd2ea103fd8ca215a172c296d Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 09:59:12 +0100
Subject: [PATCH 031/148] there was no dir to begin with
---
.github/workflows/maven.yml | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 539f7a00f..fc8ed12fc 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -73,17 +73,11 @@ jobs:
with:
name: constructed_use-api
- #List target dir
- - name: List directory
- run: ls -R
- #List target dir
- - name: List directory
- run: ls -l testphase
# Start Spring Boot
- name: Start Spring Boot
- run: java -Dspring.profiles.active=test -jar testphase/use-api-7.1.1.jar &
+ run: java -Dspring.profiles.active=test -jar use-api-7.1.1.jar &
env:
SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
From 8b1bf3212173cb50f202115b5b3b52e419b1e64a Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Fri, 31 Jan 2025 10:08:56 +0100
Subject: [PATCH 032/148] removed the checkout again
and also the maven
---
.github/workflows/maven.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index fc8ed12fc..2afa66ea0 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -57,8 +57,8 @@ jobs:
steps:
# Checkout repository
- - name: Checkout code
- uses: actions/checkout@v3 # dont need to checkout if I put the postman collection into the artifact
+ #- name: Checkout code
+ #uses: actions/checkout@v3 # dont need to checkout if I put the postman collection into the artifact
# Set up JDK
- name: Set up Java
@@ -66,7 +66,7 @@ jobs:
with:
java-version: '21'
distribution: 'adopt'
- cache: maven
+ #cache: maven
- name: Download Artifact use-api
uses: actions/download-artifact@v4
From a443548c59a5e0aef31401ff1edf713870872126 Mon Sep 17 00:00:00 2001
From: husakki
Date: Fri, 14 Feb 2025 09:22:56 +0100
Subject: [PATCH 033/148] removed graphql
---
.../use/graphql/services/MClassGService.java | 36 ----------------
.../main/resources/graphql/schema.graphqls | 42 -------------------
2 files changed, 78 deletions(-)
delete mode 100644 use-api/src/main/java/org/tzi/use/graphql/services/MClassGService.java
delete mode 100644 use-api/src/main/resources/graphql/schema.graphqls
diff --git a/use-api/src/main/java/org/tzi/use/graphql/services/MClassGService.java b/use-api/src/main/java/org/tzi/use/graphql/services/MClassGService.java
deleted file mode 100644
index 9c9bed7af..000000000
--- a/use-api/src/main/java/org/tzi/use/graphql/services/MClassGService.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.tzi.use.graphql.services;
-
-import org.springframework.graphql.data.method.annotation.Argument;
-import org.springframework.graphql.data.method.annotation.MutationMapping;
-import org.springframework.graphql.data.method.annotation.QueryMapping;
-import org.springframework.stereotype.Controller;
-import org.springframework.stereotype.Service;
-import org.tzi.use.model.Attribute;
-import org.tzi.use.model.UseClass;
-import org.tzi.use.model.Operation;
-import org.tzi.use.repository.ClassRepo;
-
-import java.util.List;
-
-@Controller
-@Service
-public class MClassGService {
- private final ClassRepo classRepo;
-
- public MClassGService(ClassRepo repo) {
- this.classRepo = repo;
- }
-
- @QueryMapping
- public Iterable classes() {
- return classRepo.findAll();
- }
-
- @MutationMapping
- public UseClass aUseClass(@Argument MClassInput mClassInput) {
- UseClass tmpUseClass = new UseClass(mClassInput.name_mclass, mClassInput.attributes,mClassInput.operations);
- return classRepo.save(tmpUseClass);
- }
-
- private record MClassInput(String name_mclass, List attributes, List operations) {}
-}
diff --git a/use-api/src/main/resources/graphql/schema.graphqls b/use-api/src/main/resources/graphql/schema.graphqls
deleted file mode 100644
index 35bfc3f81..000000000
--- a/use-api/src/main/resources/graphql/schema.graphqls
+++ /dev/null
@@ -1,42 +0,0 @@
-####Queries
-type Query{
- classes: [Class]
-}
-
-
-type Class{
- name_mclass: String!
- attributes: [Attribute]
- operations: [Operation]
-}
-
-type Attribute{
- name_attr: String!
- type: String!
-}
-
-type Operation{
- head: String!
- body: String
-}
-
-#### Mutations
-type Mutation{
- aUseClass(mClassInput: ClassInput): Class
-}
-
-input ClassInput{
- name_mclass: String!
- attributes: [AttributeInput]
- operations: [OperationInput]
-}
-
-input AttributeInput{
- name_attr: String!
- type: String!
-}
-
-input OperationInput{
- head: String!
- body: String
-}
\ No newline at end of file
From aacce4f6dc0cb9f466fe95a02c56a22c4da3fd01 Mon Sep 17 00:00:00 2001
From: husakki
Date: Fri, 14 Feb 2025 09:23:10 +0100
Subject: [PATCH 034/148] added the checkout again
---
.github/workflows/maven.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 2afa66ea0..c098065fc 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -56,9 +56,9 @@ jobs:
- 27017:27017
steps:
- # Checkout repository
- #- name: Checkout code
- #uses: actions/checkout@v3 # dont need to checkout if I put the postman collection into the artifact
+ #Checkout repository
+ - name: Checkout code
+ uses: actions/checkout@v3 # dont need to checkout if I put the postman collection into the artifact
# Set up JDK
- name: Set up Java
@@ -84,7 +84,7 @@ jobs:
# Wait for Spring Boot to start
- name: Wait for Spring Boot
run: |
- for i in {1..4}; do
+ for i in {1..5}; do
curl --fail http://localhost:8080/actuator/health && break || sleep 10;
done
From f803b8e9e2d9633e2d2eb44a5d0a35480e730b00 Mon Sep 17 00:00:00 2001
From: husakki
Date: Tue, 27 May 2025 12:23:58 +0200
Subject: [PATCH 035/148] added funtionality
---
.github/workflows/postmantestci.yml | 58 --------------
use-api/pom.xml | 5 ++
.../main/java/org/tzi/use/MClassFacade.java | 20 +++--
.../java/org/tzi/use/model/Invariant.java | 45 +++++++++++
.../org/tzi/use/model/PrePostCondition.java | 57 ++++++++++++++
.../main/java/org/tzi/use/model/UseClass.java | 72 +++++++++++++-----
.../org/tzi/use/repository/AttributeRepo.java | 7 --
.../org/tzi/use/repository/OperationRepo.java | 8 --
use-api/target/classes/application.properties | 2 +-
.../target/classes/graphql/schema.graphqls | 42 ----------
.../classes/org/tzi/use/MClassFacade.class | Bin 1900 -> 2756 bytes
.../classes/org/tzi/use/OpenApiConfig.class | Bin 955 -> 955 bytes
.../services/MClassGService$MClassInput.class | Bin 2411 -> 0 bytes
.../use/graphql/services/MClassGService.class | Bin 1858 -> 0 bytes
.../classes/org/tzi/use/model/Invariant.class | Bin 0 -> 1193 bytes
.../org/tzi/use/model/PrePostCondition.class | Bin 0 -> 1505 bytes
.../classes/org/tzi/use/model/UseClass.class | Bin 2382 -> 4048 bytes
17 files changed, 171 insertions(+), 145 deletions(-)
delete mode 100644 .github/workflows/postmantestci.yml
create mode 100644 use-api/src/main/java/org/tzi/use/model/Invariant.java
create mode 100644 use-api/src/main/java/org/tzi/use/model/PrePostCondition.java
delete mode 100644 use-api/src/main/java/org/tzi/use/repository/AttributeRepo.java
delete mode 100644 use-api/src/main/java/org/tzi/use/repository/OperationRepo.java
delete mode 100644 use-api/target/classes/graphql/schema.graphqls
delete mode 100644 use-api/target/classes/org/tzi/use/graphql/services/MClassGService$MClassInput.class
delete mode 100644 use-api/target/classes/org/tzi/use/graphql/services/MClassGService.class
create mode 100644 use-api/target/classes/org/tzi/use/model/Invariant.class
create mode 100644 use-api/target/classes/org/tzi/use/model/PrePostCondition.class
diff --git a/.github/workflows/postmantestci.yml b/.github/workflows/postmantestci.yml
deleted file mode 100644
index 71b3681f9..000000000
--- a/.github/workflows/postmantestci.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-name: CI with Postman Tests
-
-on: push
-
-jobs:
- test:
- runs-on: ubuntu-latest
-
- services:
- mongo:
- image: mongo:4.4
- ports:
- - 27017:27017
-
- steps:
- # Checkout repository
- - name: Checkout code
- uses: actions/checkout@v3
-
- # Set up JDK
- - name: Set up Java
- uses: actions/setup-java@v3
- with:
- java-version: '21'
- distribution: 'adopt'
- cache: maven
-
- # Build the application
- - name: Build with Maven
- run: mvn --batch-mode --update-snapshots verify
-
- #List target dir
- - name: List target directory
- run: ls -l use-api/target/
-
- # Start Spring Boot
- - name: Start Spring Boot
- run: java -Dspring.profiles.active=test -jar use-api/target/use-api-7.1.1.jar &
- env:
- SPRING_DATA_MONGODB_URI: mongodb://localhost:27017/testdb
-
- # Wait for Spring Boot to start
- - name: Wait for Spring Boot
- run: |
- for i in {1..4}; do
- curl --fail http://localhost:8080/actuator/health && break || sleep 10;
- done
-
- # Run Postman Tests with Newman
- - name: Run Postman tests
- run: |
- npm install -g newman
- newman run use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json
-
-
- # Cleanup
- - name: Stop Spring Boot
- run: pkill -f 'java -Dspring.profiles.active=test'
diff --git a/use-api/pom.xml b/use-api/pom.xml
index 97598e673..e8979dc9a 100644
--- a/use-api/pom.xml
+++ b/use-api/pom.xml
@@ -56,6 +56,11 @@
h2
runtime
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+ 2.5.0
+
org.springframework.boot
spring-boot-starter-test
diff --git a/use-api/src/main/java/org/tzi/use/MClassFacade.java b/use-api/src/main/java/org/tzi/use/MClassFacade.java
index 61c705236..7d0162495 100644
--- a/use-api/src/main/java/org/tzi/use/MClassFacade.java
+++ b/use-api/src/main/java/org/tzi/use/MClassFacade.java
@@ -2,9 +2,7 @@
import org.tzi.use.api.UseApiException;
import org.tzi.use.api.UseModelApi;
-import org.tzi.use.model.Attribute;
-import org.tzi.use.model.Operation;
-import org.tzi.use.model.UseClass;
+import org.tzi.use.model.*;
import org.tzi.use.uml.mm.MAttribute;
import org.tzi.use.uml.mm.MClass;
import org.tzi.use.uml.mm.MInvalidModelException;
@@ -16,16 +14,22 @@ public static UseClass createMClass(UseClass aClass) throws UseApiException, MIn
UseModelApi useModelApi = new UseModelApi();
MClass mClass;
mClass = useModelApi.createClass(aClass.getName_mclass(), false);
- //for each attr add
for (Attribute attribute : aClass.getAttributes()) {
- MAttribute tmp_mAttribute = useModelApi.createAttribute(mClass.name(), attribute.getName_attr(), attribute.getType());
+ useModelApi.createAttribute(mClass.name(), attribute.getName_attr(), attribute.getType());
}
- //for each operation add
for (Operation operation : aClass.getOperations()) {
- MOperation tmp_mOperation = useModelApi.createOperation(mClass.name(), operation.getHead(), new String[0][0], operation.getBody());
+ useModelApi.createOperation(mClass.name(), operation.getHead(), new String[0][0], operation.getBody());
}
- //TODO return the MClass for later to be saved inside the DB
+
+ for(PrePostCondition prePostCondition : aClass.getPrePostConditions()) {
+ useModelApi.createPrePostCondition(mClass.name(), prePostCondition.getOperationName(), prePostCondition.getName(), prePostCondition.getCondition(), prePostCondition.isPre());
+ }
+
+ for (Invariant invariant: aClass.getInvariants()) {
+ useModelApi.createInvariant(mClass.name(), invariant.getInvName(), invariant.getInvBody(),invariant.isExistential());
+ }
+
return aClass;
}
}
diff --git a/use-api/src/main/java/org/tzi/use/model/Invariant.java b/use-api/src/main/java/org/tzi/use/model/Invariant.java
new file mode 100644
index 000000000..2cdb722bf
--- /dev/null
+++ b/use-api/src/main/java/org/tzi/use/model/Invariant.java
@@ -0,0 +1,45 @@
+package org.tzi.use.model;
+
+import jakarta.persistence.Id;
+
+public class Invariant {
+
+ @Id
+ private String invName;
+ private String invBody;
+ private boolean isExistential;
+
+ public Invariant() {
+
+ }
+
+ public Invariant(String invName, String invBody, boolean isExistential) {
+ this.invName = invName;
+ this.invBody = invBody;
+ this.isExistential = isExistential;
+ }
+
+ public String getInvName() {
+ return invName;
+ }
+
+ public String getInvBody() {
+ return invBody;
+ }
+
+ public boolean isExistential() {
+ return isExistential;
+ }
+
+ public void setInvName(String invName) {
+ this.invName = invName;
+ }
+
+ public void setInvBody(String invBody) {
+ this.invBody = invBody;
+ }
+
+ public void setExistential(boolean existential) {
+ isExistential = existential;
+ }
+}
diff --git a/use-api/src/main/java/org/tzi/use/model/PrePostCondition.java b/use-api/src/main/java/org/tzi/use/model/PrePostCondition.java
new file mode 100644
index 000000000..a771c748a
--- /dev/null
+++ b/use-api/src/main/java/org/tzi/use/model/PrePostCondition.java
@@ -0,0 +1,57 @@
+package org.tzi.use.model;
+
+import jakarta.persistence.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+@Document
+public class PrePostCondition {
+ @Id
+ private String operationName;
+ private String name;
+ private String condition;
+ private boolean isPre;
+
+ public PrePostCondition() {
+ }
+
+ public PrePostCondition(String operationName, String name, String condition, boolean isPre) {
+ this.operationName = operationName;
+ this.name = name;
+ this.condition = condition;
+ this.isPre = isPre;
+
+
+ }
+
+ public String getOperationName() {
+ return operationName;
+ }
+
+ public void setOperationName(String operationName) {
+ this.operationName = operationName;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCondition() {
+ return condition;
+ }
+
+ public void setCondition(String condition) {
+ this.condition = condition;
+ }
+
+ public boolean isPre() {
+ return isPre;
+ }
+
+ public void setPre(boolean pre) {
+ isPre = pre;
+ }
+}
diff --git a/use-api/src/main/java/org/tzi/use/model/UseClass.java b/use-api/src/main/java/org/tzi/use/model/UseClass.java
index f43624150..af3059c8c 100644
--- a/use-api/src/main/java/org/tzi/use/model/UseClass.java
+++ b/use-api/src/main/java/org/tzi/use/model/UseClass.java
@@ -14,45 +14,75 @@ public class UseClass {
private String name_mclass;
// Unidirectional OneToMany relationship
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
- @JoinColumn(name = "mClass_id") // Foreign key column in the Employee table
+ @JoinColumn(name = "mClass_id")
private List attributes = new ArrayList<>();
// Unidirectional OneToMany relationship
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
- @JoinColumn(name = "mClass_id") // Foreign key column in the Employee table
+ @JoinColumn(name = "mClass_id")
private List operations = new ArrayList<>();
-// @OneToMany(mappedBy = "children", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
-// private List parents = new ArrayList<>();
-
-// @OneToMany(mappedBy = "associations", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
-// private List associations = new ArrayList<>();
-
+ @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
+ @JoinColumn(name = "mClass_id")
+ private List prePostConditions = new ArrayList<>();
- // Getters and Setters
+ @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
+ @JoinColumn(name = "mClass_id")
+ private List invariants = new ArrayList<>();
public String getName_mclass() {
return name_mclass;
}
- public void setName_mclass(String name_mclass) {
- this.name_mclass = name_mclass;
- }
public List getAttributes() {
return attributes;
}
-//
-// public void setAttributes(List attributes) {
-// this.attributes = attributes;
-// }
-//
+
public List getOperations() {
return operations;
}
-//
-// public void setOperations(List operations) {
-// this.operations = operations;
-// }
+
+ public List getPrePostConditions() {
+ return prePostConditions;
+ }
+
+ public List getInvariants() {
+ return invariants;
+ }
+
+ public void addAttribute(Attribute attribute) {
+ attributes.add(attribute);
+ }
+
+ public void removeAttribute(Attribute attribute) {
+ attributes.remove(attribute);
+ }
+
+ public void addOperation(Operation operation) {
+ operations.add(operation);
+ }
+
+ public void removeOperation(Operation operation) {
+ operations.remove(operation);
+ }
+
+ public void addPrePostCondition(PrePostCondition condition) {
+ prePostConditions.add(condition);
+ }
+
+ public void removePrePostCondition(PrePostCondition condition) {
+ prePostConditions.remove(condition);
+ }
+
+ public void addInvariant(Invariant invariant) {
+ invariants.add(invariant);
+ }
+
+ public void removeInvariant(Invariant invariant) {
+ invariants.remove(invariant);
+ }
+
+
//Constructors
public UseClass(String name_mclass, List attributes, List operations) {
diff --git a/use-api/src/main/java/org/tzi/use/repository/AttributeRepo.java b/use-api/src/main/java/org/tzi/use/repository/AttributeRepo.java
deleted file mode 100644
index 237e34ae4..000000000
--- a/use-api/src/main/java/org/tzi/use/repository/AttributeRepo.java
+++ /dev/null
@@ -1,7 +0,0 @@
-//package org.tzi.use.repository;
-//
-//import org.springframework.data.jpa.repository.JpaRepository;
-//import org.tzi.use.model.Attribute;
-//@Deprecated
-//public interface AttributeRepo extends JpaRepository {
-//}
diff --git a/use-api/src/main/java/org/tzi/use/repository/OperationRepo.java b/use-api/src/main/java/org/tzi/use/repository/OperationRepo.java
deleted file mode 100644
index ae27148ff..000000000
--- a/use-api/src/main/java/org/tzi/use/repository/OperationRepo.java
+++ /dev/null
@@ -1,8 +0,0 @@
-//package org.tzi.use.repository;
-//
-//import org.springframework.data.jpa.repository.JpaRepository;
-//import org.tzi.use.model.Operation;
-//
-//@Deprecated
-//public interface OperationRepo extends JpaRepository {
-//}
diff --git a/use-api/target/classes/application.properties b/use-api/target/classes/application.properties
index dd694a400..943c06f5f 100644
--- a/use-api/target/classes/application.properties
+++ b/use-api/target/classes/application.properties
@@ -4,7 +4,7 @@ spring.graphql.graphiql.enabled=true
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.main.allow-bean-definition-overriding=true
-server.port=8080
+server.port=8090
# /api-docs endpoint custom path
springdoc.api-docs.path=/docs
diff --git a/use-api/target/classes/graphql/schema.graphqls b/use-api/target/classes/graphql/schema.graphqls
deleted file mode 100644
index 35bfc3f81..000000000
--- a/use-api/target/classes/graphql/schema.graphqls
+++ /dev/null
@@ -1,42 +0,0 @@
-####Queries
-type Query{
- classes: [Class]
-}
-
-
-type Class{
- name_mclass: String!
- attributes: [Attribute]
- operations: [Operation]
-}
-
-type Attribute{
- name_attr: String!
- type: String!
-}
-
-type Operation{
- head: String!
- body: String
-}
-
-#### Mutations
-type Mutation{
- aUseClass(mClassInput: ClassInput): Class
-}
-
-input ClassInput{
- name_mclass: String!
- attributes: [AttributeInput]
- operations: [OperationInput]
-}
-
-input AttributeInput{
- name_attr: String!
- type: String!
-}
-
-input OperationInput{
- head: String!
- body: String
-}
\ No newline at end of file
diff --git a/use-api/target/classes/org/tzi/use/MClassFacade.class b/use-api/target/classes/org/tzi/use/MClassFacade.class
index 8d183f1872b81f0850a9a77d50f966b4593f4012..f25b458e8e4abe56b506ae8640eac6ef651cc46a 100644
GIT binary patch
delta 1053
zcmZuvOH30{6g`iAri`zE6{uJ~QL8a6rggzWNlg5Zpz^6-{D3;pv5wMC=?n;{)c^kj
znT;+?3>&u+lPWHZCb%(ifr)WR!rH{OhJg3cw6Vp-oOj>7=iK|woALXb5sir8fqx6N7epN
zF;PZ4A{+-%&QL*(I+JQj5gj^|xGIW=IgW^;M8#b0SUX3TNODT%XA1TSj+5BP;Lr@3
zBtt?sM-NUjRQIJ+#Z-&uGYo98#%z9T+~yJA#GE%>%xM;G&vGcjt(!*fOAIL~O-Yz!
zvyZ{I(q^6^qZca2IdNJ!E6uv-#d!|xpY(1$IwIH?n>hM~2e)Rl3~Pp|CQMD~7hVz^
zI+6_KSugn^3_W=h6LYohe4$xF>dj}{8rD~lEc!zX{CEAr@
z7$ek##B7#$4qBPD*Xd`QEzQ~B?RvHJBap%NX{=@F*gB1RhUaLsUOG3WsWwZs{e`tK
zk^BrF(Z0hTY@9}bp~jv;r+`BOjtV%Q!70*zCHB(Ij!kkfvy!)Yqt&U0f2B8@NeBUHDC{Z_}-M@C$cvmu~YOjijQgZ;lJWr_QKu)gE5XyhoOJ^8
delta 351
zcmXAjOD{uF6otRj-rIBU4UM!)U8NJRTpEp-)QE}1tLm-PoA?J3BNB<2pAmn+R1HuA
zBO@at|G>;I5GlJ?PO|piXRW=~eocMFy|?=F3oyY^)q9FYH8c0Iq%x=a#@bb6O;smN
z;KbFwDLAFdG!YRasIZ9%&dM|_RY|pjM^rVW=L8!xG*c98`WG-yNhX&C7R5xCl^+_x
zmHBjfRKM}uY^obp`;E<5lN}d#x
zv@=Bq$M{^($t7Lk8KV-Gr;R0+v4qXA!m4x<&l>Ae9nLAUA?GGIVUvoSxh4NTR-KGS
d4`>E8*>8q^aKmPVZ4tyoxWk?-9>^5o@DD)uG!y^;
diff --git a/use-api/target/classes/org/tzi/use/OpenApiConfig.class b/use-api/target/classes/org/tzi/use/OpenApiConfig.class
index b08c0e1784d02e562e1d4d5c67021edb7f289416..88c2463d309b3be2f286196f0340fd5ea91d8e65 100644
GIT binary patch
delta 13
UcmdnZzMFjmA2XxnWPau~039*|(EtDd
delta 13
UcmdnZzMFjmA2XxHWPau~039s@&;S4c
diff --git a/use-api/target/classes/org/tzi/use/graphql/services/MClassGService$MClassInput.class b/use-api/target/classes/org/tzi/use/graphql/services/MClassGService$MClassInput.class
deleted file mode 100644
index 9541a7ea99c0899d130de247dc8fe4f9e110265e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2411
zcmbtVUvtw&5dU4AL{6d*+X*Sq5(orpD}WkW2vjCCghC8X=rl|o+J}zp+}HwHXQWf6
z?Pux(%rw)PJoE$bp&0fgIhGO^41JJvySKmnzpJxPnH%CkHCw@y<@FqGh*&iP;Dx
zC)q+Q8%oDD>rNme$&!xQNK$mUZ%apbL5Tu9tz#ZvFyy6()iP|A>!0bgRXORUGICbO
zIebY*+IG<15PO`V`ag`+l+N=y7I1-*&tHYMOHprszQ&Z-&l)dyQ(Bc@7$$a{mS@Y*
zCwI+bDXnHw)S-}EbG=srYt0%C@vK*h2yv^N@*}D7F|*cjy0XhK8fSE-?s$AV>@>Ll
z+-|t!bg3?yw!3Tlj-nIhsBAlwt-F~3KA|xwwE3*wKe|2Lg)J`IV(%y0r`DC+Cp*E%
zgZfx5kHtJlJe^3DlDYDLPK@TW#&A0AQmWoeWXCMIB4$rpf1(&xPA~^KmhFk*FzH}u
zvUf!2H~Aw+RdhDHFm9-wKx4Jd1Gy;zso@U8@+S;0jZbfh6&?s714$byE@F^Jm0>Zp
zgslFKvHDA7hC!oenx5j!IMyfe02>+}>i7|l7%ueJmLGc3>2Nd7Yhs1QtkE;f@Frav
z$J-Y#xfu&?+TNbagQdC4lr$8KS1#f@pHIB
z?{UI|Fjwhq#PawWWugcf*;V&*k!9u0Tx2tc3Z3U8|J2=La+<{@(reJ&bdJEFD-ZyQ
z%gZPd=o*<+4zAEwDc6icQj6Dg968~W9*ZPC73m*yeE|Fn@YhiA1>8vBRWham${Wjv
z`0Bs#aftb&l;mMjVU*ufM{$@D4U8FoL;Fw^V~H9@X;~rTDhX-u^f2IyQJgo)=IlTv
z#o?8FOWpEar0y1ON8eT4rSB5eFz&c)zh%4ady-V$_XBCk!@@nR;XWP{w?wh!v5HNq
LRt-mL9utW_|9Ne3kt2QbBOx=xK(jWf@An!Z2BHbjvu1vV)3?DqM!8NDVywoAlB|cmu`btzUgF5o%lZ
zMB;T;eV!zbHZq%`+%xtw5l0NQcHULdULtj*c0B82FwH6s;jn`vE{GUjmH!Iv&hV4mT29y#V}=d+ux
zhjB`RRYM+#p96bY$|TFfO1hzy36DApIKxoknl?96EfP|HG-rccaPgHzMzK&_
z%P34Ln87(yvGWYK>K_Lfr5UvwU8C(q7hj{!P)hi=V7Qnk%8K6{ikRz%Cc}mL_}VqP
z#JfuRG8}HpP&`h9O`)FiO`mqA+fk4EU9P0Dhnpq6B}szI1@1ArQ!*vfI#hY9w$X5I
zxAHdWbxoR45JHwWUv5Vc&Tp@}R&(cuKKy+myiL@1lkz(??++e2ze!G!uAVqgt^BPr1>Ws$3|>z0Zl&
zQiC)Qp{7DqHlkGZ#F{kiI#ZluSIk_Y(f7#^31uQ8y%P&>H43$gd|xOc%!)bM9Xa%H
zND{RASR}e5%=bd=?5>BQP_|&EyQ{fLLu26}O>cm{C^L>}HA(9OXwZ9+tTj3{=at2`
zV2ewC!uf-&2`th35MhB?lyD4Y%3LCAE<@uou8>83@Q9Vs-&I^Ayy3iQZNvEn&O3a;
z@H_2hoKtiL%v&zwXBaZB>lSl^ya9u{MZXN+;P#NUPg$FMYJX$qr=>SIM$bul&b~#h
zV
h_vt->?<~X+x5)mUo>hBFQw0xbRU!NwiT)7t9{~Gk`~(01
diff --git a/use-api/target/classes/org/tzi/use/model/Invariant.class b/use-api/target/classes/org/tzi/use/model/Invariant.class
new file mode 100644
index 0000000000000000000000000000000000000000..8c6b2c68eaa88580c568475a52a1ff3a04bf3d8e
GIT binary patch
literal 1193
zcmaJ<(QXn!6g>kJ3I$3j#a6^tt9GG{``}|ulWH_+LTX|S4}Du;f>W1Wv%3)Wn|#nj
zV&a1z;71wH>~5fituJ%uPVPDP+;iv8-(SB0oWdv|g>(*?B36(Us9aeS%d{&w?lTTq_u>#1H59&iOIevLFwt{4I}W?9B9#+2Sy
z7`Y?HRlf7z@T@a?#wZw9+CL$_hh=wo>MsVuGALs^yoE*B!ChvWpb-<;tjzGOrU}}I
zQ{>u5Q@ilQK1TJHp4@WQvE-H!WQ&sp${K0R`@%8Fw}r
zBk4bo`^KUav~)cgcuSIfKM`D71UC}FRqQ5ou6$kSyqgH#T29rU8L)fTt~NXJ?3gO*OSnR
FgMZd$xoH3Z
literal 0
HcmV?d00001
diff --git a/use-api/target/classes/org/tzi/use/model/PrePostCondition.class b/use-api/target/classes/org/tzi/use/model/PrePostCondition.class
new file mode 100644
index 0000000000000000000000000000000000000000..d688848478b20b77cd0818e78468f3b37d7f2223
GIT binary patch
literal 1505
zcma)5+iuf95S>k&gan7Cmy|Z;)(bRAFGea76-AY*A|#}$ttiSv-yCNN+a}(~c0l5Z
z58?qNA|xL806q$F#x_lwx`LOT-SO->XXlK6{r>Tji1ui+Kq*S+$S^5GSwW>U`@L;-
zY`1M4HP56I2+BTJt_pSqrK`0@o^DV+M+K8^k|}6Odu=QDsI0y(t*&m#j&R1V_gq&8A)zm54s7SP7uXh5_{tBY>qzTWYX?mGP%LQT
zK)Ld;-)&0ojg9N9P&;;~VS9?tancChDd4Rf{QJ$oepbEu%Kyon)*5i3ErX-WO`ECK
zu3kr_f2FdVz|5dIfJO%7a4FiE$c;E<;={-hhNHPzB*RV{)lgiz$89g1=)UL3mx}vU
z9yfiH9Tv15_R8SK+M#?llU5zRl*_$z6IzBTELFM
zQABs>E+PZm!^!}kK$JnOFhG56K)L$*fQt2v0hQ`yV?fhG)Cy>cCV@Idd71|P4AwGm
z=0cVy5mL+o%=lTn3C0!7kO7HKKI
zyo+k4$cE1t%I4pnK#~CsBg{rs7c#T4OhLNP^ROWc8n
zi9$-_Le>(6JW3W)8W&yD7%XB3J`tGm
z{4FE=*)iIIZ8W{Q-7xM3cBNqjfk45vn)cIXEgp@VFRWLV(XiYtV?Fd8cdIPHJ}qJ=
zh6IMJkT0w4(5C0E*tQ)y4a0PTFtRKbF&tTXE!($3$8!S-Fj~Ye`FgD7+jqPmtaxtS
zQM2Pk?2eoq_m$;4mKz2I?7?InpB3>r_6m$dv{Wd8oK>$2?3vxhceVP$u7%~f2h#V8
zBKAqgPkg)Sy|RZejRSccEMf+SNWGh7>_x*%j_ZVrM4p}7%;Si_?rzK_-?v`N9EWfi
z2L$%6wcXHZ+M7<`R2%k^>w00FtiY@(ydQmv`;+ItH0oAp8J4m$mg{AKo$Jn)
zYlUs!7BEt3UW#DeU$v!<`sGD>AE3ue%O@_S4oJ>+YqqiK+8f?&%Y99Ye9a1KR-NcG
zTH8uIz45wb(>k|gngYX~-+FGjYf?6=kz+v#frDE2o1WuVyhgj}(tA+W5mRbLb@kNY
z>hzP+YNt%1lot9B;ZCZ8BFBD0Eq975@)+5&!!%!ZPFcZW`YfPvMebGrfMu?J?62EU&$|J%ka=$CdSdj59%i11uo2*3Ds|5CI
z)(RJNs8<3qp3)^Fo|-R5@w`qc>*IB;RXp{I&4%&P;t3qrrI|L1qt`keRp5vw
z+Yg)sCgY^jGjZ-p{fykzd>q~B>@9unU2B!QdL?jvdlyemom3+zr^iz9$@h04yI8Ud
zgWiC>_EIXI&Rne?3slls)kXdA=v75l)+|#OQzE{1yd}cO_e1Mm+ppQz9odJ5JB{VE
zJg>M>BUtVE)AZaeuU<83p3e^ftJUHWWnA-W?WXO9Wz6uPo@T?}!8<=3AaIN$c|Xqk
zfcymDbvAmQi{_>|F7bEbA%u;SIEB*>VBid0<^!DN3_k{x&$&K*_@$tHzU?
zd|y6eB)NdEc)h@k4BiFrJ4$aLevMN6npc@TD9lA(i?IR9xWtjbH&|rIv~xb~d`#mU
zYj~L;SF|97G)O5EWQibGwICyDkkgqU6@pyTf{dj>&SrvqOOWfh!K>8d8nqdas!`DV
ziQh3XfP24jJOHVyTr5!j0vAAPI~m(1+Dfgz!!nTsZe}7*X%H_GvD^dk7EBGtLI%f0
zB3{lwyp5HJ<7y_Nj^kA#R(c@b!S@=DBN-g86Y)j{;u_W?jvJYXI*vDqc&i8EU2JMN
zj%9FMA>wKV;ywHjalD_2sN=Xs#PuGCGkCztlJ)pEav0?OO6eW;m;S`z`|oh{E%M#R
zLicf``#4rQ@fMo|k^IM28j@sO4C
zC}LQOW2^eUk~CQIN!qG>lFc$lug-pub93Y$&z<93+&CUltrndJ%@%M6|*8T`Vr%yQwQ
zGU#@dY2=Ag)o`tmYkga-EGUi(2}jB2P{PNH_yP0(mrs|<6ps$T)=;q{8u4K=pU@bf
Pkg_#Ci%u?i=vcsiU65ma
literal 2382
zcma)8?Q+{h6g_JvaT7ZqxM`qCN!{|5s7XZ&H3g?`-IR7V=t~+Tk=S9
zneZSy0>5FVnGP_+1MpA`XIHZ1xauT-w7c4S&pr3tt2_GlzrX$g(7@ek_MRHp4V1g`@2AGcV!R=6kXXua2|{C8Dq+@GdVS@~(DB@02J=`b;H?tMI7_!Q!p^}n
z)d~fswj9?9>jL?;_5A|Q37j=X2D;(<@=)W?U=a&Nyo2)vESIo?3j%Ygoi-tYY_|o@
zt&QXnMX9Yn7C8TC;D%05?K^>U&{YlB^}>jxz*beRd&3(P95Gfw^ET_Oar}O}xHOg-9}~1aZqlj%f!ATzl>1$pzKG
zi5>(#9Y*3|6udFou`%gL!Ia(jStqr0TsU?_EM9Oj;7OT{#mh1uO+wSz$%^{=_({r8
z%cyONsS)4Jut?pr?^6VhtX*&5x72+{x7qBlZ?5XOA#l@xXMXcN&+T~a1H0w<9GbG<
z=UA}sd96WDxnT{LI2Gslk>$B^$bv+8((5YMoF12aUNrlPxm)E~dtLq!Lg78Uj}IQ>
zLwrP+wE*k9;owYstW)`%q4O1N@VUuIHdn!Q(s~K;y9s@jPfZHA%xj<&8Q^1F<4NE;
zKH*b4*BLs;b;`PO1n~!VIcRT93FJ9RrW#=>vWgKjdX&Dvr?|npaUz9rB31^GNT({P
ze3l7P90$4nMv$8XDdY2)$!{#s1X)|wE6iDcWATSqSUN%>-4;#0)`ot$d4!_QJZ~~z
zMS=S-=)b^HFJc)r7Ice+yTx+V4FfAePt>qtH5f5&0lm|O%@b*;p1!LX9rc~XyGVeV
z;l34D0@*E%_AeTQAs=2`bgS9M35!b7Tl{l~Rr%I109M`{
eF%4EW<#{j??7>Lmti*wGxJ^nq+)2LS2Jk=GgbykJ
From 4d2dfac2edce23488ae370540d7601f506ef8874 Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Tue, 27 May 2025 14:37:29 +0200
Subject: [PATCH 036/148] Update application.properties
pipeline took it as 90 for some reason, will do another commit to change to 80 again
---
use-api/src/main/resources/application.properties | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/use-api/src/main/resources/application.properties b/use-api/src/main/resources/application.properties
index dd694a400..520d9b7fe 100644
--- a/use-api/src/main/resources/application.properties
+++ b/use-api/src/main/resources/application.properties
@@ -4,7 +4,7 @@ spring.graphql.graphiql.enabled=true
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.main.allow-bean-definition-overriding=true
-server.port=8080
+server.port=8081
# /api-docs endpoint custom path
springdoc.api-docs.path=/docs
@@ -17,4 +17,4 @@ spring.data.mongodb.username=rootuser
spring.data.mongodb.password=rootpass
spring.data.mongodb.database=use-database
spring.data.mongodb.port=27017
-spring.data.mongodb.host=localhost
\ No newline at end of file
+spring.data.mongodb.host=localhost
From d23e0d33b4ffaf5abcf6a4ab07ed1c64115836ca Mon Sep 17 00:00:00 2001
From: husakki <81704101+husakki@users.noreply.github.com>
Date: Tue, 27 May 2025 14:37:42 +0200
Subject: [PATCH 037/148] Update application.properties
80 again
---
use-api/src/main/resources/application.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/use-api/src/main/resources/application.properties b/use-api/src/main/resources/application.properties
index 520d9b7fe..4a37a9cfe 100644
--- a/use-api/src/main/resources/application.properties
+++ b/use-api/src/main/resources/application.properties
@@ -4,7 +4,7 @@ spring.graphql.graphiql.enabled=true
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.main.allow-bean-definition-overriding=true
-server.port=8081
+server.port=8080
# /api-docs endpoint custom path
springdoc.api-docs.path=/docs
From deee6ae21166a51f59ab1a687e9b7d154e3eda4f Mon Sep 17 00:00:00 2001
From: husakki
Date: Tue, 27 May 2025 14:46:59 +0200
Subject: [PATCH 038/148] localhost 8080 no use anymore
---
.../java/org/tzi/use/UseAPIApplication.java | 2 +-
use-api/target/classes/application.properties | 4 ++--
.../classes/org/tzi/use/OpenApiConfig.class | Bin 955 -> 955 bytes
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/use-api/src/main/java/org/tzi/use/UseAPIApplication.java b/use-api/src/main/java/org/tzi/use/UseAPIApplication.java
index 9d2cb6670..f87877fcc 100644
--- a/use-api/src/main/java/org/tzi/use/UseAPIApplication.java
+++ b/use-api/src/main/java/org/tzi/use/UseAPIApplication.java
@@ -8,7 +8,7 @@
import org.tzi.use.model.UseClass;
import org.tzi.use.model.Operation;
import org.tzi.use.repository.ClassRepo;
-
+//localhost 8080 not in use anymore
@SpringBootApplication
public class UseAPIApplication {
public static void main(String[] args) {
diff --git a/use-api/target/classes/application.properties b/use-api/target/classes/application.properties
index 943c06f5f..4a37a9cfe 100644
--- a/use-api/target/classes/application.properties
+++ b/use-api/target/classes/application.properties
@@ -4,7 +4,7 @@ spring.graphql.graphiql.enabled=true
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.main.allow-bean-definition-overriding=true
-server.port=8090
+server.port=8080
# /api-docs endpoint custom path
springdoc.api-docs.path=/docs
@@ -17,4 +17,4 @@ spring.data.mongodb.username=rootuser
spring.data.mongodb.password=rootpass
spring.data.mongodb.database=use-database
spring.data.mongodb.port=27017
-spring.data.mongodb.host=localhost
\ No newline at end of file
+spring.data.mongodb.host=localhost
diff --git a/use-api/target/classes/org/tzi/use/OpenApiConfig.class b/use-api/target/classes/org/tzi/use/OpenApiConfig.class
index 88c2463d309b3be2f286196f0340fd5ea91d8e65..b08c0e1784d02e562e1d4d5c67021edb7f289416 100644
GIT binary patch
delta 13
UcmdnZzMFjmA2XxHWPau~039s@&;S4c
delta 13
UcmdnZzMFjmA2XxnWPau~039*|(EtDd
From eb20fcb987ac4d3f09374a79a85df301d692761b Mon Sep 17 00:00:00 2001
From: husakki
Date: Wed, 18 Jun 2025 08:50:32 +0200
Subject: [PATCH 039/148] Update use-webapi.postman_collection.json
maven testintegration
---
.../postman_collection/use-webapi.postman_collection.json | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename use-api/src/{main/resources => it/java/org.tzi.use}/postman_collection/use-webapi.postman_collection.json (100%)
diff --git a/use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json b/use-api/src/it/java/org.tzi.use/postman_collection/use-webapi.postman_collection.json
similarity index 100%
rename from use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json
rename to use-api/src/it/java/org.tzi.use/postman_collection/use-webapi.postman_collection.json
From 3be71e6ec5fb898ca9471f11b4ce2f5d0cbc4692 Mon Sep 17 00:00:00 2001
From: husakki
Date: Wed, 18 Jun 2025 08:50:49 +0200
Subject: [PATCH 040/148] operation renaming
---
.github/workflows/maven.yml | 2 +-
.../main/java/org/tzi/use/MClassFacade.java | 5 ++--
.../java/org/tzi/use/model/Operation.java | 23 +++++++++----------
3 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index c098065fc..ec87b62f1 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -92,7 +92,7 @@ jobs:
- name: Run Postman tests
run: |
npm install -g newman
- newman run use-api/src/main/resources/postman_collection/use-webapi.postman_collection.json
+ newman run use-api/src/it/java/org.tzi.use/postman_collection/use-webapi.postman_collection.json
# Cleanup
diff --git a/use-api/src/main/java/org/tzi/use/MClassFacade.java b/use-api/src/main/java/org/tzi/use/MClassFacade.java
index 7d0162495..cac763d90 100644
--- a/use-api/src/main/java/org/tzi/use/MClassFacade.java
+++ b/use-api/src/main/java/org/tzi/use/MClassFacade.java
@@ -3,10 +3,8 @@
import org.tzi.use.api.UseApiException;
import org.tzi.use.api.UseModelApi;
import org.tzi.use.model.*;
-import org.tzi.use.uml.mm.MAttribute;
import org.tzi.use.uml.mm.MClass;
import org.tzi.use.uml.mm.MInvalidModelException;
-import org.tzi.use.uml.mm.MOperation;
public class MClassFacade {
@@ -18,8 +16,9 @@ public static UseClass createMClass(UseClass aClass) throws UseApiException, MIn
useModelApi.createAttribute(mClass.name(), attribute.getName_attr(), attribute.getType());
}
+ //parameter liste wird noch nicht unterstützt. -> daher new String [][]
for (Operation operation : aClass.getOperations()) {
- useModelApi.createOperation(mClass.name(), operation.getHead(), new String[0][0], operation.getBody());
+ useModelApi.createOperation(mClass.name(), operation.getName(), new String[0][0], operation.getBody());
}
for(PrePostCondition prePostCondition : aClass.getPrePostConditions()) {
diff --git a/use-api/src/main/java/org/tzi/use/model/Operation.java b/use-api/src/main/java/org/tzi/use/model/Operation.java
index 59c452701..de9da7b68 100644
--- a/use-api/src/main/java/org/tzi/use/model/Operation.java
+++ b/use-api/src/main/java/org/tzi/use/model/Operation.java
@@ -1,13 +1,12 @@
package org.tzi.use.model;
-import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class Operation {
@Id
- private String head;
+ private String name;
private String body;
@@ -26,12 +25,12 @@ public void setBody(String body) {
this.body = body;
}
- public String getHead() {
- return head;
+ public String getName() {
+ return name;
}
- public void setHead(String head) {
- this.head = head;
+ public void setName(String name) {
+ this.name = name;
}
// public UseClass getMclass() {
@@ -43,16 +42,16 @@ public void setHead(String head) {
// }
//Constructors
- public Operation(String head, String body) {
- this.head = head;
+ public Operation(String name, String body) {
+ this.name = name;
this.body = body;
}
- public Operation(String head, UseClass mclass) {
- this.head = head;
+ public Operation(String name, UseClass mclass) {
+ this.name = name;
// this.mclass = mclass;
}
- public Operation(String head) {
- this.head = head;
+ public Operation(String name) {
+ this.name = name;
}
public Operation() {}
From 4f14f28e68fcda830fb4c4aace4b789660b81f4f Mon Sep 17 00:00:00 2001
From: husakki
Date: Thu, 25 Sep 2025 15:25:10 +0200
Subject: [PATCH 041/148] Add Dockerfile and clean build artifacts
Added a Dockerfile for containerizing the use-api service. Removed all build output, configuration, and test artifacts from the target directory to clean up the repository.
---
use-api/Dockerfile | 20 +
use-api/target/classes/application.properties | 20 -
use-api/target/classes/docker-compose.yml | 28 -
.../classes/org/tzi/use/MClassFacade.class | Bin 2756 -> 0 bytes
.../classes/org/tzi/use/OpenApiConfig.class | Bin 955 -> 0 bytes
.../org/tzi/use/UseAPIApplication.class | Bin 2380 -> 0 bytes
.../classes/org/tzi/use/model/Attribute.class | Bin 1257 -> 0 bytes
.../classes/org/tzi/use/model/Invariant.class | Bin 1193 -> 0 bytes
.../classes/org/tzi/use/model/Operation.class | Bin 1273 -> 0 bytes
.../org/tzi/use/model/PrePostCondition.class | Bin 1505 -> 0 bytes
.../classes/org/tzi/use/model/UseClass.class | Bin 4048 -> 0 bytes
.../org/tzi/use/repository/ClassRepo.class | Bin 339 -> 0 bytes
.../rest/controller/RestApiController.class | Bin 2395 -> 0 bytes
.../use/rest/services/MClassRService.class | Bin 1530 -> 0 bytes
.../use-webapi.postman_collection.json | 484 ------------------
use-api/target/maven-archiver/pom.properties | 3 -
.../compile/default-compile/createdFiles.lst | 11 -
.../compile/default-compile/inputFiles.lst | 12 -
.../default-testCompile/createdFiles.lst | 1 -
.../default-testCompile/inputFiles.lst | 1 -
.../2025-01-20T09-17-37_242.dumpstream | 5 -
.../org/tzi/use/RestApiControllerTest.class | Bin 312 -> 0 bytes
use-api/target/use-api-7.1.1.jar | Bin 16808 -> 0 bytes
23 files changed, 20 insertions(+), 565 deletions(-)
create mode 100644 use-api/Dockerfile
delete mode 100644 use-api/target/classes/application.properties
delete mode 100644 use-api/target/classes/docker-compose.yml
delete mode 100644 use-api/target/classes/org/tzi/use/MClassFacade.class
delete mode 100644 use-api/target/classes/org/tzi/use/OpenApiConfig.class
delete mode 100644 use-api/target/classes/org/tzi/use/UseAPIApplication.class
delete mode 100644 use-api/target/classes/org/tzi/use/model/Attribute.class
delete mode 100644 use-api/target/classes/org/tzi/use/model/Invariant.class
delete mode 100644 use-api/target/classes/org/tzi/use/model/Operation.class
delete mode 100644 use-api/target/classes/org/tzi/use/model/PrePostCondition.class
delete mode 100644 use-api/target/classes/org/tzi/use/model/UseClass.class
delete mode 100644 use-api/target/classes/org/tzi/use/repository/ClassRepo.class
delete mode 100644 use-api/target/classes/org/tzi/use/rest/controller/RestApiController.class
delete mode 100644 use-api/target/classes/org/tzi/use/rest/services/MClassRService.class
delete mode 100644 use-api/target/classes/postman_collection/use-webapi.postman_collection.json
delete mode 100644 use-api/target/maven-archiver/pom.properties
delete mode 100644 use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
delete mode 100644 use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
delete mode 100644 use-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
delete mode 100644 use-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
delete mode 100644 use-api/target/surefire-reports/2025-01-20T09-17-37_242.dumpstream
delete mode 100644 use-api/target/test-classes/org/tzi/use/RestApiControllerTest.class
delete mode 100644 use-api/target/use-api-7.1.1.jar
diff --git a/use-api/Dockerfile b/use-api/Dockerfile
new file mode 100644
index 000000000..e98fbf05f
--- /dev/null
+++ b/use-api/Dockerfile
@@ -0,0 +1,20 @@
+FROM maven:3.8-eclipse-temurin-17 AS builder
+
+WORKDIR /app
+
+COPY pom.xml .
+
+COPY src ./src
+
+RUN mvn package -DskipTests
+
+
+FROM eclipse-temurin:17-jre-alpine
+
+WORKDIR /app
+
+COPY --from=builder /app/target/*.jar app.jar
+
+EXPOSE 8080
+
+ENTRYPOINT ["java", "-jar", "app.jar"]
\ No newline at end of file
diff --git a/use-api/target/classes/application.properties b/use-api/target/classes/application.properties
deleted file mode 100644
index 4a37a9cfe..000000000
--- a/use-api/target/classes/application.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-spring.application.name=usewebapi
-spring.jpa.hibernate.ddl-auto=create-drop
-spring.graphql.graphiql.enabled=true
-spring.h2.console.enabled=true
-spring.h2.console.path=/h2-console
-spring.main.allow-bean-definition-overriding=true
-server.port=8080
-
-# /api-docs endpoint custom path
-springdoc.api-docs.path=/docs
-springdoc.swagger-ui.operationsSorter=method
-springdoc.swagger-ui.filter=true
-
-# mongoDB connection
-spring.data.mongodb.authentication-database=admin
-spring.data.mongodb.username=rootuser
-spring.data.mongodb.password=rootpass
-spring.data.mongodb.database=use-database
-spring.data.mongodb.port=27017
-spring.data.mongodb.host=localhost
diff --git a/use-api/target/classes/docker-compose.yml b/use-api/target/classes/docker-compose.yml
deleted file mode 100644
index 9222b6e7c..000000000
--- a/use-api/target/classes/docker-compose.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-version: "3.8"
-services:
- mongodb:
- image: mongo
- container_name: mongodb
- ports:
- - 27017:27017
- volumes:
- - data:/data
- environment:
- - MONGO_INITDB_ROOT_USERNAME=rootuser
- - MONGO_INITDB_ROOT_PASSWORD=rootpass
- mongo-express:
- image: mongo-express
- container_name: mongo-express
- restart: always
- ports:
- - 8081:8081
- environment:
- - ME_CONFIG_MONGODB_ADMINUSERNAME=rootuser
- - ME_CONFIG_MONGODB_ADMINPASSWORD=rootpass
- - ME_CONFIG_MONGODB_SERVER=mongodb
-volumes:
- data: {}
-
-networks:
- default:
- name: mongodb_network
\ No newline at end of file
diff --git a/use-api/target/classes/org/tzi/use/MClassFacade.class b/use-api/target/classes/org/tzi/use/MClassFacade.class
deleted file mode 100644
index f25b458e8e4abe56b506ae8640eac6ef651cc46a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2756
zcmbVONpl-T6#m+hJ+{nOD?U
z$xvc)L5-a^l$4%Ta^nRx1POrk>%Bp2zDsnB7%9N#5V&Bc8@c=_mvzEQ8*s)1S7_5ngt*(2e
zFrpZiaEjx!2*iI35-o5^XH*6bLNg5spXk7(=@q
z6W1}rvQJ#T3N#1o~-?Ne6vS&+dpTKf^JN8TZPrb%xEmy0V|Idhh-+xXvsYp5sUg8M-MT^F?J|
zH_QoL%c>PMW*LrG2i(q$T3`q%%yT?1uGv9`To>Y{6q^eii;f1)+7idISQ9zox)k6G
z94jKp8&!iG3AtY4xQLhO<*+lP);+`JyHc%Qq5745Ui(^?mUgdj$W98)Xj^hol{J%6
zDC3(#E+T|96pmNLcJ$~Yxwnc^w9#6%sHkhC^v14zqGK@q#U~flAcr(9dlc7bFBdcCB^!wP^
zs}zLQo#Nn+b#tB0*ioo?gBVWun6FDF@}fHVGMPU8bCDzO*9(x6r+De|BXY}
z!M?Y)O&Y~EsC$=aaEE6X*
zhS^iQILh!1PSWHA!_SC}1f#>d7@{T_EF&g{2g^9S{Oz5;i1oOaHSDlPJ*=@n;5Upn
z2<}7~Q^dVN+-JSqxWi3(xO0N_f*8(=;l(mmiT?-jFM0V0_+X>3C?I_MLs6LA_R(M^5q0F|F#+
xh=TMntq-I5Hu@w;5~30Y{zdc_TCB+#XL8n=#PJC+nuz%+J||0G(o+Mz`VaiL`o;hN
diff --git a/use-api/target/classes/org/tzi/use/OpenApiConfig.class b/use-api/target/classes/org/tzi/use/OpenApiConfig.class
deleted file mode 100644
index b08c0e1784d02e562e1d4d5c67021edb7f289416..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 955
zcma)*&2Q5%6u_U?c7<-xG8iy6Soj(%VsQ(XX&}_9gRN4uRx4COoSe)}y(V@QJDuRa
z;)H}IF1ztZA)eD}hy&UZ={fKF7yJ3w?;k$_pb6Cy%t5XQ`9&zeJb}tFn=l$N8Pbk_
z%mYJU{*92ryd{v^toDm=g}{nRLTbJWnrcovV=kLx(Nc0CLIU}gI^qP%o{;a#>xeP+y?q0j_Yz5iBxO`z0MX%g`FA}jMxKiA?S&|xZ#hH5u@^{<2d|-bQbFgDx$blkIy&%;_(KZT9DHvfa
zU-4t_ozv{L2`n6O9VB9GYZBPVxVvp|Nk76A^*+{gh`ecjjsg*~!+B#eSNEu06KmgeN-V
z&DGr+>X8Vz)abbsj5m!&nDSoN+j{BNobv*?G(m*=(3r8_p)?d`nEGy@Vmn1Dh_Yew
zBjwYWX@h6g>U2M~5B3m3^Tcuya4*=ASs?9Y2^PasBNpNA#v%7piSxN^0kD5$r*WvX
z+1ajb*We)(@gmrV;EPuQB
z9-{9C<}5YfCRV+rVHs{~xC3_^u!8n`8dhOV!+m(5VI7os_BbO30BmZoAfp;O?ET8n+pB~
z|BQaB(iz6jj=#zAxtlcEwo3;mlg*xU&)a>@bI;A+|Gs_$AdjC+^r7FtKoWx(5=gy}
zyV9ylr)I5IUZ`pyF!aE7>|jBlKRaDEkPx`!dNnKf#kN|$vYz-VzqXWbHtTj(2Da;%
zFfn2vnZzl)CorRp{ibI-wQWx})X%QBV^v%?uu7pa;>i?V%Mqw#i@h=mb?N)LXAw;)
z(7|%k#kj~-*9p|iz$&=Twq0v^vQk%(6jbZwT$;O2=?YH^tYyPU2OIKK)AjAZ^s)EGCQY@%sW7j+f6)hkzt-
zUBKK>eh`ZDCMI!HN6ZSW#zZ`X?hzz%F^k>WbJOJ!%;1)R*(Bz0Ti|N6s<=iGR$uNa
zfg906+Eiu}d$j7PXkTD&1V)RtqgGmtit;uzX9Utkw<_yp>DgNDC(k7KN**NBwxh}mL1D%Ok=Au4v0>f3!ea%0C$wL|Aw$7yEBw%1SRN3}z&3ngj
zgOCNxG#3UqdJqqei|m?Oi%L3-b*e5Kl`T1?OPRVOu<;J3BsRs-Lz4Gut%h;}pY0W}
z{-+P8&mkm^@`%uxi4C%Ww
z|3nX7$EjWBW9e+wl|NN<-JMo57dec_2izgYjaN+-HGlWTcFL1|qf?<1xghKHk{u{w
zom|o*Jsfn3t^Z!&`Y}x6wrAi6fy*bGa`Lyaz%@3Zk5>{f0HJSUJ}pWXe+7RBXZ9d|
z=Sv^%@Tr%<%j*L^lWhac<3mcrxQmad(a!g1t?d$NW9APGKkfPJOCK0z(o`fyf*v1J
z4}5~tw9qkfjG%3eTd!%4-}o9W;cV!hX`6IPpfNtheLCi7txJ8tyVleU>jeFk+Ci?(
z?IXRJKAX<$;r#MGCN|TT_HbooW*?KA>8aVdJ>2*c(|!00llKRD)u#y(Fvgu{_&JYR
z-e?+$yX~N1a*Dh$?%{K$PZHiSe8J=yoa29
zP!%{gMr^nDwPyt;pPInf4T1d1>Yl)*mxI6>U+VuPD2WmcEUmA>F37PsxlgfHP=mn^#mOE-2}Xi$nYVI4rE8MPktD5!%kaz
zVZ>ol{XSjfv(Ov(IcATb6}{_s4kJ3I$3j#a6^tt9GG{``}|ulWH_+LTX|S4}Du;f>W1Wv%3)Wn|#nj
zV&a1z;71wH>~5fituJ%uPVPDP+;iv8-(SB0oWdv|g>(*?B36(Us9aeS%d{&w?lTTq_u>#1H59&iOIevLFwt{4I}W?9B9#+2Sy
z7`Y?HRlf7z@T@a?#wZw9+CL$_hh=wo>MsVuGALs^yoE*B!ChvWpb-<;tjzGOrU}}I
zQ{>u5Q@ilQK1TJHp4@WQvE-H!WQ&sp${K0R`@%8Fw}r
zBk4bo`^KUav~)cgcuSIfKM`D71UC}FRqQ5ou6$kSyqgH#T29rU8L)fTt~NXJ?3gO*OSnR
FgMZd$xoH3Z
diff --git a/use-api/target/classes/org/tzi/use/model/Operation.class b/use-api/target/classes/org/tzi/use/model/Operation.class
deleted file mode 100644
index 0b536489562e3528d7e9bd640580dd101e366a53..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1273
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
Pkg_#Ci%u?i=vcsiU65ma
diff --git a/use-api/target/classes/org/tzi/use/repository/ClassRepo.class b/use-api/target/classes/org/tzi/use/repository/ClassRepo.class
deleted file mode 100644
index f1861cd2f4f8a95834fbafe99b4f2c2ee92fe940..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 339
zcmbtQU1|a`5dNaAt6L~Nf+y%4Af-?WecB?pc!21pA=}-JB-x6-crPD3fQJ&3EsFT+
z!^|)P-`^aLyFGvpJSFHcjEz;~H=0@}$;zd1+8ev3&q_Eq4SRwIhL=+O393Y+XfiM5
z!Y3Fo@Q8Iws~h!WMJ-px{!$^lpxQLb6!UAs?|6!Y{{jr7T&qU-)=GwLb}PWMJILQU
z@Htg&3R%(2$u1MWlFEJb&fhshnw!=x4ef!M%IhYuauzBmf9
z{;D+7A)R)nKcN34f1=apWMgCksXz3Cw7YkEd%Mr>-v0g1AAbSJU?+|~^lKQs)V+6XuZP%+A!7rB4^rhiRKQJn;
z6L_v|OV21$&NQrSXGLJNp0!QiFG=sfsz`yw{5uBx)}C(^Le*khHx(xK1_o0t)py)d4~45}2EL6f*>*juO@T=fY5yrsEsW%}U^U
zM~2xsU}TzsduVyGni3dL=m?DGEk{0W*2~h{Hff#}oOdgxy=!`wlG}>|!3&G`8C^y5
zpDoF2Mihc!QAwU(B7_%~OLzJ6Y^-F}9F~tqul9OBxq7AnSG$}(Q_Sg9nm64&*Q-NW
zHp-S$jY7D=aLh(SrCwl=<wNmFwsbiyT`N}>)YM0L5{{ulgtI=mrWp1VC
z%x$@TBy~frlnKmqx7U`b-sC`fU47R3Ek*fLlap!9tsc?4c*$*g75T_gjWzYo$hxDt
z{-Q2EulkgQ(}|bj13b(L3vgDbkx9BjX^8Y5X+J6FF8^OqGDrpK;NlyIU&-|0KL2VP
zn84TkD+5%(1Efd=R`HNV)ZrCMYHwumH)zKg{T-KIQH+|n8Zj}_Hjxf>z6re=qk(Vv
zW%eL^tdYxN9Rs2Hx1{~l%_;Ls$GBGb6O%vOdW}!sVD?o@I7Z?%ZbjuU&d7J$a%hS(
zmk&8Od*>LsqAOVDj*5APuz?SE4Aa!Qfhn%cVV3%H)LI~Ti7=Qn(TNe293C;$DU4$S
zkIBu4+!J#5Lhd_qbiN(5;=bnzfjn2o(7&T$ep7?NZy7B}3LQwEb|Bfr7WFj+^fNMj
OD2D%1sH)Pm4g3q%yraGV
diff --git a/use-api/target/classes/org/tzi/use/rest/services/MClassRService.class b/use-api/target/classes/org/tzi/use/rest/services/MClassRService.class
deleted file mode 100644
index 263915a67031a004dfc2628aeb5f68f26748a465..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1530
zcmaJ>T~iZD6g?dx1LJ^-py0<6Q859vadllah(=acs}iw@V(E+3Oq$p_nMqA|(D+aG
zUuc!3qE)*-?~k&)JqdBLy1ew~?R(BW_ul^Z>!-f~lyJvI1_KVV9`<06VgGZnC3qmh
zI$zy*E`7r=xTr#9mKX-|g>@H07Qoht(25Z&Mo?)MF
z8Li1?q?L){Hp5IGP~5xW2@h*obTN(z2ZuZy#w5d$G+aMzhS9n-_e4WJZ6rtxt_V_aj3`3hLtletgtx>r7l*3L=NUj8L6a*C7j>w4sWg<}|f@`hNsD@luT5SZf6o!!zRvOK4CCR#O+H7pb6vE3W
ze!(}S2sPgnzAX(ddJlN1WuliVmNjylU8YKR-fJ~BWc)yodm>Sed=adRSlNB|
zFl(ME!kha~mHmH>5`t?L*=dtuvC|U_$NIeVmma+vsT$$GsEB44+wCPxJ18*}(rIlq
z0^Vrw%H42F1gciC?boxXW~DkNX)DWR>K7`Ls;Y;=v|@^L;Rmr7cjL8WBdSKN*q1BH
z>U6LZ+D=oRw`ECH{nLzSBV!qvc2n|h4;OKQx<5mI6{C^*pXN)n8>IO+ng?j6kBi33
zwBs~0n)l3o0DDV|41TB4UW43Rq0#FY;3}@sj-f~=ndEVsoLQiS`HyfO&Ar3O{CgbS
z##9FHG5r@tKI8P`u`?e~_$RsC#@P(MVEhfe8Ax!(kfrrF5t_gx{T?%zN-z&~{B|)3
z0gJd!*h|SvHiH|q7$l>c)JhDuaFNzFo=dc|)Ljd>jRgh^mJaH8Dk!%Lu$ 0) {\r",
- " responseJson.forEach((useClass) => {\r",
- " pm.expect(useClass).to.have.property('name_mclass');\r",
- " pm.expect(useClass.attributes).to.be.an('array');\r",
- " pm.expect(useClass.operations).to.be.an('array');\r",
- " });\r",
- " }\r",
- "});\r",
- ""
- ],
- "type": "text/javascript",
- "packages": {}
- }
- }
- ],
- "request": {
- "method": "GET",
- "header": [],
- "url": "localhost:8080/classes"
- },
- "response": []
- },
- {
- "name": "basic POST success",
- "event": [
- {
- "listen": "test",
- "script": {
- "exec": [
- "pm.test(\"Status code is 201\", function () {\r",
- " pm.response.to.have.status(201);\r",
- "});\r",
- "\r",
- "pm.test(\"Response contains the created UseClass object\", function () {\r",
- " const responseJson = pm.response.json();\r",
- " pm.expect(responseJson).to.be.an('object');\r",
- " pm.expect(responseJson).to.have.property('name_mclass');\r",
- " pm.expect(responseJson).to.have.property('attributes').that.is.an('array');\r",
- " pm.expect(responseJson).to.have.property('operations').that.is.an('array');\r",
- "});\r",
- "\r",
- ""
- ],
- "type": "text/javascript",
- "packages": {}
- }
- }
- ],
- "request": {
- "method": "POST",
- "header": [],
- "body": {
- "mode": "raw",
- "raw": "{\r\n \"name_mclass\": \"ExampleClass\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"Attribute1\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"Operation1\",\r\n \"body\": null\r\n }\r\n ]\r\n}",
- "options": {
- "raw": {
- "language": "json"
- }
- }
- },
- "url": "localhost:8080/class"
- },
- "response": []
- },
- {
- "name": "basic POST fail",
- "event": [
- {
- "listen": "test",
- "script": {
- "exec": [
- "pm.test(\"Status code is 400\", function () {\r",
- " pm.response.to.have.status(400);\r",
- "});\r",
- "\r",
- "pm.test(\"Error message is returned for invalid model\", function () {\r",
- " const responseText = pm.response.text(); // Fixed variable name\r",
- " pm.expect(responseText).to.be.a('string');\r",
- " pm.expect(responseText).to.include(\"A class must be named\"); // Updated error message\r",
- "});\r",
- "// Add a test to check the length of the response data\r",
- "pm.test(\"Response data length is greater than 0\", function () {\r",
- " const responseData = pm.response.text(); \r",
- " pm.expect(responseData.length).to.be.greaterThan(0, \"Response data should not be empty\");\r",
- "});\r",
- "\r",
- "pm.test(\"Response time is within an acceptable range\", function () {\r",
- " pm.expect(pm.response.responseTime).to.be.below(1000);\r",
- "});\r",
- "\r",
- ""
- ],
- "type": "text/javascript",
- "packages": {}
- }
- },
- {
- "listen": "prerequest",
- "script": {
- "exec": [
- ""
- ],
- "type": "text/javascript",
- "packages": {}
- }
- }
- ],
- "request": {
- "method": "POST",
- "header": [],
- "body": {
- "mode": "raw",
- "raw": "{\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"Attribute1\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"Operation1\",\r\n \"body\": null\r\n }\r\n ]\r\n}",
- "options": {
- "raw": {
- "language": "json"
- }
- }
- },
- "url": "localhost:8080/class"
- },
- "response": []
- },
- {
- "name": "duplicate class",
- "event": [
- {
- "listen": "test",
- "script": {
- "exec": [
- "pm.test(\"Status code is 400\", function () {\r",
- " pm.response.to.have.status(400);\r",
- "});\r",
- "\r",
- "pm.test(\"Body is correct\", function () {\r",
- " pm.response.to.have.body(\"Class name already exists\");\r",
- "});"
- ],
- "type": "text/javascript",
- "packages": {}
- }
- }
- ],
- "request": {
- "method": "POST",
- "header": [],
- "body": {
- "mode": "raw",
- "raw": "\r\n {\r\n \"name_mclass\": \"TestClass2\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }\r\n",
- "options": {
- "raw": {
- "language": "json"
- }
- }
- },
- "url": "localhost:8080/class"
- },
- "response": []
- },
- {
- "name": "duplicate attribute",
- "event": [
- {
- "listen": "test",
- "script": {
- "exec": [
- "pm.test(\"Status code is 400\", function () {\r",
- " pm.response.to.have.status(400);\r",
- "});\r",
- "\r",
- "pm.test(\"Body is correct\", function () {\r",
- " pm.response.to.have.body(\"Attribute creation failed!\");\r",
- "});"
- ],
- "type": "text/javascript",
- "packages": {}
- }
- }
- ],
- "request": {
- "method": "POST",
- "header": [],
- "body": {
- "mode": "raw",
- "raw": "\r\n {\r\n \"name_mclass\": \"TestClassDoubleAttr\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
- "options": {
- "raw": {
- "language": "json"
- }
- }
- },
- "url": "localhost:8080/class"
- },
- "response": []
- },
- {
- "name": "duplicate operation",
- "event": [
- {
- "listen": "test",
- "script": {
- "exec": [
- "pm.test(\"Status code is 400\", function () {\r",
- " pm.response.to.have.status(400);\r",
- "});\r",
- "\r",
- "pm.test(\"Body is correct\", function () {\r",
- " pm.response.to.have.body(\"Operation creation failed!\");\r",
- "});"
- ],
- "type": "text/javascript",
- "packages": {}
- }
- }
- ],
- "request": {
- "method": "POST",
- "header": [],
- "body": {
- "mode": "raw",
- "raw": "\r\n {\r\n \"name_mclass\": \"TestClassDupOperation\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n },\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
- "options": {
- "raw": {
- "language": "json"
- }
- }
- },
- "url": "localhost:8080/class"
- },
- "response": []
- },
- {
- "name": "no attribute name",
- "event": [
- {
- "listen": "test",
- "script": {
- "exec": [
- "pm.test(\"Status code is 400\", function () {\r",
- " pm.response.to.have.status(400);\r",
- "});\r",
- "\r",
- "pm.test(\"Body is correct\", function () {\r",
- " pm.response.to.have.body(\"Modelelement without name\");\r",
- "});"
- ],
- "type": "text/javascript",
- "packages": {}
- }
- }
- ],
- "request": {
- "method": "POST",
- "header": [],
- "body": {
- "mode": "raw",
- "raw": "\r\n {\r\n \"name_mclass\": \"TestClassNoAttrName\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
- "options": {
- "raw": {
- "language": "json"
- }
- }
- },
- "url": "localhost:8080/class"
- },
- "response": []
- },
- {
- "name": "no operation name",
- "event": [
- {
- "listen": "test",
- "script": {
- "exec": [
- "pm.test(\"Status code is 400\", function () {\r",
- " pm.response.to.have.status(400);\r",
- "});\r",
- "\r",
- "pm.test(\"Body is correct\", function () {\r",
- " pm.response.to.have.body(\"Operation name is required!\");\r",
- "});"
- ],
- "type": "text/javascript",
- "packages": {}
- }
- }
- ],
- "request": {
- "method": "POST",
- "header": [],
- "body": {
- "mode": "raw",
- "raw": "\r\n {\r\n \"name_mclass\": \"TestClassNoOperationName\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
- "options": {
- "raw": {
- "language": "json"
- }
- }
- },
- "url": "localhost:8080/class"
- },
- "response": []
- },
- {
- "name": "POST performance",
- "event": [
- {
- "listen": "prerequest",
- "script": {
- "exec": [
- "// Generate a unique name using an iteration counter and timestamp\r",
- "let iter = pm.info.iteration || 0;\r",
- "let uniqueName = `Class-${iter}-${Date.now()}`;\r",
- "\r",
- "pm.environment.set(\"uniqueName\", uniqueName);\r",
- "\r",
- "console.log(\"Generated unique name: \" + uniqueName);"
- ],
- "type": "text/javascript",
- "packages": {}
- }
- },
- {
- "listen": "test",
- "script": {
- "exec": [
- "pm.test(\"Response time is below 20ms\", function () {\r",
- " pm.expect(pm.response.responseTime).to.be.below(20);\r",
- "});\r",
- "\r",
- "pm.test(\"Response time is below 100ms\", function () {\r",
- " pm.expect(pm.response.responseTime).to.be.below(100);\r",
- "});"
- ],
- "type": "text/javascript",
- "packages": {}
- }
- }
- ],
- "request": {
- "method": "POST",
- "header": [],
- "body": {
- "mode": "raw",
- "raw": "\r\n {\r\n \"name_mclass\": \"{{uniqueName}}\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }\r\n {\r\n \"name_mclass\": \"TestClass2\",\r\n \"attributes\": [\r\n {\r\n \"name_attr\": \"name224\",\r\n \"type\": \"String\"\r\n },\r\n {\r\n \"name_attr\": \"name23\",\r\n \"type\": \"String\"\r\n }\r\n ],\r\n \"operations\": [\r\n {\r\n \"head\": \"123\",\r\n \"body\": null\r\n }\r\n ]\r\n }",
- "options": {
- "raw": {
- "language": "json"
- }
- }
- },
- "url": "localhost:8080/class"
- },
- "response": []
- }
- ]
-}
\ No newline at end of file
diff --git a/use-api/target/maven-archiver/pom.properties b/use-api/target/maven-archiver/pom.properties
deleted file mode 100644
index 4f8048af9..000000000
--- a/use-api/target/maven-archiver/pom.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-artifactId=use-api
-groupId=org.tzi.use
-version=7.1.1
diff --git a/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
deleted file mode 100644
index 34805f48f..000000000
--- a/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
+++ /dev/null
@@ -1,11 +0,0 @@
-org\tzi\use\model\UseClass.class
-org\tzi\use\OpenApiConfig.class
-org\tzi\use\graphql\services\MClassGService.class
-org\tzi\use\UseAPIApplication.class
-org\tzi\use\rest\controller\RestApiController.class
-org\tzi\use\model\Operation.class
-org\tzi\use\graphql\services\MClassGService$MClassInput.class
-org\tzi\use\MClassFacade.class
-org\tzi\use\rest\services\MClassRService.class
-org\tzi\use\model\Attribute.class
-org\tzi\use\repository\ClassRepo.class
diff --git a/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
deleted file mode 100644
index 5cab6737d..000000000
--- a/use-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ /dev/null
@@ -1,12 +0,0 @@
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\graphql\services\MClassGService.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\repository\AttributeRepo.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\repository\ClassRepo.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\UseAPIApplication.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\repository\OperationRepo.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\MClassFacade.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\model\Operation.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\rest\controller\RestApiController.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\rest\services\MClassRService.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\model\UseClass.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\model\Attribute.java
-D:\Programming\use_web_api\use\use-api\src\main\java\org\tzi\use\OpenApiConfig.java
diff --git a/use-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/use-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
deleted file mode 100644
index 37c3a61e1..000000000
--- a/use-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
+++ /dev/null
@@ -1 +0,0 @@
-org\tzi\use\RestApiControllerTest.class
diff --git a/use-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/use-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
deleted file mode 100644
index 57b820809..000000000
--- a/use-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
+++ /dev/null
@@ -1 +0,0 @@
-D:\Programming\use_web_api\use\use-api\src\test\java\org\tzi\use\RestApiControllerTest.java
diff --git a/use-api/target/surefire-reports/2025-01-20T09-17-37_242.dumpstream b/use-api/target/surefire-reports/2025-01-20T09-17-37_242.dumpstream
deleted file mode 100644
index e9d92f176..000000000
--- a/use-api/target/surefire-reports/2025-01-20T09-17-37_242.dumpstream
+++ /dev/null
@@ -1,5 +0,0 @@
-# Created at 2025-01-20T09:17:37.416
-Boot Manifest-JAR contains absolute paths in classpath 'D:\Programming\use_web_api\use\use-api\target\test-classes'
-Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-'other' has different root
-
diff --git a/use-api/target/test-classes/org/tzi/use/RestApiControllerTest.class b/use-api/target/test-classes/org/tzi/use/RestApiControllerTest.class
deleted file mode 100644
index aa928655fb58d279c790e89fe6f727c159e416d7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 312
zcmaiv!AiqG5QhIrlg6gi6py`?Uets804+i(^b{=A()%VZb;~weHX9GVl_$Z25737a
zXNyO{8TfbpZ(x@H^!@n-V2)vi2%Qx1013K;;atr|Z+>V>Vnv&Ja5VL*r%_E{0~Lf7iCJ(SF4X_#CWwvuKmoeusN
z#{NY&gh}!5EWPxw@_{2j389Zhc63OYd72Hbz=3vnNOJr{s(%`VQ9`yxiJ5hM
zV{HQp;(iD}M#}tPq~O6rm^lLN%^j@&HP9bYEDxk$z*2UOW`B^l$GMkqcDMM06yO&r
z7blZHNZwD)UwHSD|MwUP|BHr`iKDB9k%`kEj6Hs!YGY??@~7#*c_8m-VsGbU;cVyl
z>JLWH|DojM{0DJ@--#R9**ZJgSzDVp{y`J}cbdPMg@>+y0oDWGhqDdPR^RB}h>^2}
zo$W7%9(p+{Sm8fjZUb~R`IGRIe+q-YUq-OMF#g>W9$F#$vm#iT0ciij>3&36k{GSl
z8kAB!10)1Q0u%%UHW&bCZ*Og31iZf?Mtes)dlN@z3lpcHXg=FcW