From b7426b98ac74b05d61e9f7189e92a112dde3cc47 Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Thu, 28 Nov 2019 14:33:01 +0100
Subject: [PATCH] Split statemachine into base and DrAST.

---
 settings.gradle                               |  3 +-
 .../.gitignore                                |  1 -
 .../build.gradle                              | 22 ---------
 .../src/main/jastadd/Analysis.jrag            |  0
 .../src/main/jastadd/NameAnalysis.jrag        |  0
 .../src/main/jastadd/Navigation.jrag          |  0
 .../src/main/jastadd/Printing.jrag            |  0
 .../src/main/jastadd/Reachability.jrag        |  0
 .../src/main/jastadd/SMtoDotG.jrag            |  0
 .../main/jastadd/StateMachineParser.parser    |  0
 .../src/main/jastadd/StateMachineScanner.flex |  0
 .../src/main/jastadd/Util.jadd                |  0
 .../src/main/jastadd/Util.jrag                |  0
 .../tudresden/inf/st/statemachine/Main.java   |  0
 .../inf/st/statemachine/ParserUtils.java      |  0
 .../src/main/resources/StateMachine.ecore     |  0
 .../src/main/resources/log4j2.xml             |  0
 .../inf/st/statemachine/ParserTest.java       |  0
 .../src/test/resources/machine_one.sm         |  0
 .../src/test/resources/telephone.sm           |  0
 statemachine.drast/.gitignore                 |  4 ++
 .../DrASTGUI.cfg                              |  0
 statemachine.drast/build.gradle               | 49 +++++++++++++++++++
 .../filter.fcl                                |  0
 .../run_DrAST.sh                              |  0
 .../inf/st/statemachine/DrAstRunner.java      |  4 +-
 .../src/main/resources/log4j2.xml             | 22 +++++++++
 27 files changed, 79 insertions(+), 26 deletions(-)
 rename {statemachine => statemachine.base}/.gitignore (85%)
 rename {statemachine => statemachine.base}/build.gradle (82%)
 rename {statemachine => statemachine.base}/src/main/jastadd/Analysis.jrag (100%)
 rename {statemachine => statemachine.base}/src/main/jastadd/NameAnalysis.jrag (100%)
 rename {statemachine => statemachine.base}/src/main/jastadd/Navigation.jrag (100%)
 rename {statemachine => statemachine.base}/src/main/jastadd/Printing.jrag (100%)
 rename {statemachine => statemachine.base}/src/main/jastadd/Reachability.jrag (100%)
 rename {statemachine => statemachine.base}/src/main/jastadd/SMtoDotG.jrag (100%)
 rename {statemachine => statemachine.base}/src/main/jastadd/StateMachineParser.parser (100%)
 rename {statemachine => statemachine.base}/src/main/jastadd/StateMachineScanner.flex (100%)
 rename {statemachine => statemachine.base}/src/main/jastadd/Util.jadd (100%)
 rename {statemachine => statemachine.base}/src/main/jastadd/Util.jrag (100%)
 rename {statemachine => statemachine.base}/src/main/java/de/tudresden/inf/st/statemachine/Main.java (100%)
 rename {statemachine => statemachine.base}/src/main/java/de/tudresden/inf/st/statemachine/ParserUtils.java (100%)
 rename {statemachine => statemachine.base}/src/main/resources/StateMachine.ecore (100%)
 rename {statemachine => statemachine.base}/src/main/resources/log4j2.xml (100%)
 rename {statemachine => statemachine.base}/src/test/java/de/tudresden/inf/st/statemachine/ParserTest.java (100%)
 rename {statemachine => statemachine.base}/src/test/resources/machine_one.sm (100%)
 rename {statemachine => statemachine.base}/src/test/resources/telephone.sm (100%)
 create mode 100644 statemachine.drast/.gitignore
 rename {statemachine => statemachine.drast}/DrASTGUI.cfg (100%)
 create mode 100644 statemachine.drast/build.gradle
 rename {statemachine => statemachine.drast}/filter.fcl (100%)
 rename {statemachine => statemachine.drast}/run_DrAST.sh (100%)
 rename {statemachine => statemachine.drast}/src/main/java/de/tudresden/inf/st/statemachine/DrAstRunner.java (94%)
 create mode 100644 statemachine.drast/src/main/resources/log4j2.xml

diff --git a/settings.gradle b/settings.gradle
index 0c705c2..03d6f56 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,4 +1,5 @@
 rootProject.name = 'ifm-refactoring-jastadd'
 
-include 'statemachine'
+include 'statemachine.base'
+include 'statemachine.drast'
 include 'ragdoc-view'
diff --git a/statemachine/.gitignore b/statemachine.base/.gitignore
similarity index 85%
rename from statemachine/.gitignore
rename to statemachine.base/.gitignore
index 1ff83ba..19ad8f8 100644
--- a/statemachine/.gitignore
+++ b/statemachine.base/.gitignore
@@ -5,4 +5,3 @@ src/gen-res/
 /bin/
 logs/
 /doc/
-DrAST.cfg
diff --git a/statemachine/build.gradle b/statemachine.base/build.gradle
similarity index 82%
rename from statemachine/build.gradle
rename to statemachine.base/build.gradle
index 3e1e392..bf89dae 100644
--- a/statemachine/build.gradle
+++ b/statemachine.base/build.gradle
@@ -36,8 +36,6 @@ task cleanRagdoc(type: Delete) {
 dependencies {
     implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
     implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
-    implementation files('../libs/DrAST-1.2.2.jar')
-    implementation fileTree(dir: "${System.properties['java.home']}", include: '**/jfxrt.jar')
 
     jastadd2 "org.jastadd:jastadd:2.3.4"
     ragdoc files('../libs/rd-builder.jar')
@@ -64,26 +62,6 @@ jar {
     }
 }
 
-task jarDrAst(type: Jar) {
-    group = "build"
-    description = 'create a jar to runthe DrAST visual debugger tool'
-    manifest {
-        attributes 'Implementation-Title': 'DrAST visual debugger tool for StateMachine',
-                'Implementation-Version': project.version,
-                'Main-Class': 'de.tudresden.inf.st.statemachine.DrAstRunner'
-    }
-    archivesBaseName = 'drast-statemachine-all'
-    from { sourceSets.main.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
-    with jar
-}
-
-task runDrAST(type: JavaExec, dependsOn: jar) {
-    group = "application"
-    description = 'run the DrAST visual debugger tool'
-    classpath = sourceSets.main.runtimeClasspath
-    main = 'de.tudresden.inf.st.statemachine.DrAstRunner'
-}
-
 def relastFiles = fileTree('src/main/jastadd/') { include '**/*.relast' } +
         fileTree('src/gen/jastadd/') { include '**/*.relast' }
 String[] relastArguments = [
diff --git a/statemachine/src/main/jastadd/Analysis.jrag b/statemachine.base/src/main/jastadd/Analysis.jrag
similarity index 100%
rename from statemachine/src/main/jastadd/Analysis.jrag
rename to statemachine.base/src/main/jastadd/Analysis.jrag
diff --git a/statemachine/src/main/jastadd/NameAnalysis.jrag b/statemachine.base/src/main/jastadd/NameAnalysis.jrag
similarity index 100%
rename from statemachine/src/main/jastadd/NameAnalysis.jrag
rename to statemachine.base/src/main/jastadd/NameAnalysis.jrag
diff --git a/statemachine/src/main/jastadd/Navigation.jrag b/statemachine.base/src/main/jastadd/Navigation.jrag
similarity index 100%
rename from statemachine/src/main/jastadd/Navigation.jrag
rename to statemachine.base/src/main/jastadd/Navigation.jrag
diff --git a/statemachine/src/main/jastadd/Printing.jrag b/statemachine.base/src/main/jastadd/Printing.jrag
similarity index 100%
rename from statemachine/src/main/jastadd/Printing.jrag
rename to statemachine.base/src/main/jastadd/Printing.jrag
diff --git a/statemachine/src/main/jastadd/Reachability.jrag b/statemachine.base/src/main/jastadd/Reachability.jrag
similarity index 100%
rename from statemachine/src/main/jastadd/Reachability.jrag
rename to statemachine.base/src/main/jastadd/Reachability.jrag
diff --git a/statemachine/src/main/jastadd/SMtoDotG.jrag b/statemachine.base/src/main/jastadd/SMtoDotG.jrag
similarity index 100%
rename from statemachine/src/main/jastadd/SMtoDotG.jrag
rename to statemachine.base/src/main/jastadd/SMtoDotG.jrag
diff --git a/statemachine/src/main/jastadd/StateMachineParser.parser b/statemachine.base/src/main/jastadd/StateMachineParser.parser
similarity index 100%
rename from statemachine/src/main/jastadd/StateMachineParser.parser
rename to statemachine.base/src/main/jastadd/StateMachineParser.parser
diff --git a/statemachine/src/main/jastadd/StateMachineScanner.flex b/statemachine.base/src/main/jastadd/StateMachineScanner.flex
similarity index 100%
rename from statemachine/src/main/jastadd/StateMachineScanner.flex
rename to statemachine.base/src/main/jastadd/StateMachineScanner.flex
diff --git a/statemachine/src/main/jastadd/Util.jadd b/statemachine.base/src/main/jastadd/Util.jadd
similarity index 100%
rename from statemachine/src/main/jastadd/Util.jadd
rename to statemachine.base/src/main/jastadd/Util.jadd
diff --git a/statemachine/src/main/jastadd/Util.jrag b/statemachine.base/src/main/jastadd/Util.jrag
similarity index 100%
rename from statemachine/src/main/jastadd/Util.jrag
rename to statemachine.base/src/main/jastadd/Util.jrag
diff --git a/statemachine/src/main/java/de/tudresden/inf/st/statemachine/Main.java b/statemachine.base/src/main/java/de/tudresden/inf/st/statemachine/Main.java
similarity index 100%
rename from statemachine/src/main/java/de/tudresden/inf/st/statemachine/Main.java
rename to statemachine.base/src/main/java/de/tudresden/inf/st/statemachine/Main.java
diff --git a/statemachine/src/main/java/de/tudresden/inf/st/statemachine/ParserUtils.java b/statemachine.base/src/main/java/de/tudresden/inf/st/statemachine/ParserUtils.java
similarity index 100%
rename from statemachine/src/main/java/de/tudresden/inf/st/statemachine/ParserUtils.java
rename to statemachine.base/src/main/java/de/tudresden/inf/st/statemachine/ParserUtils.java
diff --git a/statemachine/src/main/resources/StateMachine.ecore b/statemachine.base/src/main/resources/StateMachine.ecore
similarity index 100%
rename from statemachine/src/main/resources/StateMachine.ecore
rename to statemachine.base/src/main/resources/StateMachine.ecore
diff --git a/statemachine/src/main/resources/log4j2.xml b/statemachine.base/src/main/resources/log4j2.xml
similarity index 100%
rename from statemachine/src/main/resources/log4j2.xml
rename to statemachine.base/src/main/resources/log4j2.xml
diff --git a/statemachine/src/test/java/de/tudresden/inf/st/statemachine/ParserTest.java b/statemachine.base/src/test/java/de/tudresden/inf/st/statemachine/ParserTest.java
similarity index 100%
rename from statemachine/src/test/java/de/tudresden/inf/st/statemachine/ParserTest.java
rename to statemachine.base/src/test/java/de/tudresden/inf/st/statemachine/ParserTest.java
diff --git a/statemachine/src/test/resources/machine_one.sm b/statemachine.base/src/test/resources/machine_one.sm
similarity index 100%
rename from statemachine/src/test/resources/machine_one.sm
rename to statemachine.base/src/test/resources/machine_one.sm
diff --git a/statemachine/src/test/resources/telephone.sm b/statemachine.base/src/test/resources/telephone.sm
similarity index 100%
rename from statemachine/src/test/resources/telephone.sm
rename to statemachine.base/src/test/resources/telephone.sm
diff --git a/statemachine.drast/.gitignore b/statemachine.drast/.gitignore
new file mode 100644
index 0000000..22a2065
--- /dev/null
+++ b/statemachine.drast/.gitignore
@@ -0,0 +1,4 @@
+build/
+/bin/
+logs/
+DrAST.cfg
diff --git a/statemachine/DrASTGUI.cfg b/statemachine.drast/DrASTGUI.cfg
similarity index 100%
rename from statemachine/DrASTGUI.cfg
rename to statemachine.drast/DrASTGUI.cfg
diff --git a/statemachine.drast/build.gradle b/statemachine.drast/build.gradle
new file mode 100644
index 0000000..8fb4991
--- /dev/null
+++ b/statemachine.drast/build.gradle
@@ -0,0 +1,49 @@
+group 'de.tudresden.inf.st'
+version '0.1'
+
+apply plugin: 'java'
+apply plugin: 'application'
+apply plugin: "idea"
+
+sourceCompatibility = 1.8
+
+repositories {
+    mavenCentral()
+}
+
+dependencies {
+	implementation project(':statemachine.base')
+    implementation files('../libs/DrAST-1.2.2.jar')
+    implementation fileTree(dir: "${System.properties['java.home']}", include: '**/jfxrt.jar')
+}
+
+run {
+    mainClassName = 'de.tudresden.inf.st.statemachine.DrAstRunner'
+    standardInput = System.in
+}
+
+task jarDrAst(type: Jar, dependsOn: ':statemachine.base:jar') {
+    group = "build"
+    description = 'create a jar to run the DrAST visual debugger tool'
+    manifest {
+        attributes 'Implementation-Title': 'DrAST visual debugger tool for StateMachine',
+                'Implementation-Version': project.version,
+                'Main-Class': 'de.tudresden.inf.st.statemachine.DrAstRunner'
+    }
+    archivesBaseName = 'drast-statemachine-all'
+    from { sourceSets.main.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
+    with jar
+}
+
+task runDrAST(type: JavaExec, dependsOn: [jar, ':statemachine.base:jar']) {
+    group = "application"
+    description = 'run the DrAST visual debugger tool'
+    classpath = sourceSets.main.runtimeClasspath
+    main = 'de.tudresden.inf.st.statemachine.DrAstRunner'
+}
+
+sourceSets {
+    main {
+        java.srcDir "src/main/java"
+    }
+}
diff --git a/statemachine/filter.fcl b/statemachine.drast/filter.fcl
similarity index 100%
rename from statemachine/filter.fcl
rename to statemachine.drast/filter.fcl
diff --git a/statemachine/run_DrAST.sh b/statemachine.drast/run_DrAST.sh
similarity index 100%
rename from statemachine/run_DrAST.sh
rename to statemachine.drast/run_DrAST.sh
diff --git a/statemachine/src/main/java/de/tudresden/inf/st/statemachine/DrAstRunner.java b/statemachine.drast/src/main/java/de/tudresden/inf/st/statemachine/DrAstRunner.java
similarity index 94%
rename from statemachine/src/main/java/de/tudresden/inf/st/statemachine/DrAstRunner.java
rename to statemachine.drast/src/main/java/de/tudresden/inf/st/statemachine/DrAstRunner.java
index 2fd811e..91c5a03 100644
--- a/statemachine/src/main/java/de/tudresden/inf/st/statemachine/DrAstRunner.java
+++ b/statemachine.drast/src/main/java/de/tudresden/inf/st/statemachine/DrAstRunner.java
@@ -37,7 +37,7 @@ public class DrAstRunner extends DrASTGUI {
 
   private static void openView() {
     guiHasBeenCreated = true;
-    DrASTSettings.put(DrASTSettings.PREV_JAR, "build/libs/statemachine-0.1.jar");
+    DrASTSettings.put(DrASTSettings.PREV_JAR, "../statemachine.base/build/libs/statemachine-0.1.jar");
     DrASTSettings.put(DrASTSettings.PREV_TAIL_ARGS, "-Dlog4j2.disable.jmx=true");
     launch();
     con.onApplicationClose();
@@ -71,7 +71,7 @@ public class DrAstRunner extends DrASTGUI {
     mon.setGraphView(graphview);
     con.init(mon);
     Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
-    stage.setTitle("DrAST 1.2.2");
+    stage.setTitle("Statemachine DrAST 1.2.2");
     stage.setScene(new Scene(rootView, primaryScreenBounds.getWidth(), primaryScreenBounds.getHeight() - 100.0D));
     stage.show();
     ScrollPane center = (ScrollPane)rootView.lookup("#graphViewScrollPane");
diff --git a/statemachine.drast/src/main/resources/log4j2.xml b/statemachine.drast/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..e4e4e60
--- /dev/null
+++ b/statemachine.drast/src/main/resources/log4j2.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration>
+    <Appenders>
+        <Console name="Console">
+            <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level} %c{1.} - %msg%n"/>
+        </Console>
+        <RollingFile name="RollingFile" fileName="logs/statemachine.log"
+                    filePattern="logs/statemachine-%i.log">
+            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"/>
+            <Policies>
+                <OnStartupTriggeringPolicy/>
+            </Policies>
+            <DefaultRolloverStrategy max="20"/>
+        </RollingFile>
+    </Appenders>
+    <Loggers>
+        <Root level="info">
+            <AppenderRef ref="Console"/>
+            <AppenderRef ref="RollingFile"/>
+        </Root>
+    </Loggers>
+</Configuration>
-- 
GitLab