diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index d10817a9..823cbd78 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -7,7 +7,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- ideaVersion: [2019.1, 2019.2, 2019.3, 2020.1, LATEST-EAP-SNAPSHOT]
+ ideaVersion: [2019.3, 2020.1, 2020.2, LATEST-EAP-SNAPSHOT]
name: 'IDEA ${{ matrix.ideaVersion }}'
env:
IDEA_VERSION: ${{ matrix.ideaVersion }}
@@ -27,3 +27,129 @@ jobs:
uses: codecov/codecov-action@v1
with:
fail_ci_if_error: true
+ test:
+ name: Test
+ runs-on: ubuntu-latest
+ steps:
+
+ # Setup Java 1.8 environment for the next steps
+ - name: Setup Java
+ uses: actions/setup-java@v1
+ with:
+ java-version: 1.8
+
+ # Check out current repository
+ - name: Fetch Sources
+ uses: actions/checkout@v2
+
+ # Cache Gradle dependencies
+ - name: Setup Gradle Dependencies Cache
+ uses: actions/cache@v2
+ with:
+ path: ~/.gradle/caches
+ key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}
+
+ # Cache Gradle Wrapper
+ - name: Setup Gradle Wrapper Cache
+ uses: actions/cache@v2
+ with:
+ path: ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
+
+ # Run detekt, ktlint and tests
+ - name: Run Linters and Test
+ run: ./gradlew check
+
+ # Build plugin with buildPlugin Gradle task and provide the artifact for the next workflow jobs
+ # Requires test job to be passed
+ build:
+ name: Build
+ needs: test
+ runs-on: ubuntu-latest
+ outputs:
+ name: ${{ steps.properties.outputs.name }}
+ version: ${{ steps.properties.outputs.version }}
+ changelog: ${{ steps.properties.outputs.changelog }}
+ artifact: ${{ steps.properties.outputs.artifact }}
+ steps:
+
+ # Setup Java 1.8 environment for the next steps
+ - name: Setup Java
+ uses: actions/setup-java@v1
+ with:
+ java-version: 1.8
+
+ # Check out current repository
+ - name: Fetch Sources
+ uses: actions/checkout@v2
+
+ # Cache Gradle Dependencies
+ - name: Setup Gradle Dependencies Cache
+ uses: actions/cache@v2
+ with:
+ path: ~/.gradle/caches
+ key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}
+
+ # Cache Gradle Wrapper
+ - name: Setup Gradle Wrapper Cache
+ uses: actions/cache@v2
+ with:
+ path: ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
+
+ # Set environment variables
+ - name: Export Properties
+ id: properties
+ shell: bash
+ run: |
+ PROPERTIES="$(./gradlew properties --console=plain -q)"
+ VERSION="$(echo "$PROPERTIES" | grep "^version:" | cut -f2- -d ' ')"
+ NAME="$(echo "$PROPERTIES" | grep "^pluginName:" | cut -f2- -d ' ')"
+ ARTIFACT="${NAME}-${VERSION}.zip"
+ echo "::set-output name=version::$VERSION"
+ echo "::set-output name=name::$NAME"
+ echo "::set-output name=artifact::$ARTIFACT"
+ # Build artifact using buildPlugin Gradle task
+ - name: Build Plugin
+ run: ./gradlew buildPlugin
+
+ # Upload plugin artifact to make it available in the next jobs
+ - name: Upload artifact
+ uses: actions/upload-artifact@v1
+ with:
+ name: plugin-artifact
+ path: ./build/distributions/${{ needs.build.outputs.artifact }}
+
+ # Verify built plugin using IntelliJ Plugin Verifier tool
+ # Requires build job to be passed
+ verify:
+ name: Verify
+ needs: build
+ runs-on: ubuntu-latest
+ steps:
+
+ # Download plugin artifact provided by the previous job
+ - name: Download Artifact
+ uses: actions/download-artifact@v1
+ with:
+ name: plugin-artifact
+
+ # Run IntelliJ Plugin Verifier action using GitHub Action
+ - name: Verify Plugin
+ id: verify
+ uses: ChrisCarini/intellij-platform-plugin-verifier-action@v1.0.3
+ with:
+ plugin-location: plugin-artifact/*.zip
+ ide-versions: |
+ ideaIC:2019.3
+ ideaIC:2020.1
+ ideaIC:2020.2
+ ideaIC:LATEST-EAP-SNAPSHOT
+ # Print the output of the verify step
+ - name: Print Logs
+ if: ${{ always() }}
+ env:
+ OUTPUT_LOG: ${{ steps.verify.outputs.verification-output-log-filename }}
+ run: |
+ echo "The verifier log file [$OUTPUT_LOG] contents : " ;
+ cat $OUTPUT_LOG
diff --git a/build.gradle b/build.gradle
index a71cf1e1..3717345e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,5 +1,5 @@
plugins {
- id "org.jetbrains.intellij" version "0.4.18"
+ id "org.jetbrains.intellij" version "0.4.26"
id "com.github.hierynomus.license" version "0.14.0"
id "de.undercouch.download" version "4.0.4"
}
@@ -34,9 +34,7 @@ intellij {
alternativeIdePath idePath
updateSinceUntilBuild false
pluginName 'MapStruct-Intellij-Plugin'
- if ( !(version.startsWith('2018') || version.startsWith('2019.1'))) {
- plugins 'java'
- }
+ plugins 'java'
}
// Simple function to load change-notes.html and description.html into valid text for plugin.xml
diff --git a/gradle.properties b/gradle.properties
index 961559e3..70a3f33a 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,7 +2,7 @@
# https://www.jetbrains.com/intellij-repository/releases
# https://www.jetbrains.com/intellij-repository/snapshots
-ideaVersion = 2019.1
+ideaVersion = 2019.3
ideaType = IC
sources = true
isEAP = false
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 457aad0d..490fda85 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 6623300b..33682bbb 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index af6708ff..2fe81a7d 100755
--- a/gradlew
+++ b/gradlew
@@ -1,5 +1,21 @@
#!/usr/bin/env sh
+#
+# Copyright 2015 the original author or 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
@@ -28,7 +44,7 @@ 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='"-Xmx64m"'
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -109,8 +125,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
@@ -138,19 +154,19 @@ if $cygwin ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=$((i+1))
+ i=`expr $i + 1`
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" ;;
+ 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
@@ -159,14 +175,9 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
-APP_ARGS=$(save "$@")
+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")"
-fi
-
exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
index 6d57edc7..62bd9b9c 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,3 +1,19 @@
+@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
@@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=.
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="-Xmx64m"
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index 9b1a8fd2..aa3efd40 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -24,7 +24,7 @@
MapStruct
-
+