From 5442083694779222856703e95807f5134ac9835a Mon Sep 17 00:00:00 2001 From: Christian Dietrich Date: Fri, 24 May 2024 12:47:28 +0200 Subject: [PATCH] modernize gradle and xtend (#105) --- .../states-xtext/language-server/build.gradle | 16 +- .../gradle/maven-deployment.gradle | 19 +- .../gradle/source-layout.gradle | 17 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 54413 -> 53937 bytes .../gradle/wrapper/gradle-wrapper.properties | 4 +- examples/states-xtext/language-server/gradlew | 301 +++++++++++------- .../states-xtext/language-server/gradlew.bat | 76 +++-- .../build.gradle | 22 +- .../build.gradle | 16 +- 9 files changed, 286 insertions(+), 185 deletions(-) diff --git a/examples/states-xtext/language-server/build.gradle b/examples/states-xtext/language-server/build.gradle index cdfcebc..cc2bd68 100644 --- a/examples/states-xtext/language-server/build.gradle +++ b/examples/states-xtext/language-server/build.gradle @@ -1,14 +1,15 @@ buildscript { repositories { mavenCentral() + gradlePluginPortal() } dependencies { - classpath 'org.xtext:xtext-gradle-plugin:2.0.8' + classpath 'org.xtext:xtext-gradle-plugin:4.0.0' } } subprojects { - ext.xtextVersion = '2.26.0' + ext.xtextVersion = '2.34.0' ext.sprottyVersion = '0.9.1' ext.elkVersion = '0.8.1' @@ -16,9 +17,10 @@ subprojects { mavenCentral() } - apply plugin: 'java' + apply plugin: 'maven-publish' + apply plugin: 'java-library' dependencies { - compile platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}") + api platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}") } apply plugin: 'org.xtext.xtend' @@ -29,8 +31,10 @@ subprojects { group = 'io.typefox.examples.theia.states' //version = '1.0.0-SNAPSHOT' - sourceCompatibility = '11' - targetCompatibility = '11' + java { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } configurations.all { exclude group: 'asm' diff --git a/examples/states-xtext/language-server/gradle/maven-deployment.gradle b/examples/states-xtext/language-server/gradle/maven-deployment.gradle index cf1274d..cd547fb 100644 --- a/examples/states-xtext/language-server/gradle/maven-deployment.gradle +++ b/examples/states-xtext/language-server/gradle/maven-deployment.gradle @@ -1,11 +1,12 @@ -//see https://docs.gradle.org/current/userguide/maven_plugin.html -apply plugin: 'maven' +publishing { + publications { + LocalMavenRepo(MavenPublication) { + } -uploadArchives { - repositories { - mavenDeployer { - repository(url: "file://${buildDir}/localRepo") - snapshotRepository(url: "file://${buildDir}/localRepo") - } - } + } + repositories { + maven { + url = "$rootProject.buildDir/localRepo" + } + } } diff --git a/examples/states-xtext/language-server/gradle/source-layout.gradle b/examples/states-xtext/language-server/gradle/source-layout.gradle index d347fb1..044b0c9 100644 --- a/examples/states-xtext/language-server/gradle/source-layout.gradle +++ b/examples/states-xtext/language-server/gradle/source-layout.gradle @@ -1,13 +1,13 @@ sourceSets { main { - java.srcDirs = ['src/main/java', 'src/main/xtext-gen'] - resources.srcDirs = ['src/main/resources', 'src/main/xtext-gen'] - xtendOutputDir = 'src/main/xtend-gen' + java.srcDir 'src/main/xtext-gen' + resources.srcDir 'src/main/xtext-gen' + xtend.outputDir = 'src/main/xtend-gen' } test { - java.srcDirs = ['src/test/java', 'src/test/xtext-gen'] - resources.srcDirs = ['src/test/resources', 'src/test/xtext-gen'] - xtendOutputDir = 'src/test/xtend-gen' + java.srcDir 'src/test/xtext-gen' + resources.srcDir 'src/test/xtext-gen' + xtend.outputDir = 'src/test/xtend-gen' } } @@ -23,6 +23,9 @@ jar { } } + plugins.withId('war') { - webAppDirName = "src/main/webapp" + war { + webAppDirectory = file("src/main/webapp") + } } diff --git a/examples/states-xtext/language-server/gradle/wrapper/gradle-wrapper.jar b/examples/states-xtext/language-server/gradle/wrapper/gradle-wrapper.jar index 0d4a9516871afd710a9d84d89e31ba77745607bd..e3424a87265f2edb8bd9121d1e552c9d72857e09 100644 GIT binary patch literal 53937 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 e?=b$45TBeR$lI(40D$oA@AKP)zbL-0C3_3~ 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 diff --git a/examples/states-xtext/language-server/gradle/wrapper/gradle-wrapper.properties b/examples/states-xtext/language-server/gradle/wrapper/gradle-wrapper.properties index 5028f28..a80b22c 100644 --- a/examples/states-xtext/language-server/gradle/wrapper/gradle-wrapper.properties +++ b/examples/states-xtext/language-server/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/states-xtext/language-server/gradlew b/examples/states-xtext/language-server/gradlew index cccdd3d..65a625b 100755 --- a/examples/states-xtext/language-server/gradlew +++ b/examples/states-xtext/language-server/gradlew @@ -1,78 +1,127 @@ -#!/usr/bin/env sh +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,92 +130,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/examples/states-xtext/language-server/gradlew.bat b/examples/states-xtext/language-server/gradlew.bat index e95643d..7101f8e 100644 --- a/examples/states-xtext/language-server/gradlew.bat +++ b/examples/states-xtext/language-server/gradlew.bat @@ -1,4 +1,20 @@ -@if "%DEBUG%" == "" @echo off +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -9,25 +25,29 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -35,48 +55,36 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/examples/states-xtext/language-server/io.typefox.examples.theia.states.ide/build.gradle b/examples/states-xtext/language-server/io.typefox.examples.theia.states.ide/build.gradle index 2e330c8..54d1ed1 100644 --- a/examples/states-xtext/language-server/io.typefox.examples.theia.states.ide/build.gradle +++ b/examples/states-xtext/language-server/io.typefox.examples.theia.states.ide/build.gradle @@ -1,18 +1,22 @@ dependencies { - compile project(':io.typefox.examples.theia.states') - compile "org.eclipse.xtext:org.eclipse.xtext.ide:${xtextVersion}" - compile "org.eclipse.xtext:org.eclipse.xtext.xbase.ide:${xtextVersion}" + api project(':io.typefox.examples.theia.states') + api "org.eclipse.xtext:org.eclipse.xtext.ide:${xtextVersion}" + api "org.eclipse.xtext:org.eclipse.xtext.xbase.ide:${xtextVersion}" - compile "org.eclipse.sprotty:org.eclipse.sprotty.server:${sprottyVersion}" - compile "org.eclipse.sprotty:org.eclipse.sprotty.xtext:${sprottyVersion}" + api "org.eclipse.sprotty:org.eclipse.sprotty.server:${sprottyVersion}" + api "org.eclipse.sprotty:org.eclipse.sprotty.xtext:${sprottyVersion}" - compile "org.eclipse.sprotty:org.eclipse.sprotty.layout:${sprottyVersion}" - compile "org.eclipse.elk:org.eclipse.elk.alg.layered:${elkVersion}" + api "org.eclipse.sprotty:org.eclipse.sprotty.layout:${sprottyVersion}" + api "org.eclipse.elk:org.eclipse.elk.alg.layered:${elkVersion}" } apply plugin: 'application' -mainClassName = "io.typefox.examples.theia.states.ide.launch.StatesServerLauncher" -applicationName = 'states-language-server' +application { + mainClass = "io.typefox.examples.theia.states.ide.launch.StatesServerLauncher" + applicationName = 'states-language-server' +} + + task unzipServer(type: Copy, dependsOn: distZip) { def zipFile = file("${buildDir}/distributions/states-language-server.zip") diff --git a/examples/states-xtext/language-server/io.typefox.examples.theia.states/build.gradle b/examples/states-xtext/language-server/io.typefox.examples.theia.states/build.gradle index 64627cf..18eb870 100644 --- a/examples/states-xtext/language-server/io.typefox.examples.theia.states/build.gradle +++ b/examples/states-xtext/language-server/io.typefox.examples.theia.states/build.gradle @@ -1,13 +1,14 @@ dependencies { - testCompile 'org.junit.jupiter:junit-jupiter-api' - testRuntime 'org.junit.jupiter:junit-jupiter-engine' - testCompile "org.eclipse.xtext:org.eclipse.xtext.testing:${xtextVersion}" - compile "org.eclipse.xtext:org.eclipse.xtext:${xtextVersion}" - compile "org.eclipse.xtext:org.eclipse.xtext.xbase:${xtextVersion}" + testImplementation 'org.junit.jupiter:junit-jupiter-api' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation "org.eclipse.xtext:org.eclipse.xtext.testing:${xtextVersion}" + api "org.eclipse.xtext:org.eclipse.xtext:${xtextVersion}" + api "org.eclipse.xtext:org.eclipse.xtext.xbase:${xtextVersion}" } configurations { mwe2 { - extendsFrom compile + extendsFrom compileClasspath } } @@ -19,7 +20,7 @@ dependencies { } task generateXtextLanguage(type: JavaExec) { - main = 'org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher' + mainClass = 'org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher' classpath = configurations.mwe2 inputs.file "src/main/java/io/typefox/examples/theia/states/GenerateStates.mwe2" inputs.file "src/main/java/io/typefox/examples/theia/states/States.xtext" @@ -32,6 +33,7 @@ task generateXtextLanguage(type: JavaExec) { test { useJUnitPlatform() } +processResources.dependsOn(generateXtextLanguage) generateXtext.dependsOn(generateXtextLanguage) clean.dependsOn(cleanGenerateXtextLanguage) eclipse.classpath.plusConfigurations += [configurations.mwe2]