From 21c072fe7a36e040ee597b04817b040286a5c520 Mon Sep 17 00:00:00 2001 From: Armin Wolf Date: Sat, 21 Mar 2020 01:37:09 +0100 Subject: [PATCH] huge clean up --- LinearRegressionTool/log4j/app.log | 4166 +++++++++++++++++ LinearRegressionTool/masterarbeit.properties | 4 - LinearRegressionTool/masterarbeit.xml | 182 - LinearRegressionTool/module_masterarbeit.xml | 177 - LinearRegressionTool/pom.xml | 20 +- LinearRegressionTool/src/main/java/App.java | 136 - .../src/main/java/de/wwwu/awolf/App.java | 111 + .../{ => de/wwwu/awolf}/model/Interval.java | 2 +- .../java/{ => de/wwwu/awolf}/model/Line.java | 22 +- .../{ => de/wwwu/awolf}/model/LineModel.java | 15 +- .../java/{ => de/wwwu/awolf}/model/Pair.java | 2 +- .../java/{ => de/wwwu/awolf}/model/Point.java | 21 +- .../model/communication/AlgorithmData.java | 27 + .../wwwu/awolf/model/communication/Data.java | 7 + .../model/communication/EvaluationData.java | 56 + .../awolf/model/communication/ExportData.java | 25 + .../model/communication/GeneratorData.java | 43 + .../awolf/model/communication/ImportData.java | 34 + .../model/communication/SubscriberType.java | 18 + .../awolf/model/communication/TypeData.java | 15 + .../awolf/presenter/AbstractPresenter.java | 206 + .../wwwu/awolf}/presenter/Presenter.java | 147 +- .../presenter/algorithms/Algorithm.java | 13 +- .../LeastMedianOfSquaresEstimator.java | 89 +- .../advanced/RepeatedMedianEstimator.java | 105 +- .../advanced/TheilSenEstimator.java | 79 +- .../NaivLeastMedianOfSquaresEstimator.java | 29 +- .../naiv/NaivRepeatedMedianEstimator.java | 48 +- .../naiv/NaivTheilSenEstimator.java | 37 +- .../evaluation/EvaluateAlgorithms.java | 273 +- .../PercentageErrorBasedMeasure.java | 12 +- .../evaluation/PictureProcessor.java | 30 +- .../evaluation/ScaleDependentMeasure.java | 10 +- .../evaluation/ScaledErrorBasedMeasure.java | 10 +- .../presenter/generator/DatasetGenerator.java | 70 +- .../awolf}/presenter/io/DataExporter.java | 37 +- .../awolf}/presenter/io/DataImporter.java | 65 +- .../presenter/util/BinomialCoeffizient.java | 2 +- .../YOrderLineComparatorBegin.java | 4 +- .../Comparators/YOrderLineComparatorEnd.java | 4 +- .../presenter/util/FastElementSelector.java | 6 +- .../presenter/util/IntersectionComputer.java | 21 +- .../presenter/util/IntersectionCounter.java | 22 +- .../de/wwwu/awolf/presenter/util/Logging.java | 40 + .../awolf}/presenter/util/RandomSampler.java | 29 +- .../{ => de/wwwu/awolf}/view/MainFrame.java | 67 +- .../{ => de/wwwu/awolf}/view/MenuBar.java | 14 +- .../view/custom/ButtonGroupAtLeastTwo.java | 2 +- .../view/custom/ColorColumnRenderer.java | 2 +- .../listener/DualityVisualizerListener.java | 4 +- .../view/listener/ExportDataListener.java | 6 +- .../view/listener/GenerateDataListener.java | 4 +- .../view/listener/ImportDataListener.java | 6 +- .../view/listener/PictureImportListener.java | 6 +- .../view/listener/StartAlgorithmListener.java | 12 +- .../wwwu/awolf}/view/panels/AboutPanel.java | 11 +- .../wwwu/awolf}/view/panels/DualityPanel.java | 37 +- .../awolf}/view/panels/EvaluationPanel.java | 59 +- .../wwwu/awolf}/view/panels/InfoPanel.java | 2 +- .../wwwu/awolf}/view/panels/PlotPanel.java | 19 +- .../awolf}/view/panels/tabs/LMSPanel.java | 2 +- .../wwwu/awolf}/view/panels/tabs/RMPanel.java | 2 +- .../wwwu/awolf}/view/panels/tabs/TSPanel.java | 2 +- .../awolf}/view/panels/tabs/TabPanel.java | 4 +- .../java/presenter/AbstractPresenter.java | 216 - .../presenter/io/EvalResultLatexExport.java | 105 - .../src/main/resources/log4j.properties | 14 + .../LeastMedianOfSquaresEstimatorTest.java | 14 +- .../advanced/TheilSenEstimatorTest.java | 15 +- .../util/FastElementSelectorTest.java | 7 +- .../util/IntersectionComputerTest.java | 12 +- .../util/IntersectionCounterTest.java | 8 +- 72 files changed, 5632 insertions(+), 1491 deletions(-) create mode 100644 LinearRegressionTool/log4j/app.log delete mode 100644 LinearRegressionTool/masterarbeit.properties delete mode 100644 LinearRegressionTool/masterarbeit.xml delete mode 100644 LinearRegressionTool/module_masterarbeit.xml delete mode 100644 LinearRegressionTool/src/main/java/App.java create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/App.java rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/model/Interval.java (98%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/model/Line.java (84%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/model/LineModel.java (90%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/model/Pair.java (97%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/model/Point.java (77%) create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/AlgorithmData.java create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/Data.java create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/EvaluationData.java create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/ExportData.java create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/GeneratorData.java create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/ImportData.java create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/SubscriberType.java create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/TypeData.java create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/AbstractPresenter.java rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/Presenter.java (64%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/algorithms/Algorithm.java (74%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/algorithms/advanced/LeastMedianOfSquaresEstimator.java (84%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/algorithms/advanced/RepeatedMedianEstimator.java (73%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/algorithms/advanced/TheilSenEstimator.java (77%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/algorithms/naiv/NaivLeastMedianOfSquaresEstimator.java (78%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/algorithms/naiv/NaivRepeatedMedianEstimator.java (73%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/algorithms/naiv/NaivTheilSenEstimator.java (68%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/evaluation/EvaluateAlgorithms.java (66%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/evaluation/PercentageErrorBasedMeasure.java (88%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/evaluation/PictureProcessor.java (85%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/evaluation/ScaleDependentMeasure.java (88%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/evaluation/ScaledErrorBasedMeasure.java (89%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/generator/DatasetGenerator.java (67%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/io/DataExporter.java (55%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/io/DataImporter.java (58%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/util/BinomialCoeffizient.java (94%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/util/Comparators/YOrderLineComparatorBegin.java (82%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/util/Comparators/YOrderLineComparatorEnd.java (82%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/util/FastElementSelector.java (94%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/util/IntersectionComputer.java (92%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/util/IntersectionCounter.java (92%) create mode 100644 LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Logging.java rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/presenter/util/RandomSampler.java (66%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/MainFrame.java (92%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/MenuBar.java (89%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/custom/ButtonGroupAtLeastTwo.java (98%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/custom/ColorColumnRenderer.java (96%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/listener/DualityVisualizerListener.java (90%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/listener/ExportDataListener.java (91%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/listener/GenerateDataListener.java (96%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/listener/ImportDataListener.java (90%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/listener/PictureImportListener.java (90%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/listener/StartAlgorithmListener.java (85%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/panels/AboutPanel.java (85%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/panels/DualityPanel.java (90%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/panels/EvaluationPanel.java (86%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/panels/InfoPanel.java (98%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/panels/PlotPanel.java (91%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/panels/tabs/LMSPanel.java (98%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/panels/tabs/RMPanel.java (98%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/panels/tabs/TSPanel.java (96%) rename LinearRegressionTool/src/main/java/{ => de/wwwu/awolf}/view/panels/tabs/TabPanel.java (97%) delete mode 100644 LinearRegressionTool/src/main/java/presenter/AbstractPresenter.java delete mode 100644 LinearRegressionTool/src/main/java/presenter/io/EvalResultLatexExport.java create mode 100644 LinearRegressionTool/src/main/resources/log4j.properties rename LinearRegressionTool/src/test/java/{ => de/wwwu/awolf}/presenter/algorithms/advanced/LeastMedianOfSquaresEstimatorTest.java (89%) rename LinearRegressionTool/src/test/java/{ => de/wwwu/awolf}/presenter/algorithms/advanced/TheilSenEstimatorTest.java (79%) rename LinearRegressionTool/src/test/java/{ => de/wwwu/awolf}/presenter/util/FastElementSelectorTest.java (83%) rename LinearRegressionTool/src/test/java/{ => de/wwwu/awolf}/presenter/util/IntersectionComputerTest.java (85%) rename LinearRegressionTool/src/test/java/{ => de/wwwu/awolf}/presenter/util/IntersectionCounterTest.java (91%) diff --git a/LinearRegressionTool/log4j/app.log b/LinearRegressionTool/log4j/app.log new file mode 100644 index 0000000..45e471c --- /dev/null +++ b/LinearRegressionTool/log4j/app.log @@ -0,0 +1,4166 @@ +2020-03-20 20:56:15 INFO root:14 - ---- Datasetgröße: 10000 ---- +2020-03-20 20:56:32 INFO root:14 - ---- Datasetgröße: 100 ---- +2020-03-20 20:56:57 INFO root:14 - === S T A R T - naiv L M S === +2020-03-20 20:56:57 INFO root:14 - === S T A R T - naiv T S === +2020-03-20 20:56:57 INFO root:14 - === S T A R T - naiv R M === +2020-03-20 20:56:57 INFO root:14 - === S T A R T - L M S === +2020-03-20 20:56:57 INFO root:14 - === S T A R T - R M === +2020-03-20 20:58:42 INFO root:14 - Zeit: 105 +2020-03-20 21:02:16 INFO root:14 - Zeit: 319 +2020-03-20 21:05:52 INFO root:14 - Informationen zu dem aktuellen Modell +2020-03-20 21:05:52 INFO root:14 - Zeit: 0 +2020-03-20 21:05:52 INFO root:14 - Anzahl der Geraden: 50. +2020-03-20 21:05:52 INFO root:14 - Anzahl der Schnittpunkte: 243. +2020-03-20 21:05:52 INFO root:14 - Import war Erfolgreich! +2020-03-20 21:06:01 INFO root:14 - === S T A R T - L M S === +2020-03-20 21:06:01 INFO root:14 - Zeit: 0 +2020-03-20 21:06:01 INFO root:14 - Least Median of Squares +2020-03-20 21:06:01 INFO root:14 - m: 5.0 +2020-03-20 21:06:01 INFO root:14 - b: -0.0 +2020-03-20 21:06:01 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-20 21:06:09 INFO root:14 - === S T A R T - R M === +2020-03-20 21:06:09 INFO root:14 - Zeit: 0 +2020-03-20 21:06:09 INFO root:14 - Repeated Median Estimator +2020-03-20 21:06:09 INFO root:14 - m: -0.18156755422636522 +2020-03-20 21:06:09 INFO root:14 - b: 0.9084390842830787 +2020-03-20 21:06:09 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-20 21:06:12 INFO root:14 - Theil-Sen Estimator +2020-03-20 21:06:12 INFO root:14 - m: 3.077683537175257 +2020-03-20 21:06:12 INFO root:14 - b: -6.123233995736766E-17 +2020-03-20 21:06:12 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-20 23:28:50 INFO root:14 - Informationen zu dem aktuellen Modell +2020-03-20 23:28:50 INFO root:14 - Zeit: 0 +2020-03-20 23:28:50 INFO root:14 - Anzahl der Geraden: 20. +2020-03-20 23:28:50 INFO root:14 - Anzahl der Schnittpunkte: 28. +2020-03-20 23:28:50 INFO root:14 - Import war Erfolgreich! +2020-03-20 23:31:15 INFO root:14 - Informationen zu dem aktuellen Modell +2020-03-20 23:31:15 INFO root:14 - Zeit: 0 +2020-03-20 23:31:15 INFO root:14 - Anzahl der Geraden: 20. +2020-03-20 23:31:15 INFO root:14 - Anzahl der Schnittpunkte: 28. +2020-03-20 23:31:15 INFO root:14 - Import war Erfolgreich! +2020-03-20 23:31:47 INFO root:14 - === S T A R T - L M S === +2020-03-20 23:31:47 INFO root:14 - Zeit: 0 +2020-03-20 23:33:27 INFO root:14 - Informationen zu dem aktuellen Modell +2020-03-20 23:33:27 INFO root:14 - Zeit: 0 +2020-03-20 23:33:27 INFO root:14 - Anzahl der Geraden: 40. +2020-03-20 23:33:27 INFO root:14 - Anzahl der Schnittpunkte: 153. +2020-03-20 23:33:27 INFO root:14 - Import war Erfolgreich! +2020-03-21 00:09:23 INFO root:14 - Informationen zu dem aktuellen Modell +2020-03-21 00:09:23 INFO root:14 - Zeit: 0 +2020-03-21 00:09:23 INFO root:14 - Anzahl der Geraden: 20. +2020-03-21 00:09:23 INFO root:14 - Anzahl der Schnittpunkte: 28. +2020-03-21 00:09:23 INFO root:14 - Import war Erfolgreich! +2020-03-21 00:09:28 INFO root:14 - === S T A R T - L M S === +2020-03-21 00:09:28 INFO root:14 - Zeit: 0 +2020-03-21 00:09:28 INFO root:14 - Least Median of Squares +2020-03-21 00:09:28 INFO root:14 - Line m: 5.193647468297827, b: -83.99612917485712 +2020-03-21 00:09:28 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:09:32 INFO root:14 - === S T A R T - R M === +2020-03-21 00:09:32 INFO root:14 - Zeit: 0 +2020-03-21 00:09:32 INFO root:14 - Repeated Median Estimator +2020-03-21 00:09:32 INFO root:14 - Line m: -5.589874439508895, b: 81.75103544071222 +2020-03-21 00:09:32 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:09:34 INFO root:14 - Theil-Sen Estimator +2020-03-21 00:09:34 INFO root:14 - Line m: 33.36054323853146, b: -64.05612628591516 +2020-03-21 00:09:34 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:09:42 INFO root:14 - === S T A R T - L M S === +2020-03-21 00:09:42 INFO root:14 - Zeit: 0 +2020-03-21 00:09:42 INFO root:14 - Least Median of Squares +2020-03-21 00:09:42 INFO root:14 - Line m: 5.193647468297827, b: -83.99612917485712 +2020-03-21 00:09:42 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:10:03 INFO root:14 - Informationen zu dem aktuellen Modell +2020-03-21 00:10:03 INFO root:14 - Zeit: 0 +2020-03-21 00:10:03 INFO root:14 - Anzahl der Geraden: 50. +2020-03-21 00:10:03 INFO root:14 - Anzahl der Schnittpunkte: 28. +2020-03-21 00:10:03 INFO root:14 - Import war Erfolgreich! +2020-03-21 00:10:06 INFO root:14 - === S T A R T - L M S === +2020-03-21 00:10:06 INFO root:14 - Zeit: 0 +2020-03-21 00:10:06 INFO root:14 - Least Median of Squares +2020-03-21 00:10:06 INFO root:14 - Line m: 5.0, b: -0.0 +2020-03-21 00:10:06 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:10:08 INFO root:14 - === S T A R T - R M === +2020-03-21 00:10:08 INFO root:14 - Zeit: 0 +2020-03-21 00:10:08 INFO root:14 - Repeated Median Estimator +2020-03-21 00:10:08 INFO root:14 - Line m: 4.999999999999999, b: -1.7763568394002505E-15 +2020-03-21 00:10:08 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:10:09 INFO root:14 - Theil-Sen Estimator +2020-03-21 00:10:09 INFO root:14 - Line m: 5.000000000000001, b: 2.220446049250313E-16 +2020-03-21 00:10:09 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:12:20 INFO root:14 - Informationen zu dem aktuellen Modell +2020-03-21 00:12:20 INFO root:14 - Zeit: 0 +2020-03-21 00:12:20 INFO root:14 - Anzahl der Geraden: 20. +2020-03-21 00:12:20 INFO root:14 - Anzahl der Schnittpunkte: 28. +2020-03-21 00:12:20 INFO root:14 - Import war Erfolgreich! +2020-03-21 00:12:23 INFO root:14 - === S T A R T - L M S === +2020-03-21 00:12:23 INFO root:14 - Zeit: 0 +2020-03-21 00:12:23 INFO root:14 - Least Median of Squares +2020-03-21 00:12:23 INFO root:14 - Line m: -4.878233219479178, b: 37.31561217742825 +2020-03-21 00:12:23 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:12:25 INFO root:14 - === S T A R T - R M === +2020-03-21 00:12:25 INFO root:14 - Zeit: 0 +2020-03-21 00:12:25 INFO root:14 - Repeated Median Estimator +2020-03-21 00:12:25 INFO root:14 - Line m: 12.029775309330944, b: -95.17629860791192 +2020-03-21 00:12:25 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:12:26 INFO root:14 - Theil-Sen Estimator +2020-03-21 00:12:26 INFO root:14 - Line m: 11.317864110248502, b: 62.14701963392117 +2020-03-21 00:12:26 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:35 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:36 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:37 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:38 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:39 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:40 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:41 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:42 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:43 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:44 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:45 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:46 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:47 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:48 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:49 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:50 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:51 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:52 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:53 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:54 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:55 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:56 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:57 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:58 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:13:59 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:00 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:01 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:02 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:03 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:04 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:05 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:06 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:07 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:08 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:09 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:10 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:11 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:12 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:13 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:14 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Import war erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Informationen zu dem aktuellen Modell +2020-03-21 00:14:15 INFO root:14 - Anzahl der Geraden: 4000. +2020-03-21 00:14:15 INFO root:14 - Anzahl der Schnittpunkte: 0. +2020-03-21 00:14:15 INFO root:14 - Import war Erfolgreich! +2020-03-21 00:14:15 INFO root:14 - Zeit: 0 +2020-03-21 00:14:27 INFO root:14 - === S T A R T - L M S === +2020-03-21 00:14:33 INFO root:14 - Zeit: 6 +2020-03-21 00:14:33 INFO root:14 - Least Median of Squares +2020-03-21 00:14:33 INFO root:14 - Line m: 1.7371295809898633, b: -77.17710410775442 +2020-03-21 00:14:33 INFO root:14 - Berechnung wurde Erfolgreich durchgeführt. diff --git a/LinearRegressionTool/masterarbeit.properties b/LinearRegressionTool/masterarbeit.properties deleted file mode 100644 index 9d07d80..0000000 --- a/LinearRegressionTool/masterarbeit.properties +++ /dev/null @@ -1,4 +0,0 @@ -path.variable.kotlin_bundled=C\:\\Program Files\\JetBrains\\IntelliJ IDEA 2017.2.3\\plugins\\Kotlin\\kotlinc -path.variable.maven_repository=C\:\\Users\\Armin\\.m2\\repository -jdk.home.1.8=C\:/Program Files/Java/jdk1.8.0_121 -javac2.instrumentation.includeJavaRuntime=false \ No newline at end of file diff --git a/LinearRegressionTool/masterarbeit.xml b/LinearRegressionTool/masterarbeit.xml deleted file mode 100644 index 26e5d8a..0000000 --- a/LinearRegressionTool/masterarbeit.xml +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/LinearRegressionTool/module_masterarbeit.xml b/LinearRegressionTool/module_masterarbeit.xml deleted file mode 100644 index f1b6927..0000000 --- a/LinearRegressionTool/module_masterarbeit.xml +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/LinearRegressionTool/pom.xml b/LinearRegressionTool/pom.xml index 3ea164e..f05efb0 100644 --- a/LinearRegressionTool/pom.xml +++ b/LinearRegressionTool/pom.xml @@ -14,8 +14,8 @@ org.apache.maven.plugins maven-compiler-plugin - 1.8 - 1.8 + 11 + 11 @@ -33,7 +33,7 @@ - App + de.wwwu.awolf.App @@ -114,6 +114,20 @@ opencv 3.2.0-1 + + + log4j + log4j + 1.2.17 + + + + commons-cli + commons-cli + 1.4 + + + diff --git a/LinearRegressionTool/src/main/java/App.java b/LinearRegressionTool/src/main/java/App.java deleted file mode 100644 index e7c535d..0000000 --- a/LinearRegressionTool/src/main/java/App.java +++ /dev/null @@ -1,136 +0,0 @@ -import model.Line; -import model.LineModel; -import model.Point; -import presenter.Presenter; -import presenter.algorithms.advanced.LeastMedianOfSquaresEstimator; -import presenter.algorithms.advanced.RepeatedMedianEstimator; -import presenter.algorithms.advanced.TheilSenEstimator; -import presenter.algorithms.naiv.NaivLeastMedianOfSquaresEstimator; -import presenter.algorithms.naiv.NaivRepeatedMedianEstimator; -import presenter.algorithms.naiv.NaivTheilSenEstimator; -import presenter.generator.DatasetGenerator; -import presenter.util.IntersectionComputer; -import view.MainFrame; - -import javax.swing.*; -import java.awt.*; -import java.util.ArrayList; -import java.util.LinkedList; - -/** - * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. - * - * @Author: Armin Wolf - * @Email: a_wolf28@uni-muenster.de - * @Date: 28.05.2017. - */ -public class App { - - /** - * Laden der native Library für OpenCV - */ - static { - nu.pattern.OpenCV.loadShared(); - System.loadLibrary(org.opencv.core.Core.NATIVE_LIBRARY_NAME); - } - - /** - * Schriftart wird neu gesetzt - * - * @param f Schriftart - */ - private static void setUIFont(javax.swing.plaf.FontUIResource f) { - java.util.Enumeration keys = UIManager.getDefaults().keys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - Object value = UIManager.get(key); - if (value instanceof javax.swing.plaf.FontUIResource) { - UIManager.put(key, f); - } - } - } - - /** - * Das LookAndFeel wird neu gesetzt. - * - * @param view View Klasse - */ - private static void setLookAndFeel(JFrame view) { - String[] laf = {"com.jtattoo.plaf.aluminium.AluminiumLookAndFeel", - "com.jtattoo.plaf.acryl.AcrylLookAndFeel", - "com.jtattoo.plaf.aero.AeroLookAndFeel", - "com.jtattoo.plaf.fast.FastLookAndFeel", - "com.jtattoo.plaf.graphite.GraphiteLookAndFeel", - "com.jtattoo.plaf.luna.LunaLookAndFeel", - "com.jtattoo.plaf.noire.NoireLookAndFeel"}; - try { - UIManager.setLookAndFeel(laf[4]); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (UnsupportedLookAndFeelException e) { - e.printStackTrace(); - } - SwingUtilities.updateComponentTreeUI(view); - } - - /** - * Die Methode rechnet für gegebene Größen die Algorithmen durch und gibt jeweils die benötigte Zeit - */ - public static void benchmark() { - int[] sizes = {50, 500, 1000, 3000, 5000, 10000}; - - for (int i = 5; i < sizes.length; i++) { - System.out.println("---- Datasetgröße: " + sizes[i] + " ----"); - DatasetGenerator generator = new DatasetGenerator(); - LinkedList lines = generator.generateDataCloud(sizes[i]); - IntersectionComputer computer = new IntersectionComputer(lines); - ArrayList points = computer.compute(); - - NaivLeastMedianOfSquaresEstimator naivLms = new NaivLeastMedianOfSquaresEstimator(lines); - naivLms.run(); - - NaivRepeatedMedianEstimator naivRm = new NaivRepeatedMedianEstimator(lines); - naivRm.run(); - - NaivTheilSenEstimator naivTs = new NaivTheilSenEstimator(lines); - naivTs.run(); - - LeastMedianOfSquaresEstimator lms = new LeastMedianOfSquaresEstimator(lines, points); - lms.run(); - - RepeatedMedianEstimator rm = new RepeatedMedianEstimator(lines); - rm.run(); - - TheilSenEstimator ts = new TheilSenEstimator(lines, points); - ts.run(); - } - } - - /** - * Maim Methode - * - * @param args - */ - public static void main(String[] args) { - if (args.length > 0 && args[0] == "--benchmark") { - benchmark(); - } else { - final Presenter presenter = new Presenter(new LineModel(), null); - SwingUtilities.invokeLater(() -> { - //JFrame.setDefaultLookAndFeelDecorated(true); - MainFrame view = new MainFrame(); - setLookAndFeel(view); - setUIFont(new javax.swing.plaf.FontUIResource(new Font("SansSerif", Font.PLAIN, 12))); - - view.setPresenter(presenter); - view.setActionListeners(); - presenter.setView(view); - }); - } - } - -} diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/App.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/App.java new file mode 100644 index 0000000..e1b0df1 --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/App.java @@ -0,0 +1,111 @@ +package de.wwwu.awolf; + +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.LineModel; +import de.wwwu.awolf.model.Point; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.presenter.algorithms.advanced.LeastMedianOfSquaresEstimator; +import de.wwwu.awolf.presenter.algorithms.advanced.RepeatedMedianEstimator; +import de.wwwu.awolf.presenter.algorithms.advanced.TheilSenEstimator; +import de.wwwu.awolf.presenter.algorithms.naiv.NaivLeastMedianOfSquaresEstimator; +import de.wwwu.awolf.presenter.algorithms.naiv.NaivRepeatedMedianEstimator; +import de.wwwu.awolf.presenter.algorithms.naiv.NaivTheilSenEstimator; +import de.wwwu.awolf.presenter.generator.DatasetGenerator; +import de.wwwu.awolf.presenter.util.IntersectionComputer; +import de.wwwu.awolf.presenter.util.Logging; +import de.wwwu.awolf.view.MainFrame; +import org.apache.commons.cli.*; + +import javax.swing.*; +import java.awt.*; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. + * + * @Author: Armin Wolf + * @Email: a_wolf28@uni-muenster.de + * @Date: 28.05.2017. + */ +public class App { + + + /** + * Schriftart wird neu gesetzt + * + * @param f Schriftart + */ + private static void setUIFont(javax.swing.plaf.FontUIResource f) { + java.util.Enumeration keys = UIManager.getDefaults().keys(); + while (keys.hasMoreElements()) { + Object key = keys.nextElement(); + Object value = UIManager.get(key); + if (value instanceof javax.swing.plaf.FontUIResource) { + UIManager.put(key, f); + } + } + } + + /** + * Die Methode rechnet für gegebene Größen die Algorithmen durch und gibt jeweils die benötigte Zeit + */ + public static void benchmark() { + ExecutorService executorService = Executors.newFixedThreadPool(6); + + Logging.logInfo("---- Datasetgröße: " + 100 + " ----"); + DatasetGenerator generator = new DatasetGenerator(); + LinkedList lines = generator.generateDataCloud(10000); + IntersectionComputer computer = new IntersectionComputer(lines); + ArrayList points = computer.compute(); + + executorService.submit(new NaivLeastMedianOfSquaresEstimator(lines)); + executorService.submit(new NaivRepeatedMedianEstimator(lines)); + executorService.submit(new NaivTheilSenEstimator(lines)); + executorService.submit(new LeastMedianOfSquaresEstimator(lines, points)); + executorService.submit(new RepeatedMedianEstimator(lines)); + executorService.submit(new TheilSenEstimator(lines, points)); + } + + /** + * Maim Methode + * + * @param argv + */ + public static void main(String[] argv) { + + Options options = new Options(); + options.addOption("benchmark", "Start stresstest"); + options.addOption("", "default"); + CommandLineParser parser = new DefaultParser(); + + try { + CommandLine line = parser.parse(options, argv); // Sensitive + String[] args = line.getArgs(); + if (args.length > 0 && args[0].equals("benchmark")) { + benchmark(); + } else { + final Presenter presenter = new Presenter(new LineModel(), null); + SwingUtilities.invokeLater(() -> { + MainFrame view = new MainFrame(); + setUIFont(new javax.swing.plaf.FontUIResource(new Font("SansSerif", Font.PLAIN, 12))); + try { + UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); + } catch (ClassNotFoundException | UnsupportedLookAndFeelException | IllegalAccessException | InstantiationException e) { + Logging.logError("Error with the UI. ", e); + } + + view.setPresenter(presenter); + view.setActionListeners(); + presenter.setView(view); + }); + } + } catch (ParseException e) { + Logging.logError("Error while parsing the command line arguments.", e); + } + + } + +} diff --git a/LinearRegressionTool/src/main/java/model/Interval.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Interval.java similarity index 98% rename from LinearRegressionTool/src/main/java/model/Interval.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Interval.java index 1495de9..d8ab46e 100644 --- a/LinearRegressionTool/src/main/java/model/Interval.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Interval.java @@ -1,4 +1,4 @@ -package model; +package de.wwwu.awolf.model; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. diff --git a/LinearRegressionTool/src/main/java/model/Line.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Line.java similarity index 84% rename from LinearRegressionTool/src/main/java/model/Line.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Line.java index 866df12..b622332 100644 --- a/LinearRegressionTool/src/main/java/model/Line.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Line.java @@ -1,4 +1,4 @@ -package model; +package de.wwwu.awolf.model; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -166,12 +166,26 @@ public class Line { /** * Vergleich einzelner Geradern * - * @param other zu vergleichende Gerade + * @param obj zu vergleichende Gerade * @return true falls die Geraden Gleich sind */ - public boolean equals(Line other) { - return other.getM() == this.getM() && other.getB() == this.getB(); + @Override + public boolean equals(Object obj) { + if (obj instanceof Line) { + Line other = (Line) obj; + return other.getM().equals(this.getM()) && other.getB().equals(this.getB()); + } else { + return super.equals(obj); + } } + @Override + public int hashCode() { + return super.hashCode() + this.getM().hashCode() + this.getB().hashCode(); + } + @Override + public String toString() { + return "Line m: " + this.getM() + ", b: " + this.getB(); + } } diff --git a/LinearRegressionTool/src/main/java/model/LineModel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/LineModel.java similarity index 90% rename from LinearRegressionTool/src/main/java/model/LineModel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/model/LineModel.java index 60ee4f8..a61ad1f 100644 --- a/LinearRegressionTool/src/main/java/model/LineModel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/LineModel.java @@ -1,7 +1,8 @@ -package model; +package de.wwwu.awolf.model; import java.util.ArrayList; import java.util.LinkedList; +import java.util.List; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -12,8 +13,8 @@ import java.util.LinkedList; */ public class LineModel { - private ArrayList nodes; - private LinkedList lines; + private List nodes; + private List lines; private Double xMinimum; private Double xMaximum; private Double yMinimum; @@ -54,28 +55,28 @@ public class LineModel { /** * @return Liste der Schnittpunkte */ - public ArrayList getNodes() { + public List getNodes() { return nodes; } /** * @param nodes Liste der Schnittpunkte */ - public void setNodes(ArrayList nodes) { + public void setNodes(List nodes) { this.nodes = nodes; } /** * @return Liste der Geraden */ - public LinkedList getLines() { + public List getLines() { return lines; } /** * @param lines Liste der Geraden */ - public void setLines(LinkedList lines) { + public void setLines(List lines) { this.lines = lines; } diff --git a/LinearRegressionTool/src/main/java/model/Pair.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Pair.java similarity index 97% rename from LinearRegressionTool/src/main/java/model/Pair.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Pair.java index e08f54f..50786c9 100644 --- a/LinearRegressionTool/src/main/java/model/Pair.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Pair.java @@ -1,4 +1,4 @@ -package model; +package de.wwwu.awolf.model; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. diff --git a/LinearRegressionTool/src/main/java/model/Point.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Point.java similarity index 77% rename from LinearRegressionTool/src/main/java/model/Point.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Point.java index b22973c..7d8efb8 100644 --- a/LinearRegressionTool/src/main/java/model/Point.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/Point.java @@ -1,4 +1,4 @@ -package model; +package de.wwwu.awolf.model; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -67,7 +67,7 @@ public class Point implements Comparable { @Override public int compareTo(Point o) { - if (this.getX() == o.getX()) { + if (this.getX().equals(o.getX())) { if (this.getY() <= o.getY()) { return -1; } else { @@ -83,11 +83,22 @@ public class Point implements Comparable { /** * Vergleich zweier Punkte * - * @param other zu vergleichernder Punkt + * @param obj zu vergleichernder Punkt * @return true falls die Punkte gleich sind */ - public boolean equals(Point other) { - return other.getX() == this.getX() && other.getY() == this.getY(); + @Override + public boolean equals(Object obj) { + if (obj instanceof Point) { + Point other = (Point) obj; + return other.getX().equals(this.getX()) && other.getY().equals(this.getY()); + } else { + return super.equals(obj); + } + } + + @Override + public int hashCode() { + return super.hashCode() + this.getX().hashCode() + this.getY().hashCode(); } /** diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/AlgorithmData.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/AlgorithmData.java new file mode 100644 index 0000000..2057e03 --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/AlgorithmData.java @@ -0,0 +1,27 @@ +package de.wwwu.awolf.model.communication; + +import de.wwwu.awolf.model.Line; + +public class AlgorithmData implements Data { + + private SubscriberType type; + private Line lineData; + + @Override + public SubscriberType getType() { + return type; + } + + @Override + public void setType(SubscriberType type) { + this.type = type; + } + + public Line getLineData() { + return lineData; + } + + public void setLineData(Line lineData) { + this.lineData = lineData; + } +} diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/Data.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/Data.java new file mode 100644 index 0000000..1420934 --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/Data.java @@ -0,0 +1,7 @@ +package de.wwwu.awolf.model.communication; + +public interface Data { + SubscriberType getType(); + + void setType(SubscriberType type); +} diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/EvaluationData.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/EvaluationData.java new file mode 100644 index 0000000..65e7cf8 --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/EvaluationData.java @@ -0,0 +1,56 @@ +package de.wwwu.awolf.model.communication; + +import de.wwwu.awolf.presenter.algorithms.Algorithm; + +import java.util.List; + +public class EvaluationData implements Data { + private SubscriberType type; + private List algorithmtypes; + private List oneColumnresult; + private List> multipleColumnResult; + private int column; + private List labels; + + public List getAlgorithmtypes() { + return algorithmtypes; + } + + public void setAlgorithmtypes(List algorithmtype) { + this.algorithmtypes = algorithmtype; + } + + public List getOneColumnresult() { + return oneColumnresult; + } + + public void setOneColumnresult(List oneColumnresult) { + this.oneColumnresult = oneColumnresult; + } + + public List> getMultipleColumnResult() { + return multipleColumnResult; + } + + public void setMultipleColumnResult(List> multipleColumnResult) { + this.multipleColumnResult = multipleColumnResult; + } + + @Override + public SubscriberType getType() { + return type; + } + + @Override + public void setType(SubscriberType type) { + this.type = type; + } + + public void setColumn(int col) { + this.column = col; + } + + public void setLabels(List tableInput) { + this.labels = tableInput; + } +} diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/ExportData.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/ExportData.java new file mode 100644 index 0000000..fa9f3ff --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/ExportData.java @@ -0,0 +1,25 @@ +package de.wwwu.awolf.model.communication; + +public class ExportData implements Data { + + private SubscriberType type; + private String message; + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public SubscriberType getType() { + return type; + } + + @Override + public void setType(SubscriberType type) { + this.type = type; + } +} diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/GeneratorData.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/GeneratorData.java new file mode 100644 index 0000000..436a7c6 --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/GeneratorData.java @@ -0,0 +1,43 @@ +package de.wwwu.awolf.model.communication; + +public class GeneratorData implements Data { + + private SubscriberType type; + private String message; + private double m; + private double b; + + public double getM() { + return m; + } + + public void setM(double m) { + this.m = m; + } + + public double getB() { + return b; + } + + public void setB(double b) { + this.b = b; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public SubscriberType getType() { + return type; + } + + @Override + public void setType(SubscriberType type) { + this.type = type; + } +} diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/ImportData.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/ImportData.java new file mode 100644 index 0000000..2da1b90 --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/ImportData.java @@ -0,0 +1,34 @@ +package de.wwwu.awolf.model.communication; + +public class ImportData implements Data { + + private SubscriberType type; + private int numberOfLines; + private int current; + + @Override + public SubscriberType getType() { + return type; + } + + @Override + public void setType(SubscriberType type) { + this.type = type; + } + + public int getNumberOfLines() { + return numberOfLines; + } + + public void setNumberOfLines(int numberOfLines) { + this.numberOfLines = numberOfLines; + } + + public int getCurrent() { + return current; + } + + public void setCurrent(int current) { + this.current = current; + } +} diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/SubscriberType.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/SubscriberType.java new file mode 100644 index 0000000..1810fbc --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/SubscriberType.java @@ -0,0 +1,18 @@ +package de.wwwu.awolf.model.communication; + +public enum SubscriberType { + + EVALUATE_DATASET_GENERATED, + EVAL_D, + EVAL_DS, + EVAL_T, + LINES_RES, + LINES_RES_MULT, + LMS, + RM, + TS, + IMPORT, + PICTURE, + EXPORT, + GENERATOR +} diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/TypeData.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/TypeData.java new file mode 100644 index 0000000..a40587e --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/model/communication/TypeData.java @@ -0,0 +1,15 @@ +package de.wwwu.awolf.model.communication; + +public class TypeData implements Data { + private SubscriberType type; + + @Override + public SubscriberType getType() { + return type; + } + + @Override + public void setType(SubscriberType type) { + this.type = type; + } +} diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/AbstractPresenter.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/AbstractPresenter.java new file mode 100644 index 0000000..2958b84 --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/AbstractPresenter.java @@ -0,0 +1,206 @@ +package de.wwwu.awolf.presenter; + +import de.wwwu.awolf.model.LineModel; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.presenter.evaluation.EvaluateAlgorithms; +import de.wwwu.awolf.presenter.util.IntersectionComputer; +import de.wwwu.awolf.presenter.util.Logging; +import de.wwwu.awolf.view.MainFrame; + +import javax.swing.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Flow; + +/** + * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. + * + * @Author: Armin Wolf + * @Email: a_wolf28@uni-muenster.de + * @Date: 10.09.2017. + */ +public abstract class AbstractPresenter implements Flow.Subscriber { + + private final ExecutorService executor; + private LineModel model; + private MainFrame view; + private EvaluateAlgorithms eval; + + /** + * Konstruktor + * + * @param model Modell + * @param view View + */ + public AbstractPresenter(LineModel model, MainFrame view) { + this.model = model; + this.view = view; + executor = Executors.newCachedThreadPool(); + + } + + @Override + public void onSubscribe(Flow.Subscription subscription) { + Logging.logInfo("New Subscription: " + subscription.toString()); + subscription.request(15); + } + + + @Override + public void onNext(Data data) { + switch (data.getType()) { + case EVAL_D: + evaluatedData(data); + break; + case EVAL_DS: + evaluatedDatas(data); + break; + case EVAL_T: + evaluatedTypes(data); + break; + case LINES_RES: + visualizeResults(data); + break; + case LINES_RES_MULT: + visualizeMultipleData(data); + break; + case LMS: + visualizeLmsAlgorithm(data); + break; + case RM: + visualizeRmAlgorithm(data); + break; + case TS: + visualizeTsAlgorithm(data); + break; + case IMPORT: + handleImport(data); + break; + case EXPORT: + handleExport(data); + break; + case GENERATOR: + Logging.logInfo("Generierung war Erfolgreich"); + break; + default: + break; + } + } + + protected abstract void handleExport(Data data); + + protected abstract void handleImport(Data data); + + protected abstract void visualizeTsAlgorithm(Data data); + + protected abstract void visualizeRmAlgorithm(Data data); + + protected abstract void visualizeLmsAlgorithm(Data data); + + protected abstract void visualizeMultipleData(Data data); + + protected abstract void visualizeResults(Data data); + + protected abstract void evaluatedTypes(Data data); + + protected abstract void evaluatedDatas(Data data); + + protected abstract void evaluatedData(Data data); + + @Override + public void onError(Throwable throwable) { + + } + + @Override + public void onComplete() { + + } + + /** + * Startet das parallele Berechnen der Schnittpunkte der Geraden die im Modell enthalten sind. + */ + private void startIntersectionCalculation() { + getExecutor().submit(() -> { + getModel().resetRanges(); + IntersectionComputer intersectionComputer = new IntersectionComputer(getModel().getLines()); + getModel().setNodes(intersectionComputer.compute()); + + getModel().setxMaximum(intersectionComputer.getxMaximum()); + getModel().setxMinimum(intersectionComputer.getxMinimum()); + getModel().setyMaximum(intersectionComputer.getyMaximum()); + getModel().setyMinimum(intersectionComputer.getyMinimum()); + }); + } + + /** + * Wrapper Methode die das berechnen der Schnittpunkte anstößt und die Ergebnisse(Anzahl der Schnittpunkte) + * visuell darstellt. + */ + protected void computeIntersections() { + getExecutor().submit(() -> { + long start, end; + start = System.currentTimeMillis(); + startIntersectionCalculation(); + end = System.currentTimeMillis(); + Logging.logInfo("Zeit: " + (end - start) / 1000); + }); + + //darstellung der Ergebnisse + SwingUtilities.invokeLater(() -> { + getView().enableFunctionality(); + getView().getProgressDialog().dispose(); + }); + + Logging.logInfo("Informationen zu dem aktuellen Modell"); + Logging.logInfo("Anzahl der Geraden: " + getModel().getLines().size() + "."); + Logging.logInfo("Anzahl der Schnittpunkte: " + getModel().getNodes().size() + "."); + Logging.logInfo("Import war Erfolgreich!"); + } + + /** + * @return das zu grunde legende Modell + */ + public LineModel getModel() { + return model; + } + + /** + * @param model das zu grunde legende Modell + */ + public void setModel(LineModel model) { + this.model = model; + } + + /** + * @return die zu grunde legende View + */ + public MainFrame getView() { + return view; + } + + /** + * @param view die zu grunde legende View + */ + public void setView(MainFrame view) { + this.view = view; + } + + /** + * @return Evaluation + */ + public EvaluateAlgorithms getEval() { + return eval; + } + + /** + * @param eval Evaluation + */ + public void setEval(EvaluateAlgorithms eval) { + this.eval = eval; + } + + public ExecutorService getExecutor() { + return executor; + } +} diff --git a/LinearRegressionTool/src/main/java/presenter/Presenter.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/Presenter.java similarity index 64% rename from LinearRegressionTool/src/main/java/presenter/Presenter.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/Presenter.java index 23eb025..f749a2b 100644 --- a/LinearRegressionTool/src/main/java/presenter/Presenter.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/Presenter.java @@ -1,21 +1,25 @@ -package presenter; +package de.wwwu.awolf.presenter; -import model.Line; -import model.LineModel; -import presenter.algorithms.advanced.LeastMedianOfSquaresEstimator; -import presenter.algorithms.advanced.RepeatedMedianEstimator; -import presenter.algorithms.advanced.TheilSenEstimator; -import presenter.evaluation.EvaluateAlgorithms; -import presenter.evaluation.PictureProcessor; -import presenter.generator.DatasetGenerator; -import presenter.io.DataExporter; -import presenter.io.DataImporter; -import presenter.io.EvalResultLatexExport; -import view.MainFrame; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.LineModel; +import de.wwwu.awolf.model.communication.AlgorithmData; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.model.communication.ExportData; +import de.wwwu.awolf.model.communication.ImportData; +import de.wwwu.awolf.presenter.algorithms.advanced.LeastMedianOfSquaresEstimator; +import de.wwwu.awolf.presenter.algorithms.advanced.RepeatedMedianEstimator; +import de.wwwu.awolf.presenter.algorithms.advanced.TheilSenEstimator; +import de.wwwu.awolf.presenter.evaluation.EvaluateAlgorithms; +import de.wwwu.awolf.presenter.evaluation.PictureProcessor; +import de.wwwu.awolf.presenter.generator.DatasetGenerator; +import de.wwwu.awolf.presenter.io.DataExporter; +import de.wwwu.awolf.presenter.io.DataImporter; +import de.wwwu.awolf.presenter.util.Logging; +import de.wwwu.awolf.view.MainFrame; -import javax.swing.table.DefaultTableModel; +import javax.swing.*; import java.io.File; -import java.util.LinkedList; +import java.util.List; /** @@ -33,6 +37,80 @@ public class Presenter extends AbstractPresenter { } + @Override + protected void handleExport(Data data) { + ExportData exportData = (ExportData) data; + Logging.logInfo(exportData.getMessage()); + Logging.logInfo("Export der Daten als CSV"); + Logging.logInfo("Export war Erfolgreich"); + } + + @Override + protected void handleImport(Data data) { + ImportData importData = (ImportData) data; + double max = importData.getNumberOfLines(); + double current = importData.getCurrent(); + Integer progress = (int) (100 * (current / max)); + //100% erreicht + Logging.logInfo("Import war erfolgreich!"); + SwingUtilities.invokeLater(() -> getView().showImportProgress(progress)); + } + + @Override + protected void visualizeTsAlgorithm(Data data) { + AlgorithmData algorithmData = (AlgorithmData) data; + SwingUtilities.invokeLater(() -> getView().visualizeTS(algorithmData.getLineData())); + Logging.logInfo("Theil-Sen Estimator"); + Logging.logInfo(algorithmData.getLineData().toString()); + Logging.logInfo("Berechnung wurde Erfolgreich durchgeführt."); + } + + @Override + protected void visualizeRmAlgorithm(Data data) { + AlgorithmData algorithmData = (AlgorithmData) data; + SwingUtilities.invokeLater(() -> getView().visualizeRM(algorithmData.getLineData())); + Logging.logInfo("Repeated Median Estimator"); + Logging.logInfo(algorithmData.getLineData().toString()); + Logging.logInfo("Berechnung wurde Erfolgreich durchgeführt."); + } + + @Override + protected void visualizeLmsAlgorithm(Data data) { + AlgorithmData algorithmData = (AlgorithmData) data; + SwingUtilities.invokeLater(() -> getView().visualizeLMS(algorithmData.getLineData())); + Logging.logInfo("Least Median of Squares"); + Logging.logInfo(algorithmData.getLineData().toString()); + Logging.logInfo("Berechnung wurde Erfolgreich durchgeführt."); + } + + @Override + protected void visualizeMultipleData(Data data) { + //Result: + //0: + SwingUtilities.invokeLater(() -> getView().drawLineResults(result)); + } + + @Override + protected void visualizeResults(Data data) { + SwingUtilities.invokeLater(() -> getView().drawLineResults(result)); + } + + @Override + protected void evaluatedTypes(Data data) { + SwingUtilities.invokeLater(() -> getView().appendEvalResult(result, Integer.parseInt(result[1]), true)); + } + + @Override + protected void evaluatedDatas(Data data) { + SwingUtilities.invokeLater(() -> getView().appendEvalResult(result)); + } + + @Override + protected void evaluatedData(Data data) { + SwingUtilities.invokeLater(() -> getView().appendEvalResult(result, Integer.parseInt(result[1]), false)); + } + + public void visualizeDualLines() { getView().createDualityDialog(); } @@ -56,7 +134,6 @@ public class Presenter extends AbstractPresenter { lms.setConstant(constant); lms.setQuantileError(error); //Presenter soll die Klasse überwachen - lms.addObserver(this); getExecutor().execute(lms); } @@ -74,7 +151,6 @@ public class Presenter extends AbstractPresenter { Double parameter = Double.parseDouble(input); rm.setBeta(parameter); //Presenter soll die Klasse überwachen - rm.addObserver(this); getExecutor().execute(rm); @@ -90,7 +166,6 @@ public class Presenter extends AbstractPresenter { if (input != null) { TheilSenEstimator ts = new TheilSenEstimator(getModel().getLines(), getModel().getNodes(), this); //Presenter soll die Klasse überwachen - ts.addObserver(this); getExecutor().execute(ts); } @@ -107,14 +182,13 @@ public class Presenter extends AbstractPresenter { */ public void startImport(File file) { - DataImporter importer = new DataImporter(file); + DataImporter importer = new DataImporter(file, this); //Presenter soll die Klasse überwachen - importer.addObserver(this); getExecutor().execute(new Runnable() { @Override public void run() { - LinkedList importedLines = importer.run(); + List importedLines = importer.run(); if (importedLines != null) { //Berechnung der Schnittpunkte und vis. der Ergebnisse (anz. Geraden, anz. Schnittpunkte) getModel().setLines(importedLines); @@ -132,7 +206,6 @@ public class Presenter extends AbstractPresenter { public void startPictureDataImport(File file) { PictureProcessor pictureProcessor = new PictureProcessor(this, file); //Presenter soll die Klasse überwachen - pictureProcessor.addObserver(this); getExecutor().execute(new Runnable() { @Override @@ -152,9 +225,8 @@ public class Presenter extends AbstractPresenter { * @param file Datei in der die Informationen gespeichert werden sollen */ public void startExport(File file) { - DataExporter exporter = new DataExporter(getModel().getLines(), file); + DataExporter exporter = new DataExporter(getModel().getLines(), file, this); //Presenter soll die Klasse überwachen - exporter.addObserver(this); getExecutor().execute(new Runnable() { @Override @@ -170,9 +242,8 @@ public class Presenter extends AbstractPresenter { * @param file Datei in der die Informationen gespeichert werden sollen */ public void startDatasetExportEvaluation(File file) { - DataExporter exporter = new DataExporter(getEval().getData(), file); + DataExporter exporter = new DataExporter(getEval().getData(), file, this); //Presenter soll die Klasse überwachen - exporter.addObserver(this); getExecutor().execute(new Runnable() { @Override @@ -182,19 +253,6 @@ public class Presenter extends AbstractPresenter { }); } - /** - * Startet den Export der Ergebnisse der Evaluation in Form einer LaTeX Datei - * - * @param model TableModel das die Berechnenten Ergebnisse enthält - * @param file Datei in die exportiert werden soll - */ - public void startResultExport(DefaultTableModel model, File file) { - getExecutor().execute(() -> { - EvalResultLatexExport exporter = new EvalResultLatexExport(model, file); - exporter.writeFile(); - }); - } - /** * Startet das generieren der Datensätze der Größe n * @@ -202,13 +260,9 @@ public class Presenter extends AbstractPresenter { * @param type Art der Datensatzes */ public void generateDataset(int n, int type) { - DatasetGenerator generator = new DatasetGenerator(); - generator.addObserver(this); + DatasetGenerator generator = new DatasetGenerator(this); getExecutor().execute(() -> { switch (type) { - case 0: - getModel().setLines(generator.generateDataCloud(n)); - break; case 1: getModel().setLines(generator.generateDataLines(n)); break; @@ -219,7 +273,6 @@ public class Presenter extends AbstractPresenter { getModel().setLines(generator.generateDataCloud(n)); break; } - computeIntersections(); getView().enableFunctionality(); }); @@ -236,8 +289,7 @@ public class Presenter extends AbstractPresenter { * @param datasettyp Typ des Datensatzes (Geradem Punktwolke, Kreis und Gerade) */ public void startEvaluation(int typ, int n, int alg, String datasettyp) { - setEval(new EvaluateAlgorithms(typ, n, alg, datasettyp)); - getEval().addObserver(this); + setEval(new EvaluateAlgorithms(typ, n, alg, datasettyp, this)); getExecutor().submit(() -> { getEval().run(); @@ -258,7 +310,6 @@ public class Presenter extends AbstractPresenter { EvaluateAlgorithms evaluateAlgorithms = new EvaluateAlgorithms(typ, alg, file); if (evaluateAlgorithms.getData().size() > 0) { setEval(evaluateAlgorithms); - getEval().addObserver(this); } getExecutor().submit(() -> { diff --git a/LinearRegressionTool/src/main/java/presenter/algorithms/Algorithm.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/Algorithm.java similarity index 74% rename from LinearRegressionTool/src/main/java/presenter/algorithms/Algorithm.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/Algorithm.java index 269b5f8..4258aa1 100644 --- a/LinearRegressionTool/src/main/java/presenter/algorithms/Algorithm.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/Algorithm.java @@ -1,4 +1,4 @@ -package presenter.algorithms; +package de.wwwu.awolf.presenter.algorithms; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -8,6 +8,17 @@ package presenter.algorithms; * @Date: 28.05.2017. */ public interface Algorithm extends Runnable { + + enum Type { + LMS, + RM, + TS, + NAIV_LMS, + NAIV_RM, + NAIV_TS + } + + /** * Startet die Berechnung des jeweiligen Algorithmus. */ diff --git a/LinearRegressionTool/src/main/java/presenter/algorithms/advanced/LeastMedianOfSquaresEstimator.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/advanced/LeastMedianOfSquaresEstimator.java similarity index 84% rename from LinearRegressionTool/src/main/java/presenter/algorithms/advanced/LeastMedianOfSquaresEstimator.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/advanced/LeastMedianOfSquaresEstimator.java index 64eeb78..a40ef99 100644 --- a/LinearRegressionTool/src/main/java/presenter/algorithms/advanced/LeastMedianOfSquaresEstimator.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/advanced/LeastMedianOfSquaresEstimator.java @@ -1,13 +1,19 @@ -package presenter.algorithms.advanced; +package de.wwwu.awolf.presenter.algorithms.advanced; -import model.Interval; -import model.Line; -import model.Point; -import presenter.Presenter; -import presenter.algorithms.Algorithm; -import presenter.util.IntersectionCounter; +import de.wwwu.awolf.model.Interval; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Point; +import de.wwwu.awolf.model.communication.AlgorithmData; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.model.communication.SubscriberType; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.presenter.algorithms.Algorithm; +import de.wwwu.awolf.presenter.util.IntersectionCounter; +import de.wwwu.awolf.presenter.util.Logging; +import java.security.SecureRandom; import java.util.*; +import java.util.concurrent.Flow; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -16,19 +22,16 @@ import java.util.*; * @Email: a_wolf28@uni-muenster.de * @Date: 28.05.2017. */ -public class LeastMedianOfSquaresEstimator extends Observable implements Algorithm { +public class LeastMedianOfSquaresEstimator implements Algorithm, Flow.Publisher { - - private Presenter presenter; - - private LinkedList set = new LinkedList<>(); - private ArrayList intersections = new ArrayList<>(); + private List set; + private List intersections; private IntersectionCounter invCounter = new IntersectionCounter(); private int n; private double quantileError; private int kPlus; private int kMinus; - private PriorityQueue intervals; + private Queue intervals; private Interval subSlabU1; private Interval subSlabU2; private Line sigmaMin; @@ -38,6 +41,7 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit private double slope; private double yInterception; + private Flow.Subscriber subscriber; /** * Konstruktor @@ -46,7 +50,7 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit * @param intersections Liste der Schnittpunkte * @param presenter Presenter (Beobachter) */ - public LeastMedianOfSquaresEstimator(LinkedList set, ArrayList intersections, + public LeastMedianOfSquaresEstimator(List set, List intersections, Presenter presenter) { this.set = set; this.intersections = intersections; @@ -57,7 +61,7 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit double qMinus = qPlus * (1 - quantileError); kMinus = (int) Math.ceil(n * qMinus); kPlus = (int) Math.ceil(n * qPlus); - this.presenter = presenter; + this.subscribe(presenter); } /** @@ -66,7 +70,7 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit * @param set Liste der Geraden * @param intersections Liste der Schnittpunkte */ - public LeastMedianOfSquaresEstimator(LinkedList set, ArrayList intersections) { + public LeastMedianOfSquaresEstimator(List set, List intersections) { this(set, intersections, null); } @@ -80,7 +84,7 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit */ public void run() { - System.out.println("=== S T A R T - L M S ==="); + Logging.logInfo("=== S T A R T - L M S ==="); long start; long end; start = System.currentTimeMillis(); @@ -99,7 +103,7 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit intervals = new PriorityQueue<>(comparator); intervals.add(new Interval(-100000, 100000)); heightsigmaMin = Double.MAX_VALUE; - ArrayList tmpIntersections = intersections; + List tmpIntersections = intersections; //(3.) Apply the following steps as long as the exists active intervals boolean active = true; @@ -116,12 +120,12 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit } else { //(c.) otherwise.... // get random intersections point... - Collections.shuffle(tmpIntersections, new Random()); + Collections.shuffle(tmpIntersections, new SecureRandom()); boolean found = false; - for (int i = 0; i < tmpIntersections.size(); i++) { - if (tmpIntersections.get(i).getX() > interval.getLower() - && tmpIntersections.get(i).getX() < interval.getUpper()) { - intersectionsPoint = tmpIntersections.get(i).getX(); + for (Point tmpIntersection : tmpIntersections) { + if (tmpIntersection.getX() > interval.getLower() + && tmpIntersection.getX() < interval.getUpper()) { + intersectionsPoint = tmpIntersection.getX(); found = true; break; } @@ -150,7 +154,7 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit } } end = System.currentTimeMillis(); - System.out.println("Zeit: " + ((end - start) / 1000)); + Logging.logInfo("Zeit: " + ((end - start) / 1000)); pepareResult(); } @@ -178,7 +182,7 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit public Line pseudoSweep(Interval interval) { //initialisiere die x-Queue mit den 2D Punkten und sortiere nach x-Lexikographischer Ordnung - ArrayList xQueue = new ArrayList<>(); + List xQueue = new ArrayList<>(); for (Point point : intersections) { if (point.getX() >= interval.getLower() && point.getX() < interval.getUpper()) { xQueue.add(point); @@ -227,7 +231,7 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit double height = heightsigmaMin; double tmpHeight; - ArrayList sortedLineSequence = getEjValues(point); + List sortedLineSequence = getEjValues(point); int itnbr = ((n - kMinus) + 1); for (int i = 0; i < itnbr; i++) { @@ -262,11 +266,11 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit int strictlyGreater = 0; //Teil I. - ArrayList umaxList; - ArrayList uminList; + List umaxList; + List uminList; //y koordinaten der Schnittpunkte - ArrayList lines = new ArrayList<>(); + List lines = new ArrayList<>(); for (Line p : set) { lines.add( new Line(pslab.getLower(), pslab.getUpper(), ((pslab.getLower() * p.getM()) + p.getB()), @@ -325,9 +329,9 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit * @param u vertikale Gerade * @return Liste der Schnittpunkte (da u bekannt werden nur die y Werte zurück gegeben) */ - public ArrayList getEjValues(double u) { + public List getEjValues(double u) { - ArrayList ret = new ArrayList<>(); + List ret = new ArrayList<>(); for (Line p : set) { ret.add((p.getM() * u) + p.getB()); @@ -349,15 +353,14 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit public Double[] calcKMinusBracelet(Point px, int kMinusValue) { //y Koordinaten für das kMinus brecalet - LinkedList intersections = new LinkedList<>(); + List intersections = new LinkedList<>(); for (Line line : set) { intersections.add((px.getX() * line.getM()) + line.getB()); } if (intersections.size() >= kMinusValue) { Collections.sort(intersections); - double height = Math.abs(intersections.get(0) - intersections.get(0 + kMinusValue - 1)); - Double[] ret = {height, intersections.get(0), intersections.get(0 + kMinusValue - 1)}; - return ret; + double height = Math.abs(intersections.get(0) - intersections.get(kMinusValue - 1)); + return new Double[]{height, intersections.get(0), intersections.get(kMinusValue - 1)}; } else { return null; } @@ -366,16 +369,17 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit @Override public void pepareResult() { - if (presenter != null) { - setChanged(); + if (this.subscriber != null) { double m = (getSigmaMin().getX2() + getSigmaMin().getX1()) * 0.5; double b = (getSigmaMin().getY2() + getSigmaMin().getY1()) * -0.5; slope = m; yInterception = b; - String[] result = {"lms", m + "", b + ""}; - notifyObservers(result); + AlgorithmData data = new AlgorithmData(); + data.setType(SubscriberType.LMS); + data.setLineData(new Line(m, b)); + this.subscriber.onNext(data); } else { double m = (getSigmaMin().getX2() + getSigmaMin().getX1()) * 0.5; double b = (getSigmaMin().getY2() + getSigmaMin().getY1()) * -0.5; @@ -454,4 +458,9 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit public Double getyInterception() { return yInterception; } + + @Override + public void subscribe(Flow.Subscriber subscriber) { + this.subscriber = subscriber; + } } diff --git a/LinearRegressionTool/src/main/java/presenter/algorithms/advanced/RepeatedMedianEstimator.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/advanced/RepeatedMedianEstimator.java similarity index 73% rename from LinearRegressionTool/src/main/java/presenter/algorithms/advanced/RepeatedMedianEstimator.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/advanced/RepeatedMedianEstimator.java index 741a6cb..207018f 100644 --- a/LinearRegressionTool/src/main/java/presenter/algorithms/advanced/RepeatedMedianEstimator.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/advanced/RepeatedMedianEstimator.java @@ -1,17 +1,22 @@ -package presenter.algorithms.advanced; +package de.wwwu.awolf.presenter.algorithms.advanced; -import model.Interval; -import model.Line; -import presenter.Presenter; -import presenter.algorithms.Algorithm; -import presenter.util.FastElementSelector; -import presenter.util.IntersectionCounter; -import presenter.util.RandomSampler; +import de.wwwu.awolf.model.Interval; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.communication.AlgorithmData; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.model.communication.SubscriberType; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.presenter.algorithms.Algorithm; +import de.wwwu.awolf.presenter.util.FastElementSelector; +import de.wwwu.awolf.presenter.util.IntersectionCounter; +import de.wwwu.awolf.presenter.util.Logging; +import de.wwwu.awolf.presenter.util.RandomSampler; import java.util.ArrayList; import java.util.HashMap; -import java.util.LinkedList; -import java.util.Observable; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Flow; /** @@ -21,24 +26,23 @@ import java.util.Observable; * @Email: a_wolf28@uni-muenster.de * @Date: 28.05.2017. */ -public class RepeatedMedianEstimator extends Observable implements Algorithm { +public class RepeatedMedianEstimator implements Algorithm, Flow.Publisher { private Presenter presenter; - private LinkedList set; - private HashMap> linePairs; - private HashMap medianIntersections = new HashMap<>(); - private HashMap> intersectionAbscissas = new HashMap<>(); + private List set; + private Map medianIntersections = new HashMap<>(); + private Map> intersectionAbscissas = new HashMap<>(); private Interval interval; //in der Literatur als L_i, C_i, und R_i bekannt - private ArrayList countLeftSlab; - private ArrayList countCenterSlab; - private ArrayList countRightSlab; + private List countLeftSlab; + private List countCenterSlab; + private List countRightSlab; //die Mengen L,C und R - private ArrayList linesInLeftSlab; - private ArrayList linesInCenterSlab; - private ArrayList linesInRightSlab; + private List linesInLeftSlab; + private List linesInCenterSlab; + private List linesInRightSlab; private double r; private int n; @@ -52,6 +56,7 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { private double slope; private double yInterception; + private Flow.Subscriber subscriber; /** * Konstruktor @@ -59,7 +64,7 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { * @param set Liste der Geraden * @param presenter Presenter (Beobachter) */ - public RepeatedMedianEstimator(LinkedList set, Presenter presenter) { + public RepeatedMedianEstimator(List set, Presenter presenter) { this.set = set; this.presenter = presenter; interval = new Interval(-10000, 10000); @@ -79,7 +84,7 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { linesInLeftSlab = new ArrayList<>(); linesInCenterSlab = new ArrayList<>(set); linesInRightSlab = new ArrayList<>(); - linePairs = new HashMap<>(); + subscribe(presenter); } /** @@ -87,7 +92,7 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { * * @param set Liste der Geraden */ - public RepeatedMedianEstimator(LinkedList set) { + public RepeatedMedianEstimator(List set) { this(set, null); } @@ -101,7 +106,7 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { */ public void run() { - System.out.println("=== S T A R T - R M ==="); + Logging.logInfo("=== S T A R T - R M ==="); long start; long end; start = System.currentTimeMillis(); @@ -109,11 +114,11 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { while (linesInCenterSlab.size() != 1) { n = linesInCenterSlab.size(); r = Math.ceil(Math.pow(n, beta)); - ArrayList lines = RandomSampler.run(linesInCenterSlab, r, linesInCenterSlab.size()); + List lines = RandomSampler.run(linesInCenterSlab, r, linesInCenterSlab.size()); //Für jede Gerade aus der Stichprobe wird der Schnittpunkt mit der medianen //x-Koordinate bestimmt - ArrayList medianIntersectionAbscissas = new ArrayList<>(); + List medianIntersectionAbscissas = new ArrayList<>(); for (Line l : lines) { Double abscissa = estimateMedianIntersectionAbscissas(l); medianIntersections.put(l, abscissa); @@ -138,7 +143,7 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { } end = System.currentTimeMillis(); - System.out.println("Zeit: " + ((end - start) / 1000)); + Logging.logInfo("Zeit: " + ((end - start) / 1000)); pepareResult(); } @@ -152,11 +157,11 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { */ public Double estimateMedianIntersectionAbscissas(Line sampledLine) { - Integer index = Integer.parseInt(sampledLine.getId()); + int index = Integer.parseInt(sampledLine.getId()); IntersectionCounter intersectionCounter = new IntersectionCounter(); - ArrayList intersections = intersectionCounter.calculateIntersectionAbscissas(linesInCenterSlab, sampledLine); + List intersections = intersectionCounter.calculateIntersectionAbscissas(linesInCenterSlab, sampledLine); - double ki = Math.ceil((n - 1) / 2) - FastElementSelector.randomizedSelect(countLeftSlab, index); + double ki = Math.ceil((n - 1) * 0.5) - FastElementSelector.randomizedSelect(countLeftSlab, index); double i = (Math.ceil((Math.sqrt(n) * ki) / FastElementSelector.randomizedSelect(countCenterSlab, index))); int accessIndex; if (i < 0) @@ -174,9 +179,9 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { */ public void computeSlabBorders() { kLow = Math.max(1, Math.floor(((r * k) / (linesInCenterSlab.size())) - - ((3 * Math.sqrt(r)) / (2)))); + - ((3 * Math.sqrt(r)) * (0.5)))); kHigh = Math.min(r, Math.floor(((r * k) / (linesInCenterSlab.size())) - + ((3 * Math.sqrt(r)) / (2)))); + + ((3 * Math.sqrt(r)) * (0.5)))); } @@ -186,8 +191,8 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { */ public void countNumberOfIntersectionsAbscissas() { for (Line line : linesInCenterSlab) { - ArrayList intersections = intersectionAbscissas.get(line); - Integer index = Integer.parseInt(line.getId()); + List intersections = intersectionAbscissas.get(line); + int index = Integer.parseInt(line.getId()); int left = 0; int center = 0; int right = 0; @@ -210,6 +215,7 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { } /** + * TODO bad idea!!! * Verkleinert das aktuelle Intervall. Eines der drei Bereiche wird als neues Intervall gewählt. * Auf diesem Intervall werden dann in der nächsten Iteration wieder drei Bereiche bestimmt. */ @@ -232,24 +238,23 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { } //wähle C als C - if (linesInLeftSlab.size() < Math.ceil(n / 2) && Math.ceil(n / 2) <= linesInLeftSlab.size() + linesInCenterSlab.size()) { + if (linesInLeftSlab.size() < Math.ceil(n * 0.5) && Math.ceil(n * 0.5) <= linesInLeftSlab.size() + linesInCenterSlab.size()) { interval.setLower(thetaLow + 0.1); interval.setUpper(thetaHigh); } // wähle L als C - else if (Math.ceil(n / 2) <= linesInLeftSlab.size()) { + else if (Math.ceil(n * 0.5) <= linesInLeftSlab.size()) { interval.setUpper(thetaLow); } //wähle R als C - else if (linesInLeftSlab.size() + linesInCenterSlab.size() < Math.ceil(n / 2) && Math.ceil(n / 2) <= (linesInLeftSlab.size() + linesInCenterSlab.size() + linesInRightSlab.size())) { + else if (linesInLeftSlab.size() + linesInCenterSlab.size() < Math.ceil(n * 0.5) && Math.ceil(n * 0.5) <= (linesInLeftSlab.size() + linesInCenterSlab.size() + linesInRightSlab.size())) { interval.setLower(thetaHigh - 0.1); } } @Override public void pepareResult() { - if (presenter != null) { - setChanged(); + if (this.subscriber != null) { double m = thetaLow; double b = (-1) * ( (linesInCenterSlab.get(0).getM() * (thetaLow)) + linesInCenterSlab.get(0) @@ -257,8 +262,10 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { slope = m; yInterception = b; - String[] result = new String[]{"rm", m + "", b + ""}; - notifyObservers(result); + AlgorithmData data = new AlgorithmData(); + data.setType(SubscriberType.RM); + data.setLineData(new Line(m, b)); + this.subscriber.onNext(data); } else { double m = thetaLow; double b = (-1) * ((linesInCenterSlab.get(0).getM() * (thetaLow)) + linesInCenterSlab.get(0).getB()); @@ -267,9 +274,6 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { } } - /******************************************************************************************************************* - * Getter und Setter Methoden - ******************************************************************************************************************/ /** * @return Anzahl der Geraden */ @@ -336,23 +340,28 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm { /** * @return verteilung der Punkte */ - public ArrayList getCountLeftSlab() { + public List getCountLeftSlab() { return countLeftSlab; } /** * @return verteilung der Punkte */ - public ArrayList getCountCenterSlab() { + public List getCountCenterSlab() { return countCenterSlab; } /** * @return verteilung der Punkte */ - public ArrayList getCountRightSlab() { + public List getCountRightSlab() { return countRightSlab; } + + @Override + public void subscribe(Flow.Subscriber subscriber) { + this.subscriber = subscriber; + } } diff --git a/LinearRegressionTool/src/main/java/presenter/algorithms/advanced/TheilSenEstimator.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/advanced/TheilSenEstimator.java similarity index 77% rename from LinearRegressionTool/src/main/java/presenter/algorithms/advanced/TheilSenEstimator.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/advanced/TheilSenEstimator.java index abf8514..f4daf4d 100644 --- a/LinearRegressionTool/src/main/java/presenter/algorithms/advanced/TheilSenEstimator.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/advanced/TheilSenEstimator.java @@ -1,16 +1,23 @@ -package presenter.algorithms.advanced; +package de.wwwu.awolf.presenter.algorithms.advanced; -import model.Interval; -import model.Line; -import model.Point; -import presenter.Presenter; -import presenter.algorithms.Algorithm; -import presenter.util.BinomialCoeffizient; -import presenter.util.FastElementSelector; -import presenter.util.IntersectionCounter; -import presenter.util.RandomSampler; +import de.wwwu.awolf.model.Interval; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Point; +import de.wwwu.awolf.model.communication.AlgorithmData; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.model.communication.SubscriberType; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.presenter.algorithms.Algorithm; +import de.wwwu.awolf.presenter.util.BinomialCoeffizient; +import de.wwwu.awolf.presenter.util.FastElementSelector; +import de.wwwu.awolf.presenter.util.IntersectionCounter; +import de.wwwu.awolf.presenter.util.RandomSampler; -import java.util.*; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.util.concurrent.Flow; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -19,19 +26,18 @@ import java.util.*; * @Email: a_wolf28@uni-muenster.de * @Date: 28.05.2017. */ -public class TheilSenEstimator extends Observable implements Algorithm { +public class TheilSenEstimator implements Algorithm, Flow.Publisher { private final double POSITIV_INF = 99999.0; private final double NEGATIV_INF = -99999.0; private final double EPSILON = 0.00001; - private Presenter presenter; - private ArrayList setOfLines; - private ArrayList setOfIntersections; - private ArrayList intervalIntersections; - private ArrayList sampledIntersections; + private List setOfLines; + private List setOfIntersections; + private List intervalIntersections; + private List sampledIntersections; //wird benötigt um den y Achsenabschnitt zu Berechnen - private ArrayList yCoordinates; - private ArrayList xCoordinates; + private List yCoordinates; + private List xCoordinates; //Hilfsvariablen (siehe original Paper) private double j; private int jA; @@ -46,6 +52,7 @@ public class TheilSenEstimator extends Observable implements Algorithm { private double bVariant; private double slope; private double yInterception; + private Flow.Subscriber subscriber; /** * Konstruktor @@ -54,8 +61,8 @@ public class TheilSenEstimator extends Observable implements Algorithm { * @param setOfIntersections Liste der Schnittpunkte * @param presenter Presenter (Beobachter) */ - public TheilSenEstimator(LinkedList setOfLines, ArrayList setOfIntersections, Presenter presenter) { - this.presenter = presenter; + public TheilSenEstimator(List setOfLines, List setOfIntersections, Presenter presenter) { + this.setOfLines = new ArrayList<>(setOfLines); this.setOfIntersections = new ArrayList<>(setOfIntersections); this.intervalIntersections = new ArrayList<>(setOfIntersections); @@ -69,6 +76,7 @@ public class TheilSenEstimator extends Observable implements Algorithm { this.k = (int) (N / 2); interval = new Interval(NEGATIV_INF, POSITIV_INF); + subscribe(presenter); } /** @@ -77,7 +85,7 @@ public class TheilSenEstimator extends Observable implements Algorithm { * @param setOfLines Liste der Geraden * @param setOfIntersections Liste der Schnittpunkte */ - public TheilSenEstimator(LinkedList setOfLines, ArrayList setOfIntersections) { + public TheilSenEstimator(List setOfLines, List setOfIntersections) { this(setOfLines, setOfIntersections, null); } @@ -175,7 +183,7 @@ public class TheilSenEstimator extends Observable implements Algorithm { * @param b obere Grenze des Intrvals * @return Anzahl der Schnittpunkte im Interval (a,b) */ - public int getOpenIntervalSize(double a, double b, ArrayList set) { + public int getOpenIntervalSize(double a, double b, List set) { int counter = 0; for (int i = 0; i < set.size(); i++) { Point x = set.get(i); @@ -195,8 +203,8 @@ public class TheilSenEstimator extends Observable implements Algorithm { * @param b obere Grenze des Intrvals * @return Liste der Schnittpunkte die im Interval (a,b) vertreten sind */ - public ArrayList getOpenIntervalElements(double a, double b) { - ArrayList list = new ArrayList<>(); + public List getOpenIntervalElements(double a, double b) { + List list = new ArrayList<>(); for (int i = 0; i < intervalIntersections.size(); i++) { Point x = intervalIntersections.get(i); if ((x.getX() > a && x.getX() < b) || (Math.abs(interval.getUpper() - interval.getLower())) < EPSILON) { @@ -213,8 +221,8 @@ public class TheilSenEstimator extends Observable implements Algorithm { double m, x; double b, y; - ArrayList resultSt = getOpenIntervalElements(interval.getLower(), interval.getUpper()); - ArrayList resultAbscissas = new ArrayList<>(); + List resultSt = getOpenIntervalElements(interval.getLower(), interval.getUpper()); + List resultAbscissas = new ArrayList<>(); for (Point p : resultSt) { resultAbscissas.add(p.getX()); @@ -224,7 +232,7 @@ public class TheilSenEstimator extends Observable implements Algorithm { yCoordinates.add(p.getY()); } - int pseudoIndex = getOpenIntervalSize(NEGATIV_INF, interval.getLower(), setOfIntersections); + double pseudoIndex = getOpenIntervalSize(NEGATIV_INF, interval.getLower(), setOfIntersections) * 1.0; m = FastElementSelector.randomizedSelect(resultAbscissas, k - pseudoIndex); Set unique = new LinkedHashSet<>(yCoordinates); @@ -234,11 +242,11 @@ public class TheilSenEstimator extends Observable implements Algorithm { slope = m; yInterception = b; - if (presenter != null) { - setChanged(); - - String[] result = new String[]{"ts", m + "", b + ""}; - notifyObservers(result); + if (this.subscriber != null) { + AlgorithmData data = new AlgorithmData(); + data.setType(SubscriberType.TS); + data.setLineData(new Line(m, b)); + this.subscriber.onNext(data); } } @@ -255,4 +263,9 @@ public class TheilSenEstimator extends Observable implements Algorithm { public Double getyInterception() { return yInterception; } + + @Override + public void subscribe(Flow.Subscriber subscriber) { + this.subscriber = subscriber; + } } diff --git a/LinearRegressionTool/src/main/java/presenter/algorithms/naiv/NaivLeastMedianOfSquaresEstimator.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/naiv/NaivLeastMedianOfSquaresEstimator.java similarity index 78% rename from LinearRegressionTool/src/main/java/presenter/algorithms/naiv/NaivLeastMedianOfSquaresEstimator.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/naiv/NaivLeastMedianOfSquaresEstimator.java index 7172521..e1c90c8 100644 --- a/LinearRegressionTool/src/main/java/presenter/algorithms/naiv/NaivLeastMedianOfSquaresEstimator.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/naiv/NaivLeastMedianOfSquaresEstimator.java @@ -1,13 +1,14 @@ -package presenter.algorithms.naiv; +package de.wwwu.awolf.presenter.algorithms.naiv; -import model.Line; -import model.Point; -import presenter.algorithms.Algorithm; -import presenter.util.FastElementSelector; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Point; +import de.wwwu.awolf.presenter.algorithms.Algorithm; +import de.wwwu.awolf.presenter.util.FastElementSelector; +import de.wwwu.awolf.presenter.util.Logging; import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedList; +import java.util.List; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -17,7 +18,7 @@ import java.util.LinkedList; * @Date: 15.09.2017. */ public class NaivLeastMedianOfSquaresEstimator implements Algorithm { - private ArrayList set = new ArrayList<>(); + private List set = new ArrayList<>(); private int n; private double ds, b, m; @@ -27,7 +28,7 @@ public class NaivLeastMedianOfSquaresEstimator implements Algorithm { * * @param lines Liste des Geraden */ - public NaivLeastMedianOfSquaresEstimator(LinkedList lines) { + public NaivLeastMedianOfSquaresEstimator(List lines) { for (Line l : lines) { set.add(new Point(l.getM(), l.getB())); } @@ -40,11 +41,11 @@ public class NaivLeastMedianOfSquaresEstimator implements Algorithm { ds = Double.MAX_VALUE; b = 0d; m = 0d; - ArrayList triple = new ArrayList<>(); + List triple = new ArrayList<>(); double beta; double alpha; double dijk; - System.out.println("=== S T A R T - naiv L M S ==="); + Logging.logInfo("=== S T A R T - naiv L M S ==="); long start; long end; start = System.currentTimeMillis(); @@ -56,7 +57,7 @@ public class NaivLeastMedianOfSquaresEstimator implements Algorithm { triple.add(k); Collections.sort(triple); beta = (triple.get(0).getY() - triple.get(2).getY()) / (triple.get(0).getX() - triple.get(2).getX()); - alpha = (triple.get(1).getY() + triple.get(2).getY() - (beta * (triple.get(1).getX() + triple.get(2).getX()))) / 2f; + alpha = (triple.get(1).getY() + triple.get(2).getY() - (beta * (triple.get(1).getX() + triple.get(2).getX()))) * 0.5; dijk = f(alpha, beta); if (dijk < ds) { ds = dijk; @@ -68,7 +69,7 @@ public class NaivLeastMedianOfSquaresEstimator implements Algorithm { } } end = System.currentTimeMillis(); - System.out.println("Zeit: " + ((end - start) / 1000)); + Logging.logInfo("Zeit: " + ((end - start) / 1000)); } /** @@ -79,11 +80,11 @@ public class NaivLeastMedianOfSquaresEstimator implements Algorithm { * @return medianer Fehler */ private Double f(double a, double b) { - ArrayList res = new ArrayList<>(); + List res = new ArrayList<>(); for (Point p : set) { res.add(Math.abs(p.getY() - (a + b * p.getX()))); } - return FastElementSelector.randomizedSelect(res, res.size() / 2); + return FastElementSelector.randomizedSelect(res, res.size() * 0.5); } @Override diff --git a/LinearRegressionTool/src/main/java/presenter/algorithms/naiv/NaivRepeatedMedianEstimator.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/naiv/NaivRepeatedMedianEstimator.java similarity index 73% rename from LinearRegressionTool/src/main/java/presenter/algorithms/naiv/NaivRepeatedMedianEstimator.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/naiv/NaivRepeatedMedianEstimator.java index fc06dac..d101a7f 100644 --- a/LinearRegressionTool/src/main/java/presenter/algorithms/naiv/NaivRepeatedMedianEstimator.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/naiv/NaivRepeatedMedianEstimator.java @@ -1,13 +1,15 @@ -package presenter.algorithms.naiv; +package de.wwwu.awolf.presenter.algorithms.naiv; -import model.Line; -import model.Point; -import presenter.algorithms.Algorithm; -import presenter.util.FastElementSelector; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Point; +import de.wwwu.awolf.presenter.algorithms.Algorithm; +import de.wwwu.awolf.presenter.util.FastElementSelector; +import de.wwwu.awolf.presenter.util.Logging; import java.util.ArrayList; import java.util.HashMap; -import java.util.LinkedList; +import java.util.List; +import java.util.Map; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -18,10 +20,11 @@ import java.util.LinkedList; */ public class NaivRepeatedMedianEstimator implements Algorithm { - private LinkedList lines; - private HashMap> slopesPerLine; - private HashMap> interceptPerLine; - private ArrayList xMedians, yMedians; + private List lines; + private Map> slopesPerLine; + private Map> interceptPerLine; + private List xMedians; + private List yMedians; private double medianX; private double medianY; @@ -30,7 +33,7 @@ public class NaivRepeatedMedianEstimator implements Algorithm { * * @param lines Liste der Geraden */ - public NaivRepeatedMedianEstimator(LinkedList lines) { + public NaivRepeatedMedianEstimator(List lines) { this.lines = lines; slopesPerLine = new HashMap<>(); interceptPerLine = new HashMap<>(); @@ -41,18 +44,13 @@ public class NaivRepeatedMedianEstimator implements Algorithm { @Override public void run() { //init the List for the slopes - System.out.println("=== S T A R T - naiv R M ==="); + Logging.logInfo("=== S T A R T - naiv R M ==="); long start; long end; start = System.currentTimeMillis(); - for (int j = 0; j < lines.size(); j++) { - Line leq = lines.get(j); - if (slopesPerLine.get(leq.getId()) == null) { - slopesPerLine.put(leq.getId(), new ArrayList<>()); - } - if (interceptPerLine.get(leq.getId()) == null) { - interceptPerLine.put(leq.getId(), new ArrayList<>()); - } + for (Line leq : lines) { + slopesPerLine.computeIfAbsent(leq.getId(), k -> new ArrayList<>()); + interceptPerLine.computeIfAbsent(leq.getId(), k -> new ArrayList<>()); } //calculate all slopes for each line @@ -67,7 +65,7 @@ public class NaivRepeatedMedianEstimator implements Algorithm { //berechne mediane Steigung for (String l : slopesPerLine.keySet()) { - ArrayList list = slopesPerLine.get(l); + List list = slopesPerLine.get(l); int size = list.size() / 2; if (size > 0) { double medianX = FastElementSelector.randomizedSelect(list, size); @@ -77,7 +75,7 @@ public class NaivRepeatedMedianEstimator implements Algorithm { //berechne medianen y-Achsenabschnitt for (String l : interceptPerLine.keySet()) { - ArrayList list = interceptPerLine.get(l); + List list = interceptPerLine.get(l); int size = list.size() / 2; if (size > 0) { double medianY = FastElementSelector.randomizedSelect(list, size); @@ -85,10 +83,10 @@ public class NaivRepeatedMedianEstimator implements Algorithm { } } - medianX = FastElementSelector.randomizedSelect(xMedians, xMedians.size() / 2); - medianY = FastElementSelector.randomizedSelect(yMedians, yMedians.size() / 2); + medianX = FastElementSelector.randomizedSelect(xMedians, xMedians.size() * 0.5); + medianY = FastElementSelector.randomizedSelect(yMedians, yMedians.size() * 0.5); end = System.currentTimeMillis(); - System.out.println("Zeit: " + ((end - start) / 1000)); + Logging.logInfo("Zeit: " + ((end - start) / 1000)); } @Override diff --git a/LinearRegressionTool/src/main/java/presenter/algorithms/naiv/NaivTheilSenEstimator.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/naiv/NaivTheilSenEstimator.java similarity index 68% rename from LinearRegressionTool/src/main/java/presenter/algorithms/naiv/NaivTheilSenEstimator.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/naiv/NaivTheilSenEstimator.java index 5d8336b..5fcad9e 100644 --- a/LinearRegressionTool/src/main/java/presenter/algorithms/naiv/NaivTheilSenEstimator.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/algorithms/naiv/NaivTheilSenEstimator.java @@ -1,11 +1,12 @@ -package presenter.algorithms.naiv; +package de.wwwu.awolf.presenter.algorithms.naiv; -import model.Line; -import presenter.algorithms.Algorithm; -import presenter.util.FastElementSelector; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.presenter.algorithms.Algorithm; +import de.wwwu.awolf.presenter.util.FastElementSelector; +import de.wwwu.awolf.presenter.util.Logging; import java.util.ArrayList; -import java.util.LinkedList; +import java.util.List; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -17,7 +18,7 @@ import java.util.LinkedList; public class NaivTheilSenEstimator implements Algorithm { - private LinkedList lines; + private List lines; private double slope; private double yInterception; @@ -26,7 +27,7 @@ public class NaivTheilSenEstimator implements Algorithm { * * @param lines Liste der Geraden */ - public NaivTheilSenEstimator(LinkedList lines) { + public NaivTheilSenEstimator(List lines) { this.lines = lines; this.slope = 0d; this.yInterception = 0d; @@ -35,11 +36,11 @@ public class NaivTheilSenEstimator implements Algorithm { @Override public void run() { - System.out.println("=== S T A R T - naiv T S ==="); + Logging.logInfo("=== S T A R T - naiv T S ==="); long start; long end; start = System.currentTimeMillis(); - ArrayList slopesList = new ArrayList<>(); + List slopesList = new ArrayList<>(); int cnt = 0; for (int i = 0; i < lines.size(); i++) { double x = lines.get(i).getM(); @@ -55,18 +56,18 @@ public class NaivTheilSenEstimator implements Algorithm { } - ArrayList list1 = new ArrayList<>(); - ArrayList list2 = new ArrayList<>(); - for (int i = 0; i < lines.size(); i++) { - list1.add(lines.get(i).getM()); - list2.add(lines.get(i).getB()); + List list1 = new ArrayList<>(); + List list2 = new ArrayList<>(); + for (Line line : lines) { + list1.add(line.getM()); + list2.add(line.getB()); } - double median1 = FastElementSelector.randomizedSelect(list1, list1.size() / 2); - double median2 = FastElementSelector.randomizedSelect(list2, list2.size() / 2); - slope = FastElementSelector.randomizedSelect(slopesList, slopesList.size() / 2); + double median1 = FastElementSelector.randomizedSelect(list1, list1.size() * 0.5); + double median2 = FastElementSelector.randomizedSelect(list2, list2.size() * 0.5); + slope = FastElementSelector.randomizedSelect(slopesList, slopesList.size() * 0.5); yInterception = median2 - slope * median1; end = System.currentTimeMillis(); - System.out.println("Zeit: " + ((end - start) / 1000)); + Logging.logInfo("Zeit: " + ((end - start) / 1000)); } @Override diff --git a/LinearRegressionTool/src/main/java/presenter/evaluation/EvaluateAlgorithms.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/EvaluateAlgorithms.java similarity index 66% rename from LinearRegressionTool/src/main/java/presenter/evaluation/EvaluateAlgorithms.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/EvaluateAlgorithms.java index 0a8d18c..6ed89c0 100644 --- a/LinearRegressionTool/src/main/java/presenter/evaluation/EvaluateAlgorithms.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/EvaluateAlgorithms.java @@ -1,22 +1,29 @@ -package presenter.evaluation; +package de.wwwu.awolf.presenter.evaluation; -import model.Line; -import model.LineModel; -import model.Point; -import presenter.algorithms.advanced.LeastMedianOfSquaresEstimator; -import presenter.algorithms.advanced.RepeatedMedianEstimator; -import presenter.algorithms.advanced.TheilSenEstimator; -import presenter.algorithms.naiv.NaivLeastMedianOfSquaresEstimator; -import presenter.algorithms.naiv.NaivRepeatedMedianEstimator; -import presenter.algorithms.naiv.NaivTheilSenEstimator; -import presenter.generator.DatasetGenerator; -import presenter.io.DataImporter; -import presenter.util.IntersectionComputer; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.LineModel; +import de.wwwu.awolf.model.Point; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.model.communication.EvaluationData; +import de.wwwu.awolf.model.communication.SubscriberType; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.presenter.algorithms.Algorithm; +import de.wwwu.awolf.presenter.algorithms.advanced.LeastMedianOfSquaresEstimator; +import de.wwwu.awolf.presenter.algorithms.advanced.RepeatedMedianEstimator; +import de.wwwu.awolf.presenter.algorithms.advanced.TheilSenEstimator; +import de.wwwu.awolf.presenter.algorithms.naiv.NaivLeastMedianOfSquaresEstimator; +import de.wwwu.awolf.presenter.algorithms.naiv.NaivRepeatedMedianEstimator; +import de.wwwu.awolf.presenter.algorithms.naiv.NaivTheilSenEstimator; +import de.wwwu.awolf.presenter.generator.DatasetGenerator; +import de.wwwu.awolf.presenter.io.DataImporter; +import de.wwwu.awolf.presenter.util.IntersectionComputer; +import de.wwwu.awolf.presenter.util.Logging; import java.io.File; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.Observable; +import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Flow; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -25,25 +32,21 @@ import java.util.Observable; * @Email: a_wolf28@uni-muenster.de * @Date: 01.08.2017. */ -public class EvaluateAlgorithms extends Observable { +public class EvaluateAlgorithms implements Flow.Publisher { private LineModel arrangement; - private LinkedList lmsL; - private LinkedList rmL; - private LinkedList tsL; + private List lmsL; + private List rmL; + private List tsL; - private ArrayList lmsP; - private ArrayList tsP; + private List lmsP; + private List tsP; private Thread lmsThread; private Thread rmThread; private Thread tsThread; - private Double[] tsRes = new Double[2]; - private Double[] rmRes = new Double[2]; - private Double[] lmsRes = new Double[2]; - private DatasetGenerator generator; private String[][] names = {{"MSE", "RMSE", "MAE", "MDAE", "Steigung", "y-Achsenabschnitt", "S-MSE", "S-RMSE", "S-MAE", "S-MDAE", "Brute-force Steigung", "Brute-force y-Achsenabschnitt"}, {"MAPE", "MDAPE", "RMSPE", "RMDSPE", "Steigung", "y-Achsenabschnitt"}}; @@ -52,6 +55,7 @@ public class EvaluateAlgorithms extends Observable { private int type; private int iterations; private int alg; + private Flow.Subscriber subscriber; /** * Konstruktor zur evaluation @@ -67,9 +71,10 @@ public class EvaluateAlgorithms extends Observable { * 6 = lms, rm, ts, * @param datasettyp typ der zu generierenden Datensatz */ - public EvaluateAlgorithms(int type, int n, int alg, String datasettyp) { + public EvaluateAlgorithms(int type, int n, int alg, String datasettyp, Presenter presenter) { + subscribe(presenter); this.arrangement = new LineModel(); - generator = new DatasetGenerator(); + generator = new DatasetGenerator(presenter); switch (datasettyp) { case "Punktwolke": arrangement.setLines(generator.generateDataCloud(n)); @@ -85,10 +90,6 @@ public class EvaluateAlgorithms extends Observable { this.iterations = n; this.alg = alg; - //IntersectionCounter counter = new IntersectionCounter(); - //counter.run(arrangement.getLines(), new Interval(-99999, 99999)); - //counter.calculateIntersectionAbscissas(arrangement); - IntersectionComputer computer = new IntersectionComputer(arrangement.getLines()); arrangement.setNodes(computer.compute()); @@ -116,19 +117,15 @@ public class EvaluateAlgorithms extends Observable { public EvaluateAlgorithms(int type, int alg, File file) { this.arrangement = new LineModel(); - DataImporter importer = new DataImporter(file); + DataImporter importer = new DataImporter(file, this.subscriber); - LinkedList importedLines = importer.run(); + List importedLines = importer.run(); if (importedLines != null) arrangement.setLines(importedLines); this.type = type; this.alg = alg; - //IntersectionCounter counter = new IntersectionCounter(); - //counter.run(arrangement.getLines(), new Interval(-99999, 99999)); - //counter.calculateIntersectionAbscissas(arrangement); - IntersectionComputer computer = new IntersectionComputer(arrangement.getLines()); arrangement.setNodes(computer.compute()); @@ -147,36 +144,36 @@ public class EvaluateAlgorithms extends Observable { * @throws InterruptedException */ public void run() { - setChanged(); - String[] msg = {"eval-dataset-generated"}; - notifyObservers(msg); - ArrayList result; - ArrayList> multipleResults = new ArrayList<>(); + + List result; + List> multipleResults = new ArrayList<>(); + ExecutorService executorService = Executors.newCachedThreadPool(); + switch (type) { case 0: //der alg der gewählt wurde if (alg == 0) { - final double[] m = new double[1]; - final double[] b = new double[1]; - Thread t = new Thread(() -> { + final Line naivEstimator = new Line(0,0); + final Line advancedEstimator = new Line(0,0); + executorService.submit(() -> { NaivLeastMedianOfSquaresEstimator l = new NaivLeastMedianOfSquaresEstimator(arrangement.getLines()); l.run(); - m[0] = l.getM(); - b[0] = l.getB(); + naivEstimator.setM(l.getM()); + naivEstimator.setB(l.getB()); + }); + executorService.submit(() -> { + LeastMedianOfSquaresEstimator lmsAlg = new LeastMedianOfSquaresEstimator(lmsL, lmsP); + lmsAlg.run(); + lmsAlg.pepareResult(); + advancedEstimator.setM(lmsAlg.getSlope()); + advancedEstimator.setB(lmsAlg.getyInterception()); }); - t.start(); - try { - startLMS(); - t.join(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - result = getScaleDependentMeasure(arrangement.getLines(), lmsRes[0], lmsRes[1]); - result.addAll(getScaledErrorBasedMeasure(arrangement.getLines(), lmsRes[0], lmsRes[1], m[0], b[0])); - Double[] tmp = {lmsRes[0], lmsRes[1], m[0], b[0]}; - sendPlotLineResults(tmp, 0); + result = getScaleDependentMeasure(arrangement.getLines(), advancedEstimator.getM(), advancedEstimator.getB()); + result.addAll(getScaledErrorBasedMeasure(arrangement.getLines(), advancedEstimator.getM(), advancedEstimator.getB(), naivEstimator.getM(), naivEstimator.getB())); + Double[] tmp = {advancedEstimator.getM(), advancedEstimator.getB(), naivEstimator.getM(), naivEstimator.getB()}; + sendPlotLineResults(Arrays.asList(tmp), Algorithm.Type.LMS); } else if (alg == 1) { final double[] m = new double[1]; final double[] b = new double[1]; @@ -190,12 +187,13 @@ public class EvaluateAlgorithms extends Observable { try { startRM(); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } - result = getScaleDependentMeasure(arrangement.getLines(), rmRes[0], rmRes[1]); - result.addAll(getScaledErrorBasedMeasure(arrangement.getLines(), rmRes[0], rmRes[1], m[0], b[0])); - Double[] tmp = {rmRes[0], rmRes[1], m[0], b[0]}; - sendPlotLineResults(tmp, 1); + result = getScaleDependentMeasure(arrangement.getLines(), Double.valueOf(rmRes[0]), Double.valueOf(rmRes[1])); + result.addAll(getScaledErrorBasedMeasure(arrangement.getLines(), Double.valueOf(rmRes[0]), Double.valueOf(rmRes[1]), m[0], b[0])); + Double[] tmp = {Double.valueOf(rmRes[0]), Double.valueOf(rmRes[1]), m[0], b[0]}; + sendPlotLineResults(Arrays.asList(tmp), Algorithm.Type.NAIV_RM); } else { final double[] m = new double[1]; final double[] b = new double[1]; @@ -209,25 +207,27 @@ public class EvaluateAlgorithms extends Observable { try { startTS(); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } - result = getScaleDependentMeasure(arrangement.getLines(), tsRes[0], tsRes[1]); - result.addAll(getScaledErrorBasedMeasure(arrangement.getLines(), tsRes[0], tsRes[1], m[0], b[0])); - Double[] tmp = {tsRes[0], tsRes[1], m[0], b[0]}; - sendPlotLineResults(tmp, 2); + result = getScaleDependentMeasure(arrangement.getLines(), Double.valueOf(tsRes[0]), Double.valueOf(tsRes[1])); + result.addAll(getScaledErrorBasedMeasure(arrangement.getLines(), Double.valueOf(tsRes[0]), Double.valueOf(tsRes[1]), m[0], b[0])); + Double[] tmp = { Double.valueOf(tsRes[0]), Double.valueOf(tsRes[1]), m[0], b[0]}; + sendPlotLineResults(Arrays.asList(tmp), Algorithm.Type.NAIV_TS); } sendTableApproximationTypes(); sendTableApproximationData(result, alg); break; case 1: - ArrayList lineRes; + List> lineRes; switch (alg) { case 3: try { startLMS(); startRM(); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } result = getPercentigeErrorBasedMeasure(arrangement.getLines(), lmsRes[0], lmsRes[1]); @@ -238,9 +238,9 @@ public class EvaluateAlgorithms extends Observable { multipleResults.add(result); lineRes = new ArrayList<>(); - lineRes.add(lmsRes); - lineRes.add(rmRes); - sendPloteLineResults(lineRes, new Integer[]{0, 1}); + lineRes.add(Arrays.asList(lmsRes)); + lineRes.add(Arrays.asList(rmRes)); + sendPloteLineResults(lineRes, Arrays.asList(Algorithm.Type.LMS, Algorithm.Type.RM)); break; case 4: @@ -248,7 +248,8 @@ public class EvaluateAlgorithms extends Observable { startLMS(); startTS(); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } result = getPercentigeErrorBasedMeasure(arrangement.getLines(), lmsRes[0], lmsRes[1]); @@ -259,16 +260,17 @@ public class EvaluateAlgorithms extends Observable { multipleResults.add(result); lineRes = new ArrayList<>(); - lineRes.add(lmsRes); - lineRes.add(tsRes); - sendPloteLineResults(lineRes, new Integer[]{0, 2}); + lineRes.add(Arrays.asList(lmsRes)); + lineRes.add(Arrays.asList(tsRes)); + sendPloteLineResults(lineRes, Arrays.asList(Algorithm.Type.LMS, Algorithm.Type.TS)); break; case 5: try { startRM(); startTS(); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } result = fillPseudoResults(); @@ -279,9 +281,9 @@ public class EvaluateAlgorithms extends Observable { multipleResults.add(result); lineRes = new ArrayList<>(); - lineRes.add(rmRes); - lineRes.add(tsRes); - sendPloteLineResults(lineRes, new Integer[]{1, 2}); + lineRes.add(Arrays.asList(rmRes)); + lineRes.add(Arrays.asList(tsRes)); + sendPloteLineResults(lineRes, Arrays.asList(Algorithm.Type.RM, Algorithm.Type.TS)); break; case 6: try { @@ -289,7 +291,8 @@ public class EvaluateAlgorithms extends Observable { startRM(); startTS(); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } result = getPercentigeErrorBasedMeasure(arrangement.getLines(), lmsRes[0], lmsRes[1]); @@ -300,10 +303,10 @@ public class EvaluateAlgorithms extends Observable { multipleResults.add(result); lineRes = new ArrayList<>(); - lineRes.add(lmsRes); - lineRes.add(rmRes); - lineRes.add(tsRes); - sendPloteLineResults(lineRes, new Integer[]{0, 1, 2}); + lineRes.add(Arrays.asList(lmsRes)); + lineRes.add(Arrays.asList(rmRes)); + lineRes.add(Arrays.asList(tsRes)); + sendPloteLineResults(lineRes, Arrays.asList(Algorithm.Type.LMS, Algorithm.Type.RM, Algorithm.Type.TS)); break; } @@ -320,16 +323,15 @@ public class EvaluateAlgorithms extends Observable { * @param result Ergebnisse * @param col Spalte */ - public void sendTableApproximationData(ArrayList result, int col) { - ArrayList tableInput = new ArrayList<>(); - tableInput.add("eval-d"); - tableInput.add("" + col); + public void sendTableApproximationData(List result, int col) { + List tableInput = new ArrayList<>(); for (int i = 0; i < names[type].length; i++) { tableInput.add(result.get(i)); } tableInput.add(""); - setChanged(); - notifyObservers(tableInput.stream().toArray(String[]::new)); + EvaluationData data = new EvaluationData(); + data.setColumn(col); + data.setLabels(tableInput); tableInput.clear(); } @@ -338,9 +340,10 @@ public class EvaluateAlgorithms extends Observable { * * @param result Ergebnisse */ - public void sendTableApproximationData(ArrayList> result) { - ArrayList tableInput = new ArrayList<>(); + public void sendTableApproximationData(List> result) { + List tableInput = new ArrayList<>(); + //TODO Hääää? xD //iteration über die ApproximationsGüten -- Zeilen for (int j = 0; j <= result.get(0).size(); j++) { tableInput.add("eval-ds"); @@ -357,8 +360,12 @@ public class EvaluateAlgorithms extends Observable { tableInput.add(""); tableInput.add(""); } - setChanged(); - notifyObservers(tableInput.stream().toArray(String[]::new)); + + EvaluationData data = new EvaluationData(); + data.setType(SubscriberType.EVAL_DS); + data.setMultipleColumnResult(result); + this.subscriber.onNext(data); + tableInput.clear(); } } @@ -367,16 +374,10 @@ public class EvaluateAlgorithms extends Observable { * Die Art der Ergebnisse (MSE, RMSE,...) wird an der Beobachter übermittelt. */ public void sendTableApproximationTypes() { - ArrayList tableInput = new ArrayList<>(); - tableInput.add("eval-t"); - tableInput.add("" + 0); - for (int i = 0; i < names[type].length; i++) { - tableInput.add(names[type][i]); - } - tableInput.add(""); - setChanged(); - notifyObservers(tableInput.stream().toArray(String[]::new)); - tableInput.clear(); + EvaluationData data = new EvaluationData(); + data.setType(SubscriberType.EVAL_T); + data.setLabels(Arrays.asList(names[type])); + this.subscriber.onNext(data); } /** @@ -386,18 +387,12 @@ public class EvaluateAlgorithms extends Observable { * @param res Feld mit den Werten für die Steigung und dern y-Achsenabschnitt * @param alg code für welchen Algorithmus sich die Werte beziehen */ - public void sendPlotLineResults(Double[] res, int alg) { - //visualisiere m,b - - ArrayList lines = new ArrayList<>(); - lines.add("lines-res"); - lines.add("" + alg); - //lms res - for (int i = 0; i < res.length; i++) { - lines.add(res[i] + ""); - } - setChanged(); - notifyObservers(lines.stream().toArray(String[]::new)); + public void sendPlotLineResults(List res, Algorithm.Type alg) { + EvaluationData data = new EvaluationData(); + data.setType(SubscriberType.LINES_RES); + data.setAlgorithmtypes(Collections.singletonList(alg)); + data.setOneColumnresult(res); + this.subscriber.onNext(data); } /** @@ -407,18 +402,12 @@ public class EvaluateAlgorithms extends Observable { * @param res Feld mit den Werten für die Steigung und dern y-Achsenabschnitt (alle) * @param algs codes für welchen Algorithmus sich die Werte beziehen (alle) */ - public void sendPloteLineResults(ArrayList res, Integer[] algs) { - ArrayList lines = new ArrayList<>(); - lines.add("lines-res-mult"); - for (int i = 0; i < algs.length; i++) { - lines.add("" + algs[i]); - //lms res - Double[] tmp = res.get(i); - lines.add(tmp[0] + ""); - lines.add(tmp[1] + ""); - } - setChanged(); - notifyObservers(lines.stream().toArray(String[]::new)); + public void sendPloteLineResults(List> res, List algs) { + EvaluationData data = new EvaluationData(); + data.setType(SubscriberType.LINES_RES_MULT); + data.setAlgorithmtypes(algs); + data.setMultipleColumnResult(res); + this.subscriber.onNext(data); } /** @@ -433,6 +422,7 @@ public class EvaluateAlgorithms extends Observable { lmsAlg.pepareResult(); lmsRes[0] = lmsAlg.getSlope(); lmsRes[1] = lmsAlg.getyInterception(); + }); lmsThread.start(); lmsThread.join(); @@ -480,9 +470,9 @@ public class EvaluateAlgorithms extends Observable { * @param b y-Achsenabschnitt * @return Liste mit den Ergebnissen, bereit zum visualisieren */ - public ArrayList getScaleDependentMeasure(final LinkedList lines, final Double m, final Double b) { + public List getScaleDependentMeasure(final List lines, final Double m, final Double b) { ScaleDependentMeasure scaleDependentMeasure = new ScaleDependentMeasure(lines, m, b); - ArrayList ret = new ArrayList<>(); + List ret = new ArrayList<>(); ret.add(scaleDependentMeasure.mse().toString()); ret.add(scaleDependentMeasure.rmse().toString()); ret.add(scaleDependentMeasure.mae().toString()); @@ -501,7 +491,7 @@ public class EvaluateAlgorithms extends Observable { * @param b y-Achsenabschnitt * @return Liste mit den Ergebnissen, bereit zum visualisieren */ - public ArrayList getPercentigeErrorBasedMeasure(final LinkedList lines, final Double m, final Double b) { + public List getPercentigeErrorBasedMeasure(final List lines, final Double m, final Double b) { PercentageErrorBasedMeasure percentageErrorBasedMeasure = new PercentageErrorBasedMeasure(lines, m, b); ArrayList ret = new ArrayList<>(); ret.add(percentageErrorBasedMeasure.mape().toString()); @@ -521,9 +511,9 @@ public class EvaluateAlgorithms extends Observable { * @param b y-Achsenabschnitt * @return Liste mit den Ergebnissen, bereit zum visualisieren */ - public ArrayList getScaledErrorBasedMeasure(final LinkedList lines, final Double m, final Double b, final Double nM, final Double nB) { + public List getScaledErrorBasedMeasure(final List lines, final Double m, final Double b, final Double nM, final Double nB) { ScaledErrorBasedMeasure scaledErrorBasedMeasure = new ScaledErrorBasedMeasure(lines, m, b, nM, nB); - ArrayList ret = new ArrayList<>(); + List ret = new ArrayList<>(); ret.add(scaledErrorBasedMeasure.mse().toString()); ret.add(scaledErrorBasedMeasure.rmse().toString()); ret.add(scaledErrorBasedMeasure.mae().toString()); @@ -538,8 +528,8 @@ public class EvaluateAlgorithms extends Observable { * * @return */ - private ArrayList fillPseudoResults() { - ArrayList result = new ArrayList<>(); + private List fillPseudoResults() { + List result = new ArrayList<>(); result.add(" "); result.add(" "); result.add(" "); @@ -552,7 +542,12 @@ public class EvaluateAlgorithms extends Observable { /** * @return Liste der Geraden auf der die Berechnungen ausgeführt wurden */ - public LinkedList getData() { + public List getData() { return arrangement.getLines(); } + + @Override + public void subscribe(Flow.Subscriber subscriber) { + this.subscriber = subscriber; + } } diff --git a/LinearRegressionTool/src/main/java/presenter/evaluation/PercentageErrorBasedMeasure.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/PercentageErrorBasedMeasure.java similarity index 88% rename from LinearRegressionTool/src/main/java/presenter/evaluation/PercentageErrorBasedMeasure.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/PercentageErrorBasedMeasure.java index 86fcafc..c71266d 100644 --- a/LinearRegressionTool/src/main/java/presenter/evaluation/PercentageErrorBasedMeasure.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/PercentageErrorBasedMeasure.java @@ -1,10 +1,10 @@ -package presenter.evaluation; +package de.wwwu.awolf.presenter.evaluation; -import model.Line; -import presenter.util.FastElementSelector; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.presenter.util.FastElementSelector; import java.util.ArrayList; -import java.util.LinkedList; +import java.util.List; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -25,10 +25,10 @@ public class PercentageErrorBasedMeasure { * @param m Steigung * @param b y-Achenabschnitt */ - public PercentageErrorBasedMeasure(final LinkedList lines, Double m, Double b) { + public PercentageErrorBasedMeasure(final List lines, Double m, Double b) { //Berechnung des Sampson-Fehlers - ArrayList sampson = new ArrayList<>(); + List sampson = new ArrayList<>(); for (Line line : lines) { Double e = Math.pow(m * line.getM() - line.getB() + b, 2) / (Math.pow(m, 2) + 1); sampson.add(e); diff --git a/LinearRegressionTool/src/main/java/presenter/evaluation/PictureProcessor.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/PictureProcessor.java similarity index 85% rename from LinearRegressionTool/src/main/java/presenter/evaluation/PictureProcessor.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/PictureProcessor.java index 97b062e..592a062 100644 --- a/LinearRegressionTool/src/main/java/presenter/evaluation/PictureProcessor.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/PictureProcessor.java @@ -1,17 +1,21 @@ -package presenter.evaluation; +package de.wwwu.awolf.presenter.evaluation; -import model.Line; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.model.communication.SubscriberType; +import de.wwwu.awolf.model.communication.TypeData; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.presenter.util.Logging; import org.opencv.core.*; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; -import presenter.Presenter; import javax.swing.*; import java.awt.image.BufferedImage; import java.awt.image.DataBufferByte; import java.io.File; import java.util.ArrayList; -import java.util.Observable; +import java.util.concurrent.Flow; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -20,7 +24,7 @@ import java.util.Observable; * @Email: a_wolf28@uni-muenster.de * @Date: 17.09.2017. */ -public class PictureProcessor extends Observable { +public class PictureProcessor implements Flow.Publisher { private Mat image; private Mat contour; @@ -28,6 +32,7 @@ public class PictureProcessor extends Observable { private File file; private ArrayList contours; private double contourLength; + private Flow.Subscriber subscriber; /** * Konstruktor @@ -38,6 +43,7 @@ public class PictureProcessor extends Observable { public PictureProcessor(Presenter presenter, File file) { this.file = file; this.presenter = presenter; + subscribe(presenter); } /** @@ -133,15 +139,21 @@ public class PictureProcessor extends Observable { } } - setChanged(); - String[] msg = {"import-picture"}; - notifyObservers(msg); + TypeData data = new TypeData(); + data.setType(SubscriberType.PICTURE); + this.subscriber.onNext(data); }); t.start(); try { t.join(); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } } + + @Override + public void subscribe(Flow.Subscriber subscriber) { + this.subscriber = subscriber; + } } \ No newline at end of file diff --git a/LinearRegressionTool/src/main/java/presenter/evaluation/ScaleDependentMeasure.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/ScaleDependentMeasure.java similarity index 88% rename from LinearRegressionTool/src/main/java/presenter/evaluation/ScaleDependentMeasure.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/ScaleDependentMeasure.java index ea4ca5b..9c38d5b 100644 --- a/LinearRegressionTool/src/main/java/presenter/evaluation/ScaleDependentMeasure.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/ScaleDependentMeasure.java @@ -1,10 +1,10 @@ -package presenter.evaluation; +package de.wwwu.awolf.presenter.evaluation; -import model.Line; -import presenter.util.FastElementSelector; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.presenter.util.FastElementSelector; import java.util.ArrayList; -import java.util.LinkedList; +import java.util.List; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -24,7 +24,7 @@ public class ScaleDependentMeasure { * @param m Steigung * @param b y-Achsenabschnitt */ - public ScaleDependentMeasure(final LinkedList lines, Double m, Double b) { + public ScaleDependentMeasure(final List lines, Double m, Double b) { //Liste mit den Fehler zu jedem Punkt errorValues = new ArrayList<>(); diff --git a/LinearRegressionTool/src/main/java/presenter/evaluation/ScaledErrorBasedMeasure.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/ScaledErrorBasedMeasure.java similarity index 89% rename from LinearRegressionTool/src/main/java/presenter/evaluation/ScaledErrorBasedMeasure.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/ScaledErrorBasedMeasure.java index ea3d759..c9255d7 100644 --- a/LinearRegressionTool/src/main/java/presenter/evaluation/ScaledErrorBasedMeasure.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/evaluation/ScaledErrorBasedMeasure.java @@ -1,10 +1,10 @@ -package presenter.evaluation; +package de.wwwu.awolf.presenter.evaluation; -import model.Line; -import presenter.util.FastElementSelector; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.presenter.util.FastElementSelector; import java.util.ArrayList; -import java.util.LinkedList; +import java.util.List; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -29,7 +29,7 @@ public class ScaledErrorBasedMeasure { * @param naivSlope naive Steigung * @param naivInterception naiver y-Achsenabschnitt */ - public ScaledErrorBasedMeasure(final LinkedList lines, Double m, Double b, Double naivSlope, Double naivInterception) { + public ScaledErrorBasedMeasure(final List lines, Double m, Double b, Double naivSlope, Double naivInterception) { this.sampsonError = new ArrayList<>(); this.naivSampsonError = new ArrayList<>(); diff --git a/LinearRegressionTool/src/main/java/presenter/generator/DatasetGenerator.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/generator/DatasetGenerator.java similarity index 67% rename from LinearRegressionTool/src/main/java/presenter/generator/DatasetGenerator.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/generator/DatasetGenerator.java index 605beeb..c018be9 100644 --- a/LinearRegressionTool/src/main/java/presenter/generator/DatasetGenerator.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/generator/DatasetGenerator.java @@ -1,11 +1,17 @@ -package presenter.generator; +package de.wwwu.awolf.presenter.generator; -import model.Line; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.model.communication.GeneratorData; +import de.wwwu.awolf.model.communication.SubscriberType; +import de.wwwu.awolf.presenter.Presenter; +import java.security.SecureRandom; import java.util.HashMap; import java.util.LinkedList; -import java.util.Observable; -import java.util.Random; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Flow; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -14,30 +20,26 @@ import java.util.Random; * @Email: a_wolf28@uni-muenster.de * @Date: 01.08.2017. */ -public class DatasetGenerator extends Observable { +public class DatasetGenerator implements Flow.Publisher { private Double m; private Double b; - private Random random; + private SecureRandom random; + private Flow.Subscriber subscriber; /** * Konstruktor - * - * @param m Steigung - * @param b y-Achsenabschnitt */ - public DatasetGenerator(Double m, Double b) { - this.m = m; - this.b = b; - random = new Random(); - random.setSeed(9999); + public DatasetGenerator(Presenter presenter) { + random = new SecureRandom(); + this.subscribe(presenter); } /** * Konstruktor */ public DatasetGenerator() { - random = new Random(); + random = new SecureRandom(); } /** @@ -61,11 +63,8 @@ public class DatasetGenerator extends Observable { line.setId(i - 1 + ""); lines.add(line); } - String[] ret = {"generator", "Es wurden " + size + " Daten generiert mit den Parametern", - "
m = " + m + "", - "
b = " + b + ""}; - setChanged(); - notifyObservers(ret); + + communicate("Es wurden " + size + " Daten generiert mit den Parametern", m, b); return lines; } @@ -75,8 +74,8 @@ public class DatasetGenerator extends Observable { * @param size Größe des Datensatzes * @return Liste des Geraden */ - public LinkedList generateDataLines(int size) { - LinkedList lines = new LinkedList<>(); + public List generateDataLines(int size) { + List lines = new LinkedList<>(); return generateDataLines(lines, size); } @@ -88,12 +87,12 @@ public class DatasetGenerator extends Observable { * @param n Größe des Datensatzes * @return Liste des Geraden */ - private LinkedList generateDataLines(LinkedList lines, int n) { + private List generateDataLines(List lines, int n) { m = 5d; b = 0d; int size = 0; - HashMap points = new HashMap<>(); + Map points = new HashMap<>(); //speichere die Koordinaten in einer HashMap, damit keine Punkte //entstehen deren x-Koordinate zu sehr beieinander liegt. @@ -116,9 +115,7 @@ public class DatasetGenerator extends Observable { idx++; } - String[] ret = {"generator", "Es wurden " + n + " Daten generiert mit den Parametern"}; - setChanged(); - notifyObservers(ret); + communicate("Es wurden " + n + " Daten generiert mit den Parametern", m, b); return lines; } @@ -130,8 +127,8 @@ public class DatasetGenerator extends Observable { * @param size Größe des Datensatzes * @return Liste der Geraden */ - public LinkedList generateCircle(int size) { - LinkedList lines = new LinkedList<>(); + public List generateCircle(int size) { + List lines = new LinkedList<>(); double from = 0; double to = Math.PI * 5; @@ -159,5 +156,20 @@ public class DatasetGenerator extends Observable { return generateDataLines(lines, size / 2); } + @Override + public void subscribe(Flow.Subscriber subscriber) { + + } + + private void communicate(final String message, final double m, final double b) { + if (this.subscriber != null) { + GeneratorData data = new GeneratorData(); + data.setType(SubscriberType.GENERATOR); + data.setMessage(message); + data.setM(m); + data.setB(b); + this.subscriber.onNext(data); + } + } } diff --git a/LinearRegressionTool/src/main/java/presenter/io/DataExporter.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/io/DataExporter.java similarity index 55% rename from LinearRegressionTool/src/main/java/presenter/io/DataExporter.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/io/DataExporter.java index 604eb73..00b8054 100644 --- a/LinearRegressionTool/src/main/java/presenter/io/DataExporter.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/io/DataExporter.java @@ -1,13 +1,17 @@ -package presenter.io; +package de.wwwu.awolf.presenter.io; import com.opencsv.CSVWriter; -import model.Line; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.model.communication.ExportData; +import de.wwwu.awolf.model.communication.SubscriberType; +import de.wwwu.awolf.presenter.util.Logging; import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.util.LinkedList; -import java.util.Observable; +import java.util.List; +import java.util.concurrent.Flow; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -16,10 +20,11 @@ import java.util.Observable; * @Email: a_wolf28@uni-muenster.de * @Date: 03.08.2017. */ -public class DataExporter extends Observable { +public class DataExporter implements Flow.Publisher { - private LinkedList lines; + private List lines; private File file; + private Flow.Subscriber subscriber; /** * Konstruktor @@ -27,9 +32,10 @@ public class DataExporter extends Observable { * @param lines Liste der Geraden * @param file Datei in die, die Informationen exportiert werden sollen */ - public DataExporter(LinkedList lines, File file) { + public DataExporter(List lines, File file, Flow.Subscriber subscriber) { this.file = file; this.lines = lines; + subscribe(subscriber); } /** @@ -46,18 +52,25 @@ public class DataExporter extends Observable { for (Line line : lines) { entries[0] = line.getId(); entries[1] = line.getM().toString(); - Double tmp = (-1) * line.getB(); - entries[2] = tmp.toString(); + double tmp = (-1) * line.getB(); + entries[2] = Double.toString(tmp); writer.writeNext(entries); } writer.close(); String[] ret = {"export", "Das aktuelle Modell wurde erfolgreich unter: " + file.getAbsolutePath() + " gespeichert."}; - setChanged(); - notifyObservers(ret); + + ExportData data = new ExportData(); + data.setType(SubscriberType.EXPORT); + data.setMessage("Das aktuelle Modell wurde erfolgreich unter: " + file.getAbsolutePath() + " gespeichert."); + this.subscriber.onNext(data); } catch (IOException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); } } + @Override + public void subscribe(Flow.Subscriber subscriber) { + this.subscriber = subscriber; + } } diff --git a/LinearRegressionTool/src/main/java/presenter/io/DataImporter.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/io/DataImporter.java similarity index 58% rename from LinearRegressionTool/src/main/java/presenter/io/DataImporter.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/io/DataImporter.java index 31dbd8b..2ee8e47 100644 --- a/LinearRegressionTool/src/main/java/presenter/io/DataImporter.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/io/DataImporter.java @@ -1,7 +1,11 @@ -package presenter.io; +package de.wwwu.awolf.presenter.io; import com.opencsv.CSVReader; -import model.Line; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.communication.Data; +import de.wwwu.awolf.model.communication.ImportData; +import de.wwwu.awolf.model.communication.SubscriberType; +import de.wwwu.awolf.presenter.util.Logging; import javax.swing.*; import java.io.File; @@ -10,7 +14,7 @@ import java.io.FileReader; import java.io.IOException; import java.util.LinkedList; import java.util.List; -import java.util.Observable; +import java.util.concurrent.Flow; /** @@ -20,24 +24,23 @@ import java.util.Observable; * @Email: a_wolf28@uni-muenster.de * @Date: 21.06.2017. */ -public class DataImporter extends Observable { +public class DataImporter implements Flow.Publisher { - private File file; private CSVReader reader; + private Flow.Subscriber subscriber; /** * Konstruktor * * @param file Datei aus der die Informationen imortiert werden sollen. */ - public DataImporter(File file) { - //System.out.println(this.model.getLines().size()+ " die Anzahl der aktuellen Lines."); - this.file = file; - try { + public DataImporter(File file, Flow.Subscriber subscriber) { + subscribe(subscriber); + try { this.reader = new CSVReader(new FileReader(file)); } catch (FileNotFoundException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); } } @@ -48,52 +51,68 @@ public class DataImporter extends Observable { * * @return Liste der Geraden */ - public LinkedList run() { - LinkedList list = new LinkedList<>(); + public List run() { + List list = new LinkedList<>(); try { List lines = reader.readAll(); int counter = 0; String[] result = {"import", lines.size() + "", ""}; - //System.out.println("+-------------------------------------------------------------------------------+"); for (String[] nextLine : lines) { if (nextLine.length == 3) { - Double x = Double.parseDouble(nextLine[1]); - Double y = Double.parseDouble(nextLine[2]) * (-1); + double x = Double.parseDouble(nextLine[1]); + double y = Double.parseDouble(nextLine[2]) * (-1); Line line = new Line(x, y); line.setId(nextLine[0] + ""); if (!list.contains(line)) { list.add(line); } - setChanged(); counter++; result[2] = counter + ""; Thread.sleep(10); - notifyObservers(result); + + + communicate(counter, lines.size()); } else if (nextLine.length == 2) { - Double x = Double.parseDouble(nextLine[1]); - Double y = Double.parseDouble(nextLine[2]) * (-1); + double x = Double.parseDouble(nextLine[1]); + double y = Double.parseDouble(nextLine[2]) * (-1); Line line = new Line(x, y); line.setId(counter + ""); if (!list.contains(line)) { list.add(line); } - setChanged(); + counter++; result[2] = counter + ""; Thread.sleep(10); - notifyObservers(result); + + communicate(counter, lines.size()); } else { JOptionPane.showMessageDialog(null, "Diese Datei kann nicht importiert werden." + "Es müssen mindestens zwei Spalten enthalten sein (x,y).", "Fehler bei der Eingabe", JOptionPane.ERROR_MESSAGE); + Logging.logWarning("Diese Datei kann nicht importiert werden. Es müssen mindestens zwei Spalten enthalten sein (x,y). Fehler bei der Eingabe"); return null; } } } catch (IOException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } return list; } + private void communicate(int counter, int size) { + // communication + ImportData data = new ImportData(); + data.setType(SubscriberType.IMPORT); + data.setCurrent(counter); + data.setNumberOfLines(size); + this.subscriber.onNext(data); + } + + @Override + public void subscribe(Flow.Subscriber subscriber) { + this.subscriber = subscriber; + } } diff --git a/LinearRegressionTool/src/main/java/presenter/util/BinomialCoeffizient.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/BinomialCoeffizient.java similarity index 94% rename from LinearRegressionTool/src/main/java/presenter/util/BinomialCoeffizient.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/BinomialCoeffizient.java index 295b9f9..7d69eb2 100644 --- a/LinearRegressionTool/src/main/java/presenter/util/BinomialCoeffizient.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/BinomialCoeffizient.java @@ -1,4 +1,4 @@ -package presenter.util; +package de.wwwu.awolf.presenter.util; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. diff --git a/LinearRegressionTool/src/main/java/presenter/util/Comparators/YOrderLineComparatorBegin.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Comparators/YOrderLineComparatorBegin.java similarity index 82% rename from LinearRegressionTool/src/main/java/presenter/util/Comparators/YOrderLineComparatorBegin.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Comparators/YOrderLineComparatorBegin.java index b22a320..2519d00 100644 --- a/LinearRegressionTool/src/main/java/presenter/util/Comparators/YOrderLineComparatorBegin.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Comparators/YOrderLineComparatorBegin.java @@ -1,6 +1,6 @@ -package presenter.util.Comparators; +package de.wwwu.awolf.presenter.util.Comparators; -import model.Line; +import de.wwwu.awolf.model.Line; import java.util.Comparator; diff --git a/LinearRegressionTool/src/main/java/presenter/util/Comparators/YOrderLineComparatorEnd.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Comparators/YOrderLineComparatorEnd.java similarity index 82% rename from LinearRegressionTool/src/main/java/presenter/util/Comparators/YOrderLineComparatorEnd.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Comparators/YOrderLineComparatorEnd.java index 123979a..618f995 100644 --- a/LinearRegressionTool/src/main/java/presenter/util/Comparators/YOrderLineComparatorEnd.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Comparators/YOrderLineComparatorEnd.java @@ -1,6 +1,6 @@ -package presenter.util.Comparators; +package de.wwwu.awolf.presenter.util.Comparators; -import model.Line; +import de.wwwu.awolf.model.Line; import java.util.Comparator; diff --git a/LinearRegressionTool/src/main/java/presenter/util/FastElementSelector.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/FastElementSelector.java similarity index 94% rename from LinearRegressionTool/src/main/java/presenter/util/FastElementSelector.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/FastElementSelector.java index 4b65e79..3818e1a 100644 --- a/LinearRegressionTool/src/main/java/presenter/util/FastElementSelector.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/FastElementSelector.java @@ -1,8 +1,8 @@ -package presenter.util; +package de.wwwu.awolf.presenter.util; +import java.security.SecureRandom; import java.util.Collections; import java.util.List; -import java.util.Random; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -58,7 +58,7 @@ public class FastElementSelector { */ private static int randomizedPartition(List a, int start, int end) { int i = 0; - Random random = new Random(System.currentTimeMillis()); + SecureRandom random = new SecureRandom(); //alternative: ThreadLocalRandom.current() if (start < end) { diff --git a/LinearRegressionTool/src/main/java/presenter/util/IntersectionComputer.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/IntersectionComputer.java similarity index 92% rename from LinearRegressionTool/src/main/java/presenter/util/IntersectionComputer.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/IntersectionComputer.java index e91c694..3e1d277 100644 --- a/LinearRegressionTool/src/main/java/presenter/util/IntersectionComputer.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/IntersectionComputer.java @@ -1,12 +1,12 @@ -package presenter.util; +package de.wwwu.awolf.presenter.util; -import model.Interval; -import model.Line; -import model.Point; +import de.wwwu.awolf.model.Interval; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Point; import java.util.ArrayList; -import java.util.LinkedList; import java.util.List; +import java.util.Set; import java.util.TreeSet; /** @@ -18,8 +18,8 @@ import java.util.TreeSet; */ public class IntersectionComputer { - private LinkedList lines; - private TreeSet intersections; + private List lines; + private Set intersections; private Double xMinimum; private Double xMaximum; @@ -33,7 +33,7 @@ public class IntersectionComputer { * * @param lines Liste der Geraden */ - public IntersectionComputer(LinkedList lines) { + public IntersectionComputer(List lines) { this.lines = lines; this.worker = new Thread[4]; this.intersections = new TreeSet<>(); @@ -78,7 +78,8 @@ public class IntersectionComputer { try { t.join(); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } } } else { @@ -118,7 +119,7 @@ public class IntersectionComputer { * * @return Liste der Geraden */ - public synchronized LinkedList getLines() { + public synchronized List getLines() { return lines; } diff --git a/LinearRegressionTool/src/main/java/presenter/util/IntersectionCounter.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/IntersectionCounter.java similarity index 92% rename from LinearRegressionTool/src/main/java/presenter/util/IntersectionCounter.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/IntersectionCounter.java index d410154..a81bfce 100644 --- a/LinearRegressionTool/src/main/java/presenter/util/IntersectionCounter.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/IntersectionCounter.java @@ -1,11 +1,11 @@ -package presenter.util; +package de.wwwu.awolf.presenter.util; -import model.Interval; -import model.Line; -import model.Pair; -import model.Point; -import presenter.util.Comparators.YOrderLineComparatorBegin; -import presenter.util.Comparators.YOrderLineComparatorEnd; +import de.wwwu.awolf.model.Interval; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Pair; +import de.wwwu.awolf.model.Point; +import de.wwwu.awolf.presenter.util.Comparators.YOrderLineComparatorBegin; +import de.wwwu.awolf.presenter.util.Comparators.YOrderLineComparatorEnd; import java.util.*; @@ -161,7 +161,7 @@ public class IntersectionCounter { } else { //merke die inversionspaare for (int i = left; i <= mid; i++) { - // System.out.println(aux.get(i)+" -- "+ aux.get(right)); + // Logging.logInfo(aux.get(i)+" -- "+ aux.get(right)); inversions.add(new Pair(aux.get(i), aux.get(right))); } a.set(index++, aux.get(right++)); @@ -210,9 +210,9 @@ public class IntersectionCounter { * @param sampledLine eine spezielle Gerade * @return Liste mit x Koordinaten der Schnittpunkte */ - public ArrayList calculateIntersectionAbscissas(ArrayList set, Line sampledLine) { - LinkedList lines = new LinkedList<>(set); - ArrayList intersections = new ArrayList<>(); + public List calculateIntersectionAbscissas(List set, Line sampledLine) { + List lines = new LinkedList<>(set); + List intersections = new ArrayList<>(); double intersection; for (Line line : lines) { diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Logging.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Logging.java new file mode 100644 index 0000000..9aefcd8 --- /dev/null +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/Logging.java @@ -0,0 +1,40 @@ +package de.wwwu.awolf.presenter.util; + + +import org.apache.log4j.Logger; + +public class Logging { + private static Logger logger = Logger.getRootLogger(); + + public static void logInfo(final String message, Throwable throwable) { + logger.info(message, throwable); + } + + public static void logInfo(final String message) { + logger.info(message); + } + + public static void logDebug(final String message, Throwable throwable) { + logger.debug(message, throwable); + } + + public static void logDebug(final String message) { + logger.debug(message); + } + + public static void logWarning(final String message, Throwable throwable) { + logger.warn(message, throwable); + } + + public static void logWarning(final String message) { + logger.warn(message); + } + + public static void logError(final String message, Throwable throwable) { + logger.error(message, throwable); + } + + public static void logError(final String message) { + logger.error(message); + } +} diff --git a/LinearRegressionTool/src/main/java/presenter/util/RandomSampler.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/RandomSampler.java similarity index 66% rename from LinearRegressionTool/src/main/java/presenter/util/RandomSampler.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/RandomSampler.java index 5bac296..a2cf1ef 100644 --- a/LinearRegressionTool/src/main/java/presenter/util/RandomSampler.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/RandomSampler.java @@ -1,11 +1,11 @@ -package presenter.util; +package de.wwwu.awolf.presenter.util; -import model.Line; -import model.Point; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Point; +import java.security.SecureRandom; import java.util.ArrayList; -import java.util.Random; -import java.util.concurrent.ThreadLocalRandom; +import java.util.List; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -16,6 +16,12 @@ import java.util.concurrent.ThreadLocalRandom; */ public class RandomSampler { + private static SecureRandom random = new SecureRandom(); // Compliant for security-sensitive use cases + + private RandomSampler() { + super(); + } + /** * Diese Methode liefert eine r Elementige zufällige Stichprobe an Geraden. * @@ -23,12 +29,12 @@ public class RandomSampler { * @param r Anzahl der zu wählenden Geraden * @return r Elementige zufällige Stichprobe an Geraden */ - public static ArrayList run(ArrayList set, Double r, Integer indexOfEnd) { + public static List run(List set, Double r, Integer indexOfEnd) { - ArrayList sampledLines = new ArrayList<>(); + List sampledLines = new ArrayList<>(); for (int i = 0; i < r; i++) { - sampledLines.add(set.get(ThreadLocalRandom.current().nextInt(0, indexOfEnd))); + sampledLines.add(set.get(random.nextInt(indexOfEnd))); } return sampledLines; @@ -41,17 +47,16 @@ public class RandomSampler { * @param r Anzahl der zu wählenden Geraden * @return r Elementige zufällige Stichprobe an Schnittpunkten */ - public static ArrayList run(ArrayList set, Double r) { + public static List run(List set, Double r) { - ArrayList sampledLines = new ArrayList<>(); + List sampledLines = new ArrayList<>(); for (Point p : set) { sampledLines.add(p.getX()); } - Random rand = new Random(); int inputSize = sampledLines.size(); for (int i = 0; i < r; i++) { - int indexToSwap = i + rand.nextInt(inputSize - i); + int indexToSwap = i + random.nextInt(inputSize - i); Double temp = sampledLines.get(i); sampledLines.set(i, sampledLines.get(indexToSwap)); sampledLines.set(indexToSwap, temp); diff --git a/LinearRegressionTool/src/main/java/view/MainFrame.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/MainFrame.java similarity index 92% rename from LinearRegressionTool/src/main/java/view/MainFrame.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/MainFrame.java index 6299cd8..8328c27 100644 --- a/LinearRegressionTool/src/main/java/view/MainFrame.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/MainFrame.java @@ -1,18 +1,19 @@ -package view; +package de.wwwu.awolf.view; -import model.Line; -import presenter.AbstractPresenter; -import presenter.Presenter; -import view.listener.*; -import view.panels.DualityPanel; -import view.panels.EvaluationPanel; -import view.panels.InfoPanel; -import view.panels.PlotPanel; -import view.panels.tabs.LMSPanel; -import view.panels.tabs.RMPanel; -import view.panels.tabs.TSPanel; -import view.panels.tabs.TabPanel; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.presenter.AbstractPresenter; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.presenter.util.Logging; +import de.wwwu.awolf.view.listener.*; +import de.wwwu.awolf.view.panels.DualityPanel; +import de.wwwu.awolf.view.panels.EvaluationPanel; +import de.wwwu.awolf.view.panels.InfoPanel; +import de.wwwu.awolf.view.panels.PlotPanel; +import de.wwwu.awolf.view.panels.tabs.LMSPanel; +import de.wwwu.awolf.view.panels.tabs.RMPanel; +import de.wwwu.awolf.view.panels.tabs.TSPanel; +import de.wwwu.awolf.view.panels.tabs.TabPanel; import javax.imageio.ImageIO; import javax.swing.*; @@ -20,7 +21,6 @@ import java.awt.*; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.LinkedList; import java.util.List; /** @@ -131,6 +131,17 @@ public class MainFrame extends JFrame { createPlot(m, b, plotLMS, lmsPanel, "LMS"); } + /** + * Visualisiert das Ergebnis des LMS-Schätzers + * + * @param line Line + */ + public void visualizeLMS(final Line line) { + plotLMS = new PlotPanel(); + lmsPanel.setPlotPanel(plotLMS); + createPlot(line.getM(), line.getB(), plotLMS, lmsPanel, "LMS"); + } + /** * Visualisiert das Ergebnis des RM-Schätzers * @@ -143,6 +154,17 @@ public class MainFrame extends JFrame { createPlot(m, b, plotRM, rmPanel, "RM"); } + /** + * Visualisiert das Ergebnis des RM-Schätzers + * + * @param line Line + */ + public void visualizeRM(final Line line) { + plotRM = new PlotPanel(); + rmPanel.setPlotPanel(plotRM); + createPlot(line.getM(), line.getB(), plotRM, rmPanel, "RM"); + } + /** * Visualisiert das Ergebnis des TS-Schätzers * @@ -155,6 +177,17 @@ public class MainFrame extends JFrame { createPlot(m, b, plotTS, tsPanel, "TS"); } + /** + * Visualisiert das Ergebnis des TS-Schätzers + * + * @param line Line + */ + public void visualizeTS(final Line line) { + plotTS = new PlotPanel(); + tsPanel.setPlotPanel(plotTS); + createPlot(line.getM(), line.getB(), plotTS, tsPanel, "TS"); + } + /** * Erzeugt den Plot zu einer Eingabe von Punkten und der Lösung eines Schätzers (m,b) * @@ -268,7 +301,7 @@ public class MainFrame extends JFrame { public void drawLineResults(Object[] res) { SwingUtilities.invokeLater(() -> { Object[] result = Arrays.copyOfRange(res, 1, res.length); - ArrayList algs = new ArrayList<>(); + List algs = new ArrayList<>(); for (int i = 0; i < (result.length + 1) / 3; i++) { String name = (String) result[(3 * i)]; @@ -289,7 +322,7 @@ public class MainFrame extends JFrame { * * @param lines Liste der Geraden */ - public void addEvalDataset(LinkedList lines) { + public void addEvalDataset(List lines) { SwingUtilities.invokeLater(() -> { evaluationPanel.setDualPoints(lines); evaluationPanel.repaint(); @@ -444,7 +477,7 @@ public class MainFrame extends JFrame { tsPanel.getStartButton().setIcon(new ImageIcon(imgStart)); this.setIconImage(imgFrame); } catch (IOException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); } } diff --git a/LinearRegressionTool/src/main/java/view/MenuBar.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/MenuBar.java similarity index 89% rename from LinearRegressionTool/src/main/java/view/MenuBar.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/MenuBar.java index 0cae18f..ec96607 100644 --- a/LinearRegressionTool/src/main/java/view/MenuBar.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/MenuBar.java @@ -1,11 +1,11 @@ -package view; +package de.wwwu.awolf.view; -import presenter.Presenter; -import view.listener.ExportDataListener; -import view.listener.GenerateDataListener; -import view.listener.ImportDataListener; -import view.listener.PictureImportListener; -import view.panels.AboutPanel; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.view.listener.ExportDataListener; +import de.wwwu.awolf.view.listener.GenerateDataListener; +import de.wwwu.awolf.view.listener.ImportDataListener; +import de.wwwu.awolf.view.listener.PictureImportListener; +import de.wwwu.awolf.view.panels.AboutPanel; import javax.swing.*; diff --git a/LinearRegressionTool/src/main/java/view/custom/ButtonGroupAtLeastTwo.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/custom/ButtonGroupAtLeastTwo.java similarity index 98% rename from LinearRegressionTool/src/main/java/view/custom/ButtonGroupAtLeastTwo.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/custom/ButtonGroupAtLeastTwo.java index 8dd6c82..42af943 100644 --- a/LinearRegressionTool/src/main/java/view/custom/ButtonGroupAtLeastTwo.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/custom/ButtonGroupAtLeastTwo.java @@ -1,4 +1,4 @@ -package view.custom; +package de.wwwu.awolf.view.custom; import javax.swing.*; import java.util.HashSet; diff --git a/LinearRegressionTool/src/main/java/view/custom/ColorColumnRenderer.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/custom/ColorColumnRenderer.java similarity index 96% rename from LinearRegressionTool/src/main/java/view/custom/ColorColumnRenderer.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/custom/ColorColumnRenderer.java index 226149a..5b60323 100644 --- a/LinearRegressionTool/src/main/java/view/custom/ColorColumnRenderer.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/custom/ColorColumnRenderer.java @@ -1,4 +1,4 @@ -package view.custom; +package de.wwwu.awolf.view.custom; import javax.swing.*; import javax.swing.table.DefaultTableCellRenderer; diff --git a/LinearRegressionTool/src/main/java/view/listener/DualityVisualizerListener.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/DualityVisualizerListener.java similarity index 90% rename from LinearRegressionTool/src/main/java/view/listener/DualityVisualizerListener.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/DualityVisualizerListener.java index 16da16a..47798f8 100644 --- a/LinearRegressionTool/src/main/java/view/listener/DualityVisualizerListener.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/DualityVisualizerListener.java @@ -1,6 +1,6 @@ -package view.listener; +package de.wwwu.awolf.view.listener; -import presenter.Presenter; +import de.wwwu.awolf.presenter.Presenter; import javax.swing.*; import java.awt.event.ActionEvent; diff --git a/LinearRegressionTool/src/main/java/view/listener/ExportDataListener.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/ExportDataListener.java similarity index 91% rename from LinearRegressionTool/src/main/java/view/listener/ExportDataListener.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/ExportDataListener.java index 8cf4ed0..9ed961c 100644 --- a/LinearRegressionTool/src/main/java/view/listener/ExportDataListener.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/ExportDataListener.java @@ -1,6 +1,6 @@ -package view.listener; +package de.wwwu.awolf.view.listener; -import presenter.Presenter; +import de.wwwu.awolf.presenter.Presenter; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; @@ -45,7 +45,7 @@ public class ExportDataListener implements ActionListener { if (chooser.showSaveDialog(component) == JFileChooser.APPROVE_OPTION) { - //System.out.println ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); + //Logging.logInfo ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); file = chooser.getSelectedFile(); String filename = file.getAbsolutePath().contains(".csv") ? file.getAbsolutePath() : file.getAbsolutePath().concat(".csv"); File withExtension = new File(filename); diff --git a/LinearRegressionTool/src/main/java/view/listener/GenerateDataListener.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/GenerateDataListener.java similarity index 96% rename from LinearRegressionTool/src/main/java/view/listener/GenerateDataListener.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/GenerateDataListener.java index 0fc0ee5..7463a12 100644 --- a/LinearRegressionTool/src/main/java/view/listener/GenerateDataListener.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/GenerateDataListener.java @@ -1,6 +1,6 @@ -package view.listener; +package de.wwwu.awolf.view.listener; -import presenter.Presenter; +import de.wwwu.awolf.presenter.Presenter; import javax.swing.*; import java.awt.*; diff --git a/LinearRegressionTool/src/main/java/view/listener/ImportDataListener.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/ImportDataListener.java similarity index 90% rename from LinearRegressionTool/src/main/java/view/listener/ImportDataListener.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/ImportDataListener.java index c07a75f..007de71 100644 --- a/LinearRegressionTool/src/main/java/view/listener/ImportDataListener.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/ImportDataListener.java @@ -1,6 +1,6 @@ -package view.listener; +package de.wwwu.awolf.view.listener; -import presenter.Presenter; +import de.wwwu.awolf.presenter.Presenter; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; @@ -46,7 +46,7 @@ public class ImportDataListener implements ActionListener { if (chooser.showOpenDialog(component) == JFileChooser.APPROVE_OPTION) { - //System.out.println ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); + //Logging.logInfo ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); file = chooser.getSelectedFile(); final File input = file; Thread t = new Thread(() -> presenter.startImport(input)); diff --git a/LinearRegressionTool/src/main/java/view/listener/PictureImportListener.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/PictureImportListener.java similarity index 90% rename from LinearRegressionTool/src/main/java/view/listener/PictureImportListener.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/PictureImportListener.java index 46116fc..f88d8ab 100644 --- a/LinearRegressionTool/src/main/java/view/listener/PictureImportListener.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/PictureImportListener.java @@ -1,6 +1,6 @@ -package view.listener; +package de.wwwu.awolf.view.listener; -import presenter.Presenter; +import de.wwwu.awolf.presenter.Presenter; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; @@ -45,7 +45,7 @@ public class PictureImportListener implements ActionListener { if (chooser.showOpenDialog(component) == JFileChooser.APPROVE_OPTION) { - //System.out.println ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); + //Logging.logInfo ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); file = chooser.getSelectedFile(); final File input = file; Thread t = new Thread(() -> presenter.startPictureDataImport(input)); diff --git a/LinearRegressionTool/src/main/java/view/listener/StartAlgorithmListener.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/StartAlgorithmListener.java similarity index 85% rename from LinearRegressionTool/src/main/java/view/listener/StartAlgorithmListener.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/StartAlgorithmListener.java index cef3be0..01bee78 100644 --- a/LinearRegressionTool/src/main/java/view/listener/StartAlgorithmListener.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/StartAlgorithmListener.java @@ -1,10 +1,10 @@ -package view.listener; +package de.wwwu.awolf.view.listener; -import presenter.Presenter; -import view.panels.tabs.LMSPanel; -import view.panels.tabs.RMPanel; -import view.panels.tabs.TSPanel; -import view.panels.tabs.TabPanel; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.view.panels.tabs.LMSPanel; +import de.wwwu.awolf.view.panels.tabs.RMPanel; +import de.wwwu.awolf.view.panels.tabs.TSPanel; +import de.wwwu.awolf.view.panels.tabs.TabPanel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; diff --git a/LinearRegressionTool/src/main/java/view/panels/AboutPanel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/AboutPanel.java similarity index 85% rename from LinearRegressionTool/src/main/java/view/panels/AboutPanel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/AboutPanel.java index 66991ae..8cbce2f 100644 --- a/LinearRegressionTool/src/main/java/view/panels/AboutPanel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/AboutPanel.java @@ -1,4 +1,6 @@ -package view.panels; +package de.wwwu.awolf.view.panels; + +import de.wwwu.awolf.presenter.util.Logging; import javax.imageio.ImageIO; import javax.swing.*; @@ -8,6 +10,7 @@ import javax.swing.text.StyleConstants; import javax.swing.text.StyledDocument; import java.awt.*; import java.io.IOException; +import java.util.Objects; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -47,16 +50,16 @@ public class AboutPanel extends JPanel { try { doc.insertString(0, text, attrs); } catch (BadLocationException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); } doc.setParagraphAttributes(0, doc.getLength() - 1, attrs, false); contentPane.add(this.textArea, BorderLayout.CENTER); ClassLoader classLoader = getClass().getClassLoader(); try { - image = new ImageIcon(ImageIO.read(classLoader.getResource("wwu.png")).getScaledInstance(300, 87, Image.SCALE_SMOOTH)); + image = new ImageIcon(ImageIO.read(Objects.requireNonNull(classLoader.getResource("wwu.png"))).getScaledInstance(300, 87, Image.SCALE_SMOOTH)); } catch (IOException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); } this.imageContainer = new JLabel(image); contentPane.add(imageContainer, BorderLayout.NORTH); diff --git a/LinearRegressionTool/src/main/java/view/panels/DualityPanel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/DualityPanel.java similarity index 90% rename from LinearRegressionTool/src/main/java/view/panels/DualityPanel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/DualityPanel.java index 2374ced..9a605b7 100644 --- a/LinearRegressionTool/src/main/java/view/panels/DualityPanel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/DualityPanel.java @@ -1,7 +1,7 @@ -package view.panels; +package de.wwwu.awolf.view.panels; -import model.Line; -import model.Point; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Point; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; @@ -20,8 +20,8 @@ import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; -import java.util.ArrayList; import java.util.LinkedList; +import java.util.List; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -32,8 +32,8 @@ import java.util.LinkedList; */ public class DualityPanel extends JPanel { - private LinkedList lines; - private LinkedList points; + private List lines; + private List points; private JFreeChart chart; private ChartPanel panel; private XYSeriesCollection dataset; @@ -67,7 +67,7 @@ public class DualityPanel extends JPanel { * @param ymin minimale y-Koordinate * @param ymax maximale y-Koordinate */ - public void setPrameters(LinkedList lines, ArrayList points, Double xmin, Double xmax, Double ymin, Double ymax) { + public void setPrameters(List lines, List points, Double xmin, Double xmax, Double ymin, Double ymax) { this.lines = new LinkedList<>(lines); this.points = new LinkedList<>(points); this.domainMin = xmin; @@ -192,25 +192,26 @@ public class DualityPanel extends JPanel { @Override public void mouseWheelMoved(MouseWheelEvent e) { - Double min; - Double max; - Double val = e.getPreciseWheelRotation() * -1; + double min; + double max; + Double val; + val = e.getPreciseWheelRotation() * -1; - if (ctrlPressed == true) { - //System.out.println("CTRL + ZOOM"); + if (ctrlPressed) { + //Logging.logInfo("CTRL + ZOOM"); min = range.getLowerBound(); max = range.getUpperBound(); DateRange dateRangeX = move(val, min, max); range.setRange(dateRangeX); - } else if (shiftPressed == true) { - //System.out.println("SHIFT + ZOOM"); + } else if (shiftPressed) { + //Logging.logInfo("SHIFT + ZOOM"); min = domain.getLowerBound(); max = domain.getUpperBound(); DateRange dateRangeY = move(val, min, max); domain.setRange(dateRangeY); } else { - Double x = Double.valueOf(e.getY()); - Double y = Double.valueOf(e.getY()); + Double x = (double) e.getY(); + Double y = (double) e.getY(); if (e.getScrollType() != MouseWheelEvent.WHEEL_UNIT_SCROLL) return; if (e.getWheelRotation() < 0) @@ -266,9 +267,9 @@ public class DualityPanel extends JPanel { int width = chartP.getMaximumDrawWidth() - chartP.getMinimumDrawWidth(); int height = chartP.getMaximumDrawHeight() - chartP.getMinimumDrawWidth(); if (increase) { - chartP.zoomInBoth(width / 2, height / 2); + chartP.zoomInBoth(width * 0.5, height * 0.5); } else { - chartP.zoomOutBoth(width / 2, height / 2); + chartP.zoomOutBoth(width * 0.5, height * 0.5); } } diff --git a/LinearRegressionTool/src/main/java/view/panels/EvaluationPanel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/EvaluationPanel.java similarity index 86% rename from LinearRegressionTool/src/main/java/view/panels/EvaluationPanel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/EvaluationPanel.java index 607ce70..6df20c9 100644 --- a/LinearRegressionTool/src/main/java/view/panels/EvaluationPanel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/EvaluationPanel.java @@ -1,10 +1,10 @@ -package view.panels; +package de.wwwu.awolf.view.panels; -import model.Line; -import presenter.Presenter; -import view.MainFrame; -import view.custom.ButtonGroupAtLeastTwo; -import view.custom.ColorColumnRenderer; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.presenter.Presenter; +import de.wwwu.awolf.view.MainFrame; +import de.wwwu.awolf.view.custom.ButtonGroupAtLeastTwo; +import de.wwwu.awolf.view.custom.ColorColumnRenderer; import javax.swing.*; import javax.swing.border.TitledBorder; @@ -20,6 +20,7 @@ import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; +import java.util.List; /** * Created by @@ -32,7 +33,6 @@ public class EvaluationPanel extends JPanel { private JTable table; private JTableHeader header; private JButton start; - private JButton latexExport; private JButton clearTable; private JButton exportData; private JRadioButton evalTypeOne; //1: Alg - N: Data @@ -89,10 +89,8 @@ public class EvaluationPanel extends JPanel { datasetType = new JComboBox<>(datatypes); start = new JButton("Start"); - latexExport = new JButton("LaTex Export"); clearTable = new JButton("Löschen"); exportData = new JButton("Datenexport"); - latexExport.setEnabled(false); clearTable.setEnabled(false); exportData.setEnabled(false); evalTypeOne = new JRadioButton("Algorithmus evaluieren"); @@ -142,7 +140,6 @@ public class EvaluationPanel extends JPanel { buttonPanel.add(start); buttonPanel.add(clearTable); buttonPanel.add(exportData); - buttonPanel.add(latexExport); algorithmPanel.add(lms); algorithmPanel.add(rm); @@ -211,7 +208,7 @@ public class EvaluationPanel extends JPanel { alg = checkSelection(); n = (Integer) datasetCountChoice.getSelectedItem(); String datatyp = (String) datasetType.getSelectedItem(); - if (datatyp == "Import von CSV-Datei") { + if ("Import von CSV-Datei".equals(datatyp)) { SwingUtilities.invokeLater(() -> { File file = null; JFileChooser chooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory()); @@ -222,7 +219,7 @@ public class EvaluationPanel extends JPanel { chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { - //System.out.println ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); + //Logging.logInfo ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); file = chooser.getSelectedFile(); final File input = file; Thread t = new Thread(() -> ((Presenter) view.getPresenter()).startEvaluation(type, alg, input)); @@ -234,7 +231,6 @@ public class EvaluationPanel extends JPanel { ((Presenter) view.getPresenter()).startEvaluation(type, n, alg, datatyp); } clearTable.setEnabled(true); - latexExport.setEnabled(true); exportData.setEnabled(true); }); @@ -260,27 +256,6 @@ public class EvaluationPanel extends JPanel { rm.setSelected(true); }); - latexExport.addActionListener(e -> { - SwingUtilities.invokeLater(() -> { - File file = null; - JFileChooser chooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory()); - chooser.setPreferredSize(new Dimension(800, 700)); - chooser.setFileFilter(new FileNameExtensionFilter("LaTeX-Datei, (*.tex)", "tex", "text")); - - chooser.setMultiSelectionEnabled(false); - chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); - - if (chooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) { - //System.out.println ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); - file = chooser.getSelectedFile(); - String filename = file.getAbsolutePath().contains(".tex") ? file.getAbsolutePath() : file.getAbsolutePath().concat(".tex"); - File withExtension = new File(filename); - final File input = withExtension; - ((Presenter) view.getPresenter()).startResultExport(model, input); - } - }); - }); - clearTable.addActionListener(e -> { SwingUtilities.invokeLater(() -> { int n = model.getDataVector().size(); @@ -289,7 +264,6 @@ public class EvaluationPanel extends JPanel { currentRowOfTypes--; } this.revalidate(); - latexExport.setEnabled(false); clearTable.setEnabled(false); exportData.setEnabled(false); }); @@ -311,8 +285,7 @@ public class EvaluationPanel extends JPanel { if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { file = chooser.getSelectedFile(); String filename = file.getAbsolutePath().contains(".csv") ? file.getAbsolutePath() : file.getAbsolutePath().concat(".csv"); - File withExtension = new File(filename); - final File input = withExtension; + final File input = new File(filename); Thread t = new Thread(() -> ((Presenter) view.getPresenter()).startDatasetExportEvaluation(input)); t.start(); } @@ -363,7 +336,7 @@ public class EvaluationPanel extends JPanel { * * @param alg Steigung und y-Achsenabschnitt der Geraden, bestimmt durch die Schätzer */ - public void drawLines(ArrayList alg) { + public void drawLines(List alg) { Paint[] color = {Color.ORANGE, Color.RED, Color.MAGENTA}; String[] name = {"LMS", "RM", "TS"}; @@ -387,12 +360,12 @@ public class EvaluationPanel extends JPanel { String[] name = {"LMS", "RM", "TS"}; String[] nName = {"Brute-force LMS", "Brute-force RM", "Brute-force TS"}; - Double m = Double.parseDouble(castedResults[0]); - Double b = Double.parseDouble(castedResults[1]); + double m = Double.parseDouble(castedResults[0]); + double b = Double.parseDouble(castedResults[1]); plotPanel.addLineToPlot(m, b, color[alg], name[alg]); - Double nM = Double.parseDouble(castedResults[2]); - Double nB = Double.parseDouble(castedResults[3]); + double nM = Double.parseDouble(castedResults[2]); + double nB = Double.parseDouble(castedResults[3]); plotPanel.addLineToPlot(nM, nB, Color.BLACK, nName[alg]); } @@ -401,7 +374,7 @@ public class EvaluationPanel extends JPanel { * * @param points Liste der Geraden */ - public void setDualPoints(LinkedList points) { + public void setDualPoints(List points) { plotPanel = new PlotPanel(); plotPanel.setBorder(new TitledBorder("Plot")); splitPane.setRightComponent(plotPanel); diff --git a/LinearRegressionTool/src/main/java/view/panels/InfoPanel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/InfoPanel.java similarity index 98% rename from LinearRegressionTool/src/main/java/view/panels/InfoPanel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/InfoPanel.java index 0ce2d55..0df4bae 100644 --- a/LinearRegressionTool/src/main/java/view/panels/InfoPanel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/InfoPanel.java @@ -1,4 +1,4 @@ -package view.panels; +package de.wwwu.awolf.view.panels; import javax.swing.*; import javax.swing.border.TitledBorder; diff --git a/LinearRegressionTool/src/main/java/view/panels/PlotPanel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/PlotPanel.java similarity index 91% rename from LinearRegressionTool/src/main/java/view/panels/PlotPanel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/PlotPanel.java index 090d0c3..4e06a9b 100644 --- a/LinearRegressionTool/src/main/java/view/panels/PlotPanel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/PlotPanel.java @@ -1,6 +1,7 @@ -package view.panels; +package de.wwwu.awolf.view.panels; -import model.Line; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.presenter.util.Logging; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; @@ -13,8 +14,7 @@ import org.jfree.util.ShapeUtilities; import javax.swing.*; import java.awt.*; -import java.util.ArrayList; -import java.util.LinkedList; +import java.util.List; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -51,14 +51,15 @@ public class PlotPanel extends JPanel { * * @param points Liste der Geraden */ - public void createPlot(LinkedList points) { + public void createPlot(List points) { if (!points.isEmpty()) { try { Thread thread = new Thread(() -> convertData(points)); thread.start(); thread.join(); } catch (InterruptedException e) { - e.printStackTrace(); + Logging.logError(e.getMessage(), e); + Thread.currentThread().interrupt(); } } //createScatterPlot @@ -150,13 +151,11 @@ public class PlotPanel extends JPanel { * * @param points Liste der Geraden */ - private void convertData(LinkedList points) { + private void convertData(List points) { datapoints = new XYSeriesCollection(); - ArrayList coordinates = new ArrayList<>(); series = new XYSeries("points"); for (Line p : points) { - series.add(p.getM().doubleValue(), p.getB().doubleValue() * (-1)); - coordinates.add(p.getM()); + series.add(p.getM().doubleValue(), p.getB() * (-1)); } this.max = series.getMaxX(); diff --git a/LinearRegressionTool/src/main/java/view/panels/tabs/LMSPanel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/LMSPanel.java similarity index 98% rename from LinearRegressionTool/src/main/java/view/panels/tabs/LMSPanel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/LMSPanel.java index 19b15c1..4e047c7 100644 --- a/LinearRegressionTool/src/main/java/view/panels/tabs/LMSPanel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/LMSPanel.java @@ -1,4 +1,4 @@ -package view.panels.tabs; +package de.wwwu.awolf.view.panels.tabs; import javax.swing.*; import java.awt.*; diff --git a/LinearRegressionTool/src/main/java/view/panels/tabs/RMPanel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/RMPanel.java similarity index 98% rename from LinearRegressionTool/src/main/java/view/panels/tabs/RMPanel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/RMPanel.java index dee8a35..c816860 100644 --- a/LinearRegressionTool/src/main/java/view/panels/tabs/RMPanel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/RMPanel.java @@ -1,4 +1,4 @@ -package view.panels.tabs; +package de.wwwu.awolf.view.panels.tabs; import javax.swing.*; import java.awt.*; diff --git a/LinearRegressionTool/src/main/java/view/panels/tabs/TSPanel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/TSPanel.java similarity index 96% rename from LinearRegressionTool/src/main/java/view/panels/tabs/TSPanel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/TSPanel.java index e664bff..d89911f 100644 --- a/LinearRegressionTool/src/main/java/view/panels/tabs/TSPanel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/TSPanel.java @@ -1,4 +1,4 @@ -package view.panels.tabs; +package de.wwwu.awolf.view.panels.tabs; import javax.swing.*; import java.awt.*; diff --git a/LinearRegressionTool/src/main/java/view/panels/tabs/TabPanel.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/TabPanel.java similarity index 97% rename from LinearRegressionTool/src/main/java/view/panels/tabs/TabPanel.java rename to LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/TabPanel.java index a78c700..6f574fa 100644 --- a/LinearRegressionTool/src/main/java/view/panels/tabs/TabPanel.java +++ b/LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/tabs/TabPanel.java @@ -1,6 +1,6 @@ -package view.panels.tabs; +package de.wwwu.awolf.view.panels.tabs; -import view.panels.PlotPanel; +import de.wwwu.awolf.view.panels.PlotPanel; import javax.swing.*; import javax.swing.border.TitledBorder; diff --git a/LinearRegressionTool/src/main/java/presenter/AbstractPresenter.java b/LinearRegressionTool/src/main/java/presenter/AbstractPresenter.java deleted file mode 100644 index e242f03..0000000 --- a/LinearRegressionTool/src/main/java/presenter/AbstractPresenter.java +++ /dev/null @@ -1,216 +0,0 @@ -package presenter; - -import model.LineModel; -import presenter.evaluation.EvaluateAlgorithms; -import presenter.util.IntersectionComputer; -import view.MainFrame; - -import javax.swing.*; -import java.util.Observable; -import java.util.Observer; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -/** - * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. - * - * @Author: Armin Wolf - * @Email: a_wolf28@uni-muenster.de - * @Date: 10.09.2017. - */ -public abstract class AbstractPresenter implements Observer { - - private final ExecutorService executor; - private LineModel model; - private MainFrame view; - private EvaluateAlgorithms eval; - - - /** - * Konstruktor - * - * @param model Modell - * @param view View - */ - public AbstractPresenter(LineModel model, MainFrame view) { - this.model = model; - this.view = view; - executor = Executors.newCachedThreadPool(); - } - - @Override - public void update(Observable o, Object arg) { - String[] result = ((String[]) arg); - String observable = result[0]; - - switch (observable) { - case "eval-dataset-generated": - SwingUtilities.invokeLater(() -> getView().addEvalDataset(getEval().getData())); - break; - case "eval-d": - SwingUtilities.invokeLater(() -> getView().appendEvalResult(result, Integer.parseInt(result[1]), false)); - break; - case "eval-ds": - SwingUtilities.invokeLater(() -> getView().appendEvalResult(result)); - break; - case "eval-t": - SwingUtilities.invokeLater(() -> getView().appendEvalResult(result, Integer.parseInt(result[1]), true)); - break; - case "lines-res": - SwingUtilities.invokeLater(() -> getView().drawLineResult(result, Integer.parseInt(result[1]))); - break; - case "lines-res-mult": - SwingUtilities.invokeLater(() -> getView().drawLineResults(result)); - break; - case "lms": - SwingUtilities.invokeLater(() -> { - getView().visualizeLMS(Double.parseDouble(result[1]), Double.parseDouble(result[2])); - //getView().setLmsIsComplete(true); - getView().logHeading("Least Median of Squares"); - getView().log("m: " + result[1]); - getView().log("b: " + result[2]); - getView().logSuccess("Berechnung wurde Erfolgreich durchgeführt
"); - }); - break; - case "rm": - SwingUtilities.invokeLater(() -> { - getView().visualizeRM(Double.parseDouble(result[1]), Double.parseDouble(result[2])); - getView().logHeading("Repeated Median Estimator"); - getView().log("m: " + result[1]); - getView().log("b: " + result[2]); - getView().logSuccess("Berechnung wurde Erfolgreich durchgeführt
"); - }); - break; - case "ts": - SwingUtilities.invokeLater(() -> { - getView().visualizeTS(Double.parseDouble(result[1]), Double.parseDouble(result[2])); - getView().logHeading("Theil-Sen Estimator"); - getView().log("m: " + result[1]); - getView().log("b: " + result[2]); - getView().logSuccess("Berechnung wurde Erfolgreich durchgeführt
"); - }); - break; - case "import": - Double max = Double.parseDouble(result[1]); - Double current = Double.parseDouble(result[2]); - Integer progress = (int) (100 * (current / max)); - //100% erreicht - SwingUtilities.invokeLater(() -> { - getView().showImportProgress(progress); - }); - break; - case "export": - SwingUtilities.invokeLater(() -> { - getView().logHeading("Export der Daten als CSV"); - getView().logSuccess("Export war Erfolgreich"); - getView().log(result[1] + "
"); - }); - break; - case "generator": - SwingUtilities.invokeLater(() -> { - getView().logSuccess("Generierung war Erfolgreich"); - getView().log(result[1] + "
"); - }); - break; - } - } - - /** - * Startet das parallele Berechnen der Schnittpunkte der Geraden die im Modell enthalten sind. - */ - private void startIntersectionCalculation() { - try { - Thread thread = new Thread(() -> { - getModel().resetRanges(); - IntersectionComputer intersectionComputer = new IntersectionComputer(getModel().getLines()); - getModel().setNodes(intersectionComputer.compute()); - - getModel().setxMaximum(intersectionComputer.getxMaximum()); - getModel().setxMinimum(intersectionComputer.getxMinimum()); - getModel().setyMaximum(intersectionComputer.getyMaximum()); - getModel().setyMinimum(intersectionComputer.getyMinimum()); - }); - thread.start(); - thread.join(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - /** - * Wrapper Methode die das berechnen der Schnittpunkte anstößt und die Ergebnisse(Anzahl der Schnittpunkte) - * visuell darstellt. - */ - protected void computeIntersections() { - Thread t = new Thread(() -> { - long start, end; - - start = System.currentTimeMillis(); - startIntersectionCalculation(); - end = System.currentTimeMillis(); - - System.out.println("Zeit: " + (end - start) / 1000); - }); - t.start(); - try { - t.join(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - //darstellung der Ergebnisse - SwingUtilities.invokeLater(() -> { - getView().enableFunctionality(); - getView().getProgressDialog().dispose(); - getView().logHeading("Informationen zu dem aktuellen Modell"); - getView().log("Anzahl der Geraden: " + getModel().getLines().size() + "."); - getView().log("Anzahl der Schnittpunkte: " + getModel().getNodes().size() + "."); - getView().logSuccess("Import war Erfolgreich!
"); - }); - } - - /** - * @return das zu grunde legende Modell - */ - public LineModel getModel() { - return model; - } - - /** - * @param model das zu grunde legende Modell - */ - public void setModel(LineModel model) { - this.model = model; - } - - /** - * @return die zu grunde legende View - */ - public MainFrame getView() { - return view; - } - - /** - * @param view die zu grunde legende View - */ - public void setView(MainFrame view) { - this.view = view; - } - - /** - * @return Evaluation - */ - public EvaluateAlgorithms getEval() { - return eval; - } - - /** - * @param eval Evaluation - */ - public void setEval(EvaluateAlgorithms eval) { - this.eval = eval; - } - - public ExecutorService getExecutor() { - return executor; - } -} diff --git a/LinearRegressionTool/src/main/java/presenter/io/EvalResultLatexExport.java b/LinearRegressionTool/src/main/java/presenter/io/EvalResultLatexExport.java deleted file mode 100644 index 7caa2ea..0000000 --- a/LinearRegressionTool/src/main/java/presenter/io/EvalResultLatexExport.java +++ /dev/null @@ -1,105 +0,0 @@ -package presenter.io; - -import javax.swing.*; -import javax.swing.table.DefaultTableModel; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; - -/** - * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. - * - * @Author: Armin Wolf - * @Email: a_wolf28@uni-muenster.de - * @Date: 08.09.2017. - */ -public class EvalResultLatexExport { - - private DefaultTableModel model; - private File file; - - /** - * Konstruktor - * - * @param model TableModel aus dem exportiert werden soll - * @param file Datei in die exportiert werden soll - */ - public EvalResultLatexExport(DefaultTableModel model, File file) { - this.model = model; - this.file = file; - } - - /** - * Quelle: https://en.wikibooks.org/wiki/LaTeX/Tables - * \begin{tabular}{l*{3}{c}} - * Team & P & W & D & L & F & A & Pts \\\hline - * Manchester United & 6 & 4 & 0 & 2 & 10 & 5 & 12 \\ - * Celtic & 6 & 3 & 0 & 3 & 8 & 9 & 9 \\ - * Benfica & 6 & 2 & 1 & 3 & 7 & 8 & 7 \\ - * FC Copenhagen & 6 & 2 & 1 & 3 & 5 & 8 & 7 \\ - * \end{tabular} - * - * @return - */ - private String createOutputData() { - String split = "&"; - StringBuilder doc = new StringBuilder(); - doc.append("\\begin{tabular}{|l|r|r|r|}" + "\\hline\r\n"); - for (int i = 0; i < model.getColumnCount(); i++) { - if (model.getValueAt(0, i).toString() != "" || model.getRowCount() > 5) - doc.append("\\textsc{" + model.getColumnName(i) + "}" + split); - } - - doc.deleteCharAt(doc.lastIndexOf(split)); - doc.append("\\\\\\hline" + "\r\n"); - - for (int i = 0; i < model.getRowCount() - 1; i++) { - for (int j = 0; j < model.getColumnCount(); j++) { - if (model.getValueAt(i, j).toString() != "") { - if (j == 0) { - doc.append("\\textbf{" + model.getValueAt(i, j).toString() + "}" + split); - } else { - Double val = Double.parseDouble((String) model.getValueAt(i, j)); - doc.append(String.format("%.3f", val) + split); - } - } - } - if (model.getValueAt(i, 0) != "") { - doc.deleteCharAt(doc.lastIndexOf(split)); - } - doc.append("\\\\\\hline" + "\r\n"); - } - doc.append("\\end{tabular}"); - return doc.toString(); - } - - /** - * das schreiben der Informationen über den Stream in die Datei - */ - public void writeFile() { - FileWriter fileWriter = null; - BufferedWriter bufferedWriter = null; - try { - fileWriter = new FileWriter(file); - bufferedWriter = new BufferedWriter(fileWriter); - bufferedWriter.write(createOutputData()); - SwingUtilities.invokeLater(() -> { - JOptionPane.showMessageDialog(null, "Export war Erfolgreich!"); - }); - - - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - bufferedWriter.close(); - fileWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - } - -} diff --git a/LinearRegressionTool/src/main/resources/log4j.properties b/LinearRegressionTool/src/main/resources/log4j.properties new file mode 100644 index 0000000..79131ee --- /dev/null +++ b/LinearRegressionTool/src/main/resources/log4j.properties @@ -0,0 +1,14 @@ +# Root logger option +log4j.rootLogger=INFO, file, stdout +# Direct log messages to a log file +log4j.appender.file=org.apache.log4j.RollingFileAppender +log4j.appender.file.File=D:\\Git\\master-implementierung\\LinearRegressionTool\\log4j\\app.log +log4j.appender.file.MaxFileSize=10MB +log4j.appender.file.MaxBackupIndex=10 +log4j.appender.file.layout=org.apache.log4j.PatternLayout +log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n +# Direct log messages to stdout +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n diff --git a/LinearRegressionTool/src/test/java/presenter/algorithms/advanced/LeastMedianOfSquaresEstimatorTest.java b/LinearRegressionTool/src/test/java/de/wwwu/awolf/presenter/algorithms/advanced/LeastMedianOfSquaresEstimatorTest.java similarity index 89% rename from LinearRegressionTool/src/test/java/presenter/algorithms/advanced/LeastMedianOfSquaresEstimatorTest.java rename to LinearRegressionTool/src/test/java/de/wwwu/awolf/presenter/algorithms/advanced/LeastMedianOfSquaresEstimatorTest.java index e58fbc1..53f1145 100644 --- a/LinearRegressionTool/src/test/java/presenter/algorithms/advanced/LeastMedianOfSquaresEstimatorTest.java +++ b/LinearRegressionTool/src/test/java/de/wwwu/awolf/presenter/algorithms/advanced/LeastMedianOfSquaresEstimatorTest.java @@ -1,15 +1,15 @@ -package presenter.algorithms.advanced; +package de.wwwu.awolf.presenter.algorithms.advanced; -import model.Interval; -import model.Line; -import model.Point; +import de.wwwu.awolf.model.Interval; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Point; import org.junit.Before; import org.junit.Test; -import presenter.util.IntersectionComputer; -import presenter.util.IntersectionCounter; +import de.wwwu.awolf.presenter.util.IntersectionComputer; import java.util.ArrayList; import java.util.LinkedList; +import java.util.List; import static org.junit.Assert.*; @@ -48,7 +48,7 @@ public class LeastMedianOfSquaresEstimatorTest { public void geEjValues() throws Exception { Double[] expected = {36d, 50d, 60d, 74d, 108d}; - ArrayList actual = lms.getEjValues(1d); + List actual = lms.getEjValues(1d); assertArrayEquals(expected, actual.toArray()); } diff --git a/LinearRegressionTool/src/test/java/presenter/algorithms/advanced/TheilSenEstimatorTest.java b/LinearRegressionTool/src/test/java/de/wwwu/awolf/presenter/algorithms/advanced/TheilSenEstimatorTest.java similarity index 79% rename from LinearRegressionTool/src/test/java/presenter/algorithms/advanced/TheilSenEstimatorTest.java rename to LinearRegressionTool/src/test/java/de/wwwu/awolf/presenter/algorithms/advanced/TheilSenEstimatorTest.java index cb07946..30b779d 100644 --- a/LinearRegressionTool/src/test/java/presenter/algorithms/advanced/TheilSenEstimatorTest.java +++ b/LinearRegressionTool/src/test/java/de/wwwu/awolf/presenter/algorithms/advanced/TheilSenEstimatorTest.java @@ -1,14 +1,15 @@ -package presenter.algorithms.advanced; +package de.wwwu.awolf.presenter.algorithms.advanced; -import model.Line; -import model.Point; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.Point; import org.junit.Before; import org.junit.Test; -import presenter.util.IntersectionComputer; +import de.wwwu.awolf.presenter.util.IntersectionComputer; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; +import java.util.List; import static org.junit.Assert.*; @@ -30,8 +31,8 @@ public class TheilSenEstimatorTest { Double[] y = {18d, 26d, 30d, 40d, 70d}; - LinkedList lines = new LinkedList<>(); - ArrayList intersections = new ArrayList<>(); + List lines = new LinkedList<>(); + List intersections = new ArrayList<>(); for (int i = 0; i < 5; i++) { lines.add(new Line(x[i], y[i])); @@ -55,7 +56,7 @@ public class TheilSenEstimatorTest { @Test public void getOpenIntervalElements() throws Exception { - ArrayList intersectionInInterval = estimator.getOpenIntervalElements(-1.4d, -0.67d); + List intersectionInInterval = estimator.getOpenIntervalElements(-1.4d, -0.67d); double[] expected = {-1.375, -1.333, -1.0}; double[] actual = new double[3]; for (int i=0;i intersections = intersectionComputer.compute(); + List intersections = intersectionComputer.compute(); double[] expectedX = {4.66, 7.11, 9.39}; double[] expectedY = {4.66, 7.11, 5.52}; diff --git a/LinearRegressionTool/src/test/java/presenter/util/IntersectionCounterTest.java b/LinearRegressionTool/src/test/java/de/wwwu/awolf/presenter/util/IntersectionCounterTest.java similarity index 91% rename from LinearRegressionTool/src/test/java/presenter/util/IntersectionCounterTest.java rename to LinearRegressionTool/src/test/java/de/wwwu/awolf/presenter/util/IntersectionCounterTest.java index f880b93..ec3c93f 100644 --- a/LinearRegressionTool/src/test/java/presenter/util/IntersectionCounterTest.java +++ b/LinearRegressionTool/src/test/java/de/wwwu/awolf/presenter/util/IntersectionCounterTest.java @@ -1,8 +1,8 @@ -package presenter.util; +package de.wwwu.awolf.presenter.util; -import model.Interval; -import model.Line; -import model.LineModel; +import de.wwwu.awolf.model.Interval; +import de.wwwu.awolf.model.Line; +import de.wwwu.awolf.model.LineModel; import org.junit.Before; import org.junit.Test;