From 274c48211e8870196964161ac903725389f8e301 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sat, 17 Apr 2021 08:24:06 +0000
Subject: [PATCH] gradeDist works again (spring boot plugin removed).

---
 borgbutler-docker/app/entrypoint.sh                                                       |   12 +++---
 .gitignore                                                                                |    3 -
 borgbutler-core/build.gradle                                                              |    1 
 borgbutler-server/src/main/kotlin/de/micromata/borgbutler/server/BorgButlerApplication.kt |   20 ++++++++--
 borgbutler-server/build.gradle                                                            |   50 +++---------------------
 5 files changed, 31 insertions(+), 55 deletions(-)

diff --git a/.gitignore b/.gitignore
index 0747909..2397a67 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,5 +42,4 @@
 borgbutler-webapp/build
 borgbutler-webapp/node_modules
 borgbutler-docker/app/target
-borgbutler-server-0.3-SNAPSHOT
-borgbutler-server-0.4-SNAPSHOT
+borgbutler-server-*
diff --git a/borgbutler-core/build.gradle b/borgbutler-core/build.gradle
index f7a81d5..e16426a 100644
--- a/borgbutler-core/build.gradle
+++ b/borgbutler-core/build.gradle
@@ -32,6 +32,7 @@
 
 sourceSets {
     main.java.srcDirs += 'src/main/java'
+    main.java.srcDirs += 'src/main/kotlin'
 }
 
 test {
diff --git a/borgbutler-docker/app/entrypoint.sh b/borgbutler-docker/app/entrypoint.sh
index 889bfd7..9f158f1 100644
--- a/borgbutler-docker/app/entrypoint.sh
+++ b/borgbutler-docker/app/entrypoint.sh
@@ -2,14 +2,14 @@
 
 # https://stackoverflow.com/questions/41451159/how-to-execute-a-script-when-i-terminate-a-docker-container
 
-PROCESS_IDENTIFIER="de.micromata.borgbutler.server.Main"
+JAVA_MAIN="de.micromata.borgbutler.server.BorgButlerApplication"
 APP_NAME="BorgButler"
 
 #Define cleanup procedure
 cleanup() {
   echo "Container stopped, performing cleanup..."
 
-  pid=$(pgrep -f $PROCESS_IDENTIFIER)
+  pid=$(pgrep -f $JAVA_MAIN)
   if [[ -z $pid ]]; then
     echo "${APP_NAME} process not found."
     exit 0
@@ -21,7 +21,7 @@
   echo "waiting 5 sec for termination of pid $pid..."
   sleep 5
 
-  pid=$(pgrep -f $PROCESS_IDENTIFIER)
+  pid=$(pgrep -f $JAVA_MAIN)
   if [[ -z $pid ]]; then
     echo "${APP_NAME} stopped"
     exit 0
@@ -32,7 +32,7 @@
 
   sleep 0.5
 
-  pid=$(pgrep -f $PROCESS_IDENTIFIER)
+  pid=$(pgrep -f $JAVA_MAIN)
   if [[ -z $pid ]]; then
     echo "${APP_NAME} killed"
     exit 0
@@ -47,9 +47,9 @@
 #Trap SIGTERM
 trap cleanup INT SIGTERM
 
-echo "Starting java ${JAVA_OPTS} -cp app/web/*:app/lib/* -DBorgButlerHome=/BorgButler/ -DapplicationHome=/app -DbindAddress=0.0.0.0 -DallowedClientIps=172.17. de.micromata.borgbutler.server.Main -q ${JAVA_ARGS}"
+echo "Starting java ${JAVA_OPTS} -cp app/web/*:app/lib/* -DBorgButlerHome=/BorgButler/ -DapplicationHome=/app -DbindAddress=0.0.0.0 -DallowedClientIps=172.17. ${JAVA_MAIN} -q ${JAVA_ARGS}"
 
-java $JAVA_OPTS -cp app/web/*:app/lib/* -DborgbutlerHome=/BorgButler/ -DapplicationHome=/app -DbindAddress=0.0.0.0 -DallowedClientIps=172.17. de.micromata.borgbutler.server.Main -q $JAVA_ARGS &
+java $JAVA_OPTS -cp app/web/*:app/lib/* -DborgbutlerHome=/BorgButler/ -DapplicationHome=/app -DbindAddress=0.0.0.0 -DallowedClientIps=172.17. $JAVA_MAIN -q $JAVA_ARGS &
 
 CHILD=$!
 wait $CHILD
diff --git a/borgbutler-server/build.gradle b/borgbutler-server/build.gradle
index 49922c7..f146946 100644
--- a/borgbutler-server/build.gradle
+++ b/borgbutler-server/build.gradle
@@ -1,16 +1,5 @@
-buildscript {
-    ext.kotlin_version = '1.4.32'
-    repositories {
-        mavenCentral()
-    }
-    dependencies {
-        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
-    }
-}
-
 plugins {
     id 'java'
-    id 'org.springframework.boot' version '2.4.5'
 }
 
 description = 'borgbutler-server'
@@ -35,7 +24,7 @@
     // https://mvnrepository.com/artifact/commons-cli/commons-cli
     implementation group: 'commons-cli', name: 'commons-cli', version: '1.4'
     testCompile group: 'org.mockito', name: 'mockito-core', version: '2.21.0'
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
+    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
 }
 
 repositories {
@@ -43,16 +32,15 @@
     jcenter()
 }
 
+sourceSets {
+    main.java.srcDirs += 'src/main/java'
+    main.java.srcDirs += 'src/main/kotlin'
+}
+
 apply plugin: 'application'
-apply plugin: 'kotlin'
-mainClassName = "de.micromata.borgbutler.server.BorgButlerApplication"
+mainClassName = 'de.micromata.borgbutler.server.BorgButlerApplication'
 
 run() {
-    doFirst {
-        jvmArgs = [
-                "-DapplicationHome=${rootDir}"
-        ]
-    }
 }
 
 run.dependsOn ':borgbutler-webapp:npmBuild'
@@ -76,16 +64,6 @@
     dependsOn createVersionProperties
 }
 
-// Ugly work arround for getting the applications home dir:
-applicationDefaultJvmArgs = ["-DapplicationHome=MY_APPLICATION_HOME"]
-
-startScripts {
-    doLast {
-        unixScript.text = unixScript.text.replace('MY_APPLICATION_HOME', '\$APP_HOME')
-        windowsScript.text = windowsScript.text.replace('MY_APPLICATION_HOME', '%~dp0..')
-    }
-}
-
 // Builds the distribution
 distributions {
     main {
@@ -94,10 +72,6 @@
             from ("${project(':borgbutler-webapp').projectDir}/build") {
                 into 'web'
             }
-            // Containing test templates and other stuff:
-            from ("${rootProject.projectDir}/examples") {
-                into 'examples'
-            }
         }
     }
 }
@@ -105,13 +79,3 @@
 distZip.dependsOn ':borgbutler-webapp:npmBuild'
 //distZip.dependsOn ':borgbutler-docs:buildWebDoc'
 task(dist).dependsOn distZip
-compileKotlin {
-    kotlinOptions {
-        jvmTarget = "1.8"
-    }
-}
-compileTestKotlin {
-    kotlinOptions {
-        jvmTarget = "1.9"
-    }
-}
diff --git a/borgbutler-server/src/main/kotlin/de/micromata/borgbutler/server/BorgButlerApplication.kt b/borgbutler-server/src/main/kotlin/de/micromata/borgbutler/server/BorgButlerApplication.kt
index f41eefa..e90f96c 100644
--- a/borgbutler-server/src/main/kotlin/de/micromata/borgbutler/server/BorgButlerApplication.kt
+++ b/borgbutler-server/src/main/kotlin/de/micromata/borgbutler/server/BorgButlerApplication.kt
@@ -102,14 +102,26 @@
 
             // 0.0.0.0 for Docker installations.
             val url = "http://$serverAddress:$serverPort/".replace("0.0.0.0", "127.0.0.1")
-            if (!line.hasOption('q')) {
+            val uri = URI.create(url)
+            val quietMode = line.hasOption('q')
+            val desktopSupportsBrowse = Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)
+            val headlessMode = System.getProperty("java.awt.headless") == "true"
+            if (!quietMode && desktopSupportsBrowse && headlessMode) {
                 try {
-                    Desktop.getDesktop().browse(URI.create(url))
+                    log.info { "Trying to open your local web browser: $uri" }
+                    Desktop.getDesktop().browse(uri)
                 } catch (ex: Exception) {
-                    log.info("Can't open web browser: " + ex.message)
+                    log.info("Can't open web browser: " + ex.message, ex)
+                    log.info("Desktop not available. Please open your browser manually: $uri")
                 }
             } else {
-                log.info("Please open your browser: $url")
+                if (quietMode) {
+                    log.info("Server started in quiet mode (option -q). Please open your browser manually: $uri")
+                } else if (!desktopSupportsBrowse) {
+                    log.info("Desktop not available. Please open your browser manually: $uri")
+                } else if (headlessMode) {
+                    log.info("Desktop not available in headless mode. Please open your browser manually: $uri")
+                }
             }
         } catch (ex: ParseException) {
             // oops, something went wrong

--
Gitblit v1.10.0