Skip to content

Commit f789fb2

Browse files
authored
Update to Java 11 (#932)
* Update to Java 11 and use jpackage for building installers jpackage requires a version of JDK13 installed with jpackage from https://jdk.java.net/jpackage/ and passed with -Pjdk13=/path/to/jdk-13 Remove Grgit Update PMD to 6.7.0 for Java 11 support Disable errorprone Disable UI tests, since they no longer work when headless and are flaky otherwise. Can still be run with Java 8 * Remove dependency on Guava in annotation processor * Support running on JDK 8 to run UI tests * Roll shadow plugin back to 4.0.1 to avoid issues with :core:shadowjar * Add mac agent dedicated for UI tests and JaCoCo reports
1 parent 34afc3d commit f789fb2

File tree

193 files changed

+1524
-583
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

193 files changed

+1524
-583
lines changed

.travis.yml

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ addons:
2020
packages:
2121
# - gcc-4.8
2222
# - g++-4.8
23-
- oracle-java8-installer
2423
# - python3
2524
before_install:
2625
- .travis-scripts/install.sh
@@ -29,13 +28,8 @@ before_install:
2928
then .travis-scripts/osx-opencv-install.sh;
3029
else .travis-scripts/linux-opencv-install.sh;
3130
fi
32-
# Only do an assemble when we aren't building a pull request
33-
install:
34-
- '[ "${TRAVIS_PULL_REQUEST}" = "false" ] && ./gradlew jfxNative --no-daemon --stacktrace -Dscan || ./gradlew --stacktrace -Dscan '
3531
3632
script:
37-
# Only run code generation tests on OSX -- linux requires sudo to install OpenCV dependencies, and that environment
38-
# will not be able to run MainWindowTest.testDragOperationFromPaletteToPipeline
3933
- ./gradlew check --stacktrace -Pheadless=true -PlogTests;
4034

4135
after_success:
@@ -52,21 +46,6 @@ notifications:
5246
on_start: never # options: [always|never|change] default: always
5347

5448

55-
env:
56-
global:
57-
secure: f90qqcA5inkHmYUK6WNITkSPbalpw+r+6nzykPdN30ahB8OUupYxoJxFknxw74raPQ69IgsDF+f8RihEBNIjH8TiMihkcwbkUGGfYaON+sVdvV/GgRQcUk0tm/wrWxRiB1qOYfsvU4sdyvFWBtAbeuhBH1JMLlQGaFjHTJOUwCjm3iEW0CKC9btsgcZIvIrHkP2KNHUMD2iBs6BJ4W448ElQTBBnaoInWUm/ecV+nNUX9yT1CpVWABVuioUkSWSm7eMiqYnvm4J9+LUh8+IMYyodO2hjPWlQ18yhmP9kSlGpQT6pRZjCRd394GE8plKxxWwp9CVXyUY/KQiYoNMRQaAiwuNnXrCi2Et1Fp8+MzQjpl+2CWbdtPwqGhKrGICfhPHvswNE2jM7VLAu/8Gn+ubhKuYfiibska5tXDBknrVbOiV1s9h3y3hI2WyyUg+T1ZsirhGVzMSmDk4HZnLUf7uEEMZEMQzLC0yk495TTZ2zihRnAkOXhNd24lHVwns2WSu0BKvawaDlfQinCbddKGNXE0cdkDvO9xk4IsbioRJ3w8DhBdL4HAEw/Gzx5N3xEVXgOAtwoP+zH2b3LIXQvP5pkuyna48R9L7Fc+EXUmejuRUmjQQMbsdLbx6Ci8gnd6Xq7CYvwry6t3R0GKuCwziuZNl44doHYR6MK7CDBWo=
58-
59-
deploy:
60-
provider: releases
61-
api_key:
62-
secure: bdjiFXG3VBcM1iyxeputsWA9vHxgLNcxRB1i0REDNAnIEvDWpAdVr1jPBejeiOEw9s+k6EItATvQ2I7Xp5iKnYaXn0NuHzM3OSY8WNVCc+gBTaQwkijPBqi/vEXaO502CscW+H2U26QZGS/jJiUuieeErtzCNcWmCv8SRc5NFOVYdSlhAmp+aPeu2YwuweiMZNVquYM2hx7murghOYSF5hQTKq4/zrziENVi78XZS8rJFmxwOGqNj1GBLul2F9poIPjzDbPVJLeXTJEY+N3aYGJ4GyZYf6p8ynDO/v043/GuOAyNfkgSwhCcTQlmLG/mm6P9CUMoDQR9klh2eDswgrIP4rGLwILg3035nqHqwgTIKVXfspni3P/65siS6lXV0M5flEkRysMBr1GQhaIEUM32ArreMzAtC2Vn2CviKG0TwLmxyd/7W3JdoX4KrHAcKBwbqFDImWw43S6N63oTUEw6GjrI+CndwgF9RNgr5SAyS28LFXViOJe7JlGVUNU33kMNpEJxzVREzkJsO8aicaZTrvDniFOfg2WhrAyhjxmh4/IOHDE6qgtxw+2+TUzMlwdzdxb90BeXg2XfMichmKfQYQFEmZntCZcoHHDG5jbCTyAvFuOv6tdPjpr69QjiEJhEbohw8CEwoGhy1kxxQcCDCfABrOTivJ39Ui8MC6k=
63-
file_glob: true
64-
file: "ui/build/jfx/native/*.{deb,pkg,dmg}"
65-
skip_cleanup: true
66-
on:
67-
repo: WPIRoboticsProjects/GRIP
68-
tags: true
69-
7049
before_cache:
7150
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
7251
cache:

annotation/src/main/java/edu/wpi/grip/annotation/processor/ClassListProcessor.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
import edu.wpi.grip.annotation.operation.PublishableObject;
55

66
import com.google.auto.service.AutoService;
7-
import com.google.common.collect.ImmutableMap;
87

98
import java.io.IOException;
109
import java.io.Writer;
10+
import java.util.HashMap;
1111
import java.util.Map;
1212
import java.util.Set;
1313
import java.util.stream.Collectors;
@@ -43,11 +43,16 @@ public class ClassListProcessor extends AbstractProcessor {
4343
public static final String PUBLISHABLES_FILE_NAME = "publishables";
4444
public static final String XSTREAM_ALIASES_FILE_NAME = "xstream-aliases";
4545

46-
private final Map<String, String> fileNames = ImmutableMap.of(
47-
Description.class.getName(), OPERATIONS_FILE_NAME,
48-
PublishableObject.class.getName(), PUBLISHABLES_FILE_NAME,
49-
"com.thoughtworks.xstream.annotations.XStreamAlias", XSTREAM_ALIASES_FILE_NAME
50-
);
46+
private final Map<String, String> fileNames = makeFileNamesMap();
47+
48+
private Map<String, String> makeFileNamesMap() {
49+
Map<String, String> map = new HashMap<>();
50+
map.put(Description.class.getName(), ClassListProcessor.OPERATIONS_FILE_NAME);
51+
map.put(PublishableObject.class.getName(), ClassListProcessor.PUBLISHABLES_FILE_NAME);
52+
map.put("com.thoughtworks.xstream.annotations.XStreamAlias",
53+
ClassListProcessor.XSTREAM_ALIASES_FILE_NAME);
54+
return map;
55+
}
5156

5257
@Override
5358
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
@@ -90,7 +95,7 @@ private void createFile(String fileName, Iterable<String> classNames) {
9095

9196
private static final class TypeNameExtractor extends SimpleTypeVisitor8<String, Void> {
9297

93-
static final TypeNameExtractor INSTANCE = new TypeNameExtractor();
98+
public static final TypeNameExtractor INSTANCE = new TypeNameExtractor();
9499

95100
@Override
96101
public String visitDeclared(DeclaredType t, Void o) {

appveyor.yml

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,8 @@
1-
install:
2-
- choco install -y InnoSetup
3-
4-
build_script:
5-
- gradlew.bat jfxNative --no-daemon --stacktrace
6-
7-
# to run your custom scripts instead of automatic tests
81
test_script:
92
- gradlew.bat check --stacktrace -Pheadless=true -PlogTests -Dscan
103

114
platform:
125
- x64
136

14-
artifacts:
15-
- path: ui\build\jfx\native\*.exe
16-
17-
18-
deploy:
19-
provider: GitHub
20-
description: ''
21-
auth_token:
22-
secure: k0uhlsYxGoZkHVNNm4E+WnOiBfzsv4yLS+htlplR7JwzARqiAC2RU0cVnsIg1UF0
23-
artifact: /.*\.exe/ # upload all exe packages to release assets
24-
draft: true
25-
prerelease: true
26-
on:
27-
branch: master # release from master branch only
28-
appveyor_repo_tag: true # deploy on tag push only
29-
307
cache:
318
- C:\Users\appveyor\.gradle

azure-pipelines.yml

Lines changed: 84 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,33 @@ jobs:
1313

1414
steps:
1515
- script: |
16-
sudo add-apt-repository -y ppa:webupd8team/java
17-
sudo apt-get update
18-
echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
19-
echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections
20-
sudo apt-get install -y oracle-java8-installer
21-
sudo apt-get install -y oracle-java8-set-default
22-
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
23-
export PATH=$JAVA_HOME/bin:$PATH
24-
displayName: 'Install Oracle JDK'
16+
mkdir build
17+
$ProgressPreference = 'SilentlyContinue'
18+
wget "https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz" -O "build/jdk.tar.gz"
19+
displayName: 'Download JDK'
20+
- script: |
21+
$ProgressPreference = 'SilentlyContinue'
22+
wget "https://download.java.net/java/early_access/jpackage/30/openjdk-13-jpackage+30_linux-x64_bin.tar.gz" -O "build/jdk-13.tar.gz"
23+
sudo mkdir /opt/java
24+
sudo tar -xzvf build/jdk-13.tar.gz -C /opt/java
25+
displayName: 'Download JDK 13'
26+
- task: JavaToolInstaller@0
27+
inputs:
28+
jdkSourceOption: localDirectory
29+
jdkFile: 'build/jdk.tar.gz'
30+
jdkDestinationDirectory: 'build/jdkinst'
31+
jdkArchitectureOption: x64
2532
- task: Gradle@2
2633
inputs:
2734
workingDirectory: ''
2835
gradleWrapperFile: 'gradlew'
29-
gradleOptions: '-Xmx3072m -Dorg.gradle.java.home=/usr/lib/jvm/java-8-oracle'
30-
jdkUserInputPath: '/usr/lib/jvm/java-8-oracle'
36+
gradleOptions: '-Xmx3072m'
3137
publishJUnitResults: false
32-
tasks: 'check jacocoTestReport jacocoRootReport jfxNative -Pgeneration -PjniLocation=build/OpenCVJNI -Pheadless=true -PlogTests --stacktrace'
33-
34-
- script: |
35-
curl -s https://codecov.io/bash > .codecov
36-
chmod +x .codecov
37-
./.codecov -t $(CODECOV_TOKEN)
38-
displayName: 'Upload jacoco reports to codecov'
38+
tasks: 'check :ui:jpackage -Pgeneration -PjniLocation=build/OpenCVJNI -Pheadless=true -PlogTests -Pjdk13=/opt/java/jdk-13 --stacktrace'
3939

4040
- task: CopyFiles@2
4141
inputs:
42-
contents: 'ui/build/jfx/native/GRIP-*.deb'
42+
contents: 'ui/build/installer/GRIP-*.deb'
4343
targetFolder: $(Build.ArtifactStagingDirectory)
4444

4545
- task: PublishBuildArtifacts@1
@@ -54,19 +54,35 @@ jobs:
5454
- script: |
5555
choco install innosetup -y
5656
displayName: 'Install Inno Setup'
57+
- powershell: |
58+
mkdir build
59+
$ProgressPreference = 'SilentlyContinue'
60+
wget "https://download.java.net/java/ga/jdk11/openjdk-11_windows-x64_bin.zip" -O "build\jdk.zip"
61+
displayName: 'Download JDK'
62+
- powershell: |
63+
$ProgressPreference = 'SilentlyContinue'
64+
wget "https://download.java.net/java/early_access/jpackage/30/openjdk-13-jpackage+30_windows-x64_bin.zip" -O "build\jdk-13.zip"
65+
Expand-Archive build\jdk-13.zip -DestinationPath build
66+
displayName: 'Download JDK 13'
67+
- task: JavaToolInstaller@0
68+
inputs:
69+
jdkSourceOption: localDirectory
70+
jdkFile: 'build/jdk.zip'
71+
jdkDestinationDirectory: 'build/jdkinst'
72+
jdkArchitectureOption: x64
5773
- task: Gradle@2
5874
inputs:
5975
workingDirectory: ''
6076
gradleWrapperFile: 'gradlew'
6177
gradleOptions: '-Xmx3072m'
62-
jdkVersionOption: '1.8'
78+
jdkVersionOption: '1.11'
6379
jdkArchitectureOption: 'x64'
6480
publishJUnitResults: true
65-
tasks: 'check jacocoTestReport jacocoRootReport jfxNative -Pheadless=true -Pgeneration -PlogTests --stacktrace'
81+
tasks: 'check :ui:jpackage -Pheadless=true -Pgeneration -PlogTests -Pjdk13=..\build\jdk-13 --stacktrace'
6682

6783
- task: CopyFiles@2
6884
inputs:
69-
contents: 'ui\build\jfx\native\GRIP-*.exe'
85+
contents: 'ui\build\installer\GRIP-*.exe'
7086
targetFolder: $(Build.ArtifactStagingDirectory)
7187

7288
- task: PublishBuildArtifacts@1
@@ -81,19 +97,29 @@ jobs:
8197
- script: |
8298
choco install innosetup -y
8399
displayName: 'Install Inno Setup'
100+
- powershell: |
101+
mkdir build
102+
$ProgressPreference = 'SilentlyContinue'
103+
wget "https://github.com/wpilibsuite/frc-openjdk-windows/releases/download/v11.0.0u28-1/jdk-x86-11.0.0u28-1.zip" -O "build\jdk.zip"
104+
displayName: 'Download JDK'
105+
- task: JavaToolInstaller@0
106+
inputs:
107+
jdkSourceOption: localDirectory
108+
jdkFile: 'build/jdk.zip'
109+
jdkDestinationDirectory: 'build/jdkinst'
110+
jdkArchitectureOption: x86
84111
- task: Gradle@2
85112
inputs:
86113
workingDirectory: ''
87114
gradleWrapperFile: 'gradlew'
88115
gradleOptions: '-Xmx1024m'
89-
jdkVersionOption: '1.8'
90-
jdkArchitectureOption: 'x86'
91116
publishJUnitResults: false
92-
tasks: 'check jacocoTestReport jacocoRootReport jfxNative -Pheadless=true -Pgeneration -PlogTests --stacktrace'
117+
# TODO: run :ui:jpackage once we have a JDK 13 build for 32-bit Windows
118+
tasks: 'check -Pheadless=true -Pgeneration -PlogTests --stacktrace'
93119

94120
- task: CopyFiles@2
95121
inputs:
96-
contents: 'ui\build\jfx\native\GRIP-*.exe'
122+
contents: 'ui\build\installer\GRIP-*.exe'
97123
targetFolder: $(Build.ArtifactStagingDirectory)
98124

99125
- task: PublishBuildArtifacts@1
@@ -105,21 +131,50 @@ jobs:
105131
vmImage: 'xcode9-macos10.13'
106132

107133
steps:
134+
- script: |
135+
mkdir build
136+
wget "https://download.java.net/java/ga/jdk11/openjdk-11_osx-x64_bin.tar.gz" -O "build/jdk.tar.gz"
137+
wget "https://download.java.net/java/early_access/jpackage/30/openjdk-13-jpackage+30_osx-x64_bin.tar.gz" -O "build/jdk-13.tar.gz"
138+
sudo tar xzvf build/jdk-13.tar.gz -C /Library/Java/JavaVirtualMachines/
139+
sudo tar xvzf build/jdk.tar.gz -C /Library/Java/JavaVirtualMachines/
140+
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/
141+
displayName: 'Setup JDK'
108142
- task: Gradle@2
109143
inputs:
110144
workingDirectory: ''
111145
gradleWrapperFile: 'gradlew'
112146
gradleOptions: '-Xmx3072m'
113-
jdkVersionOption: '1.8'
147+
jdkVersionOption: '1.11'
114148
jdkArchitectureOption: 'x64'
115149
publishJUnitResults: false
116-
tasks: 'check jacocoTestReport jacocoRootReport jfxNative -Pheadless=true -Pgeneration -PlogTests --stacktrace'
150+
tasks: 'check :ui:jpackage -Pheadless=true -Pgeneration -PlogTests -Pjdk13=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home/ --stacktrace'
117151

118152
- task: CopyFiles@2
119153
inputs:
120-
contents: 'ui/build/jfx/native/*'
154+
contents: 'ui/build/installer/*'
121155
targetFolder: $(Build.ArtifactStagingDirectory)
122156

123157
- task: PublishBuildArtifacts@1
124158
inputs:
125159
artifactName: 'MacInstaller'
160+
161+
# JDK 8 agent for UI tests
162+
- job: Mac_UI_Testing
163+
pool:
164+
vmImage: 'xcode9-macos10.13'
165+
166+
steps:
167+
- task: Gradle@2
168+
inputs:
169+
workingDirectory: ''
170+
gradleWrapperFile: 'gradlew'
171+
gradleOptions: '-Xmx3072m'
172+
jdkVersionOption: '1.8'
173+
jdkArchitectureOption: 'x64'
174+
publishJUnitResults: false
175+
tasks: 'check jacocoTestReport jacocoRootReport -Pheadless=true -Pgeneration -PlogTests --stacktrace'
176+
- script: |
177+
curl -s https://codecov.io/bash > .codecov
178+
chmod +x .codecov
179+
./.codecov -t $(CODECOV_TOKEN)
180+
displayName: 'Upload jacoco reports to codecov'

0 commit comments

Comments
 (0)