From 866673bbc4442b3b7594aef52e2339e6df9589de Mon Sep 17 00:00:00 2001 From: Alex Abashev Date: Fri, 2 Oct 2026 00:21:33 +0300 Subject: [PATCH 1/9] Replace palantir's Gradle plugins with plain Gradle The build no longer applies anything from palantir's Gradle tooling. What it used to get from there is now written out in two buildSrc convention plugins, or comes from the plain upstream plugins: - open-java-format.error-prone-conventions runs Error Prone 2.50.0 through net.ltgt.errorprone and net.ltgt.nullaway, with NullAway and Picnic's error-prone-support, in place of baseline-error-prone, baseline-null-away, suppressible-error-prone and gradle-guide, which applied suppressible-error-prone itself. The checks vfs-s3 makes build-breaking are listed there, commented out until the code is fixed. - open-java-format.java-conventions sets what gradle-baseline-java did: the Java 21 toolchain, tests on -PjavaRuntime, the JUnit wiring, the javac flags and Checkstyle. The IntelliJ Platform plugin defaults javac to --release, which javac refuses alongside the --add-exports of jdk.compiler; baseline hid that, and the IDEA plugin's build now unsets it. - Checkstyle's configuration moves from .baseline/checkstyle to Gradle's default config/checkstyle and runs on Checkstyle 14.3.0, without JavadocStyle, which Checkstyle 13.9.0 removed. custom-suppressions.xml still suppresses every check, as upstream. - The released dev.openjavaformat.java-format 2.98.0.5 formats the repository instead of com.palantir.java-format, which needed Spotless on the classpath once baseline no longer brought it. - The version comes from git describe, the same command gradle-git-version ran. failure-reports, idea-language-injector and jakarta-package-alignment go without replacement, and so do the configuration files of palantir's bots: bulldozer, changelog, excavator and revapi. --- .bulldozer.yml | 17 ---- .changelog.yml | 3 - .excavator.yml | 12 --- .palantir/revapi.yml | 24 ------ build.gradle | 83 ++++--------------- buildSrc/build.gradle | 2 + ...java-format.error-prone-conventions.gradle | 53 ++++++++++++ .../open-java-format.java-conventions.gradle | 67 +++++++++++++++ ...-java-format.publishing-conventions.gradle | 3 +- .../checkstyle/checkstyle-suppressions.xml | 3 - .../checkstyle/checkstyle.xml | 3 - .../checkstyle/custom-suppressions.xml | 0 gradle-open-java-format/build.gradle | 1 - .../PalantirJavaFormatSpotlessPluginTest.java | 32 +++---- gradle.properties | 7 +- gradle/libs.versions.toml | 14 +++- open-java-format-benchmarks/build.gradle | 1 + open-java-format-idea-plugin/build.gradle | 7 ++ open-java-format-jdk-bootstrap/build.gradle | 9 +- open-java-format-spi/build.gradle | 4 - open-java-format/build.gradle | 13 ++- 21 files changed, 186 insertions(+), 172 deletions(-) delete mode 100644 .bulldozer.yml delete mode 100644 .changelog.yml delete mode 100644 .excavator.yml delete mode 100644 .palantir/revapi.yml create mode 100644 buildSrc/src/main/groovy/open-java-format.error-prone-conventions.gradle create mode 100644 buildSrc/src/main/groovy/open-java-format.java-conventions.gradle rename {.baseline => config}/checkstyle/checkstyle-suppressions.xml (89%) rename {.baseline => config}/checkstyle/checkstyle.xml (99%) rename {.baseline => config}/checkstyle/custom-suppressions.xml (100%) diff --git a/.bulldozer.yml b/.bulldozer.yml deleted file mode 100644 index b62e82baa..000000000 --- a/.bulldozer.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Excavator auto-updates this file. Please contribute improvements to the central template. - -version: 1 -merge: - trigger: - labels: ["merge when ready"] - ignore: - labels: ["do not merge"] - method: squash - options: - squash: - body: pull_request_body - message_delimiter: ==COMMIT_MSG== - delete_after_merge: true -update: - trigger: - labels: ["update me"] diff --git a/.changelog.yml b/.changelog.yml deleted file mode 100644 index a30143b32..000000000 --- a/.changelog.yml +++ /dev/null @@ -1,3 +0,0 @@ -# Excavator auto-updates this file. Please contribute improvements to the central template. - -# This file is intentionally empty. The file's existence enables changelog-app and is empty to use the default configuration. diff --git a/.excavator.yml b/.excavator.yml deleted file mode 100644 index 5adc03ebd..000000000 --- a/.excavator.yml +++ /dev/null @@ -1,12 +0,0 @@ -# Excavator auto-updates this file. Please contribute improvements to the central template. - -auto-label: - names: - versions-props/upgrade-all: [ "merge when ready" ] - circleci/manage-circleci: [ "merge when ready" ] - tags: - donotmerge: [ "do not merge" ] - roomba: [ "merge when ready", "🤖 fix nits" ] - automerge: [ "merge when ready", "🤖 fix nits" ] - standards: [ "merge when ready", "🤖 fix nits" ] - autorelease: [ "autorelease" ] diff --git a/.palantir/revapi.yml b/.palantir/revapi.yml deleted file mode 100644 index 430942cd5..000000000 --- a/.palantir/revapi.yml +++ /dev/null @@ -1,24 +0,0 @@ -acceptedBreaks: - "0.3.9": - com.palantir.javaformat:gradle-palantir-java-format: - - code: "java.class.removed" - old: "class com.palantir.javaformat.gradle.ConfigureExternalDependenciesXml" - justification: "nobody used this directly" - - code: "java.class.removed" - old: "class com.palantir.javaformat.gradle.ConfigurePalantirJavaFormatXml" - justification: "nobody used this directly" - - code: "java.class.removed" - old: "class com.palantir.javaformat.gradle.UpdateIntellijXmlTask" - justification: "nobody used this directly" - "2.33.0": - com.palantir.javaformat:gradle-palantir-java-format: - - code: "java.method.visibilityReduced" - old: "method void com.palantir.javaformat.gradle.ConfigureJavaFormatterXml::configureFormatOnSave(groovy.util.Node)" - new: "method void com.palantir.javaformat.gradle.ConfigureJavaFormatterXml::configureFormatOnSave(groovy.util.Node)" - justification: "Not public api, not split over multiple jars" - "2.43.0": - com.palantir.javaformat:palantir-java-format-spi: - - code: "java.method.addedToInterface" - new: "method java.lang.String com.palantir.javaformat.java.FormatterService::fixImports(java.lang.String)\ - \ throws com.palantir.javaformat.java.FormatterException" - justification: "new fixImports only method added to spi" diff --git a/build.gradle b/build.gradle index 5eec0460a..ece57950f 100644 --- a/build.gradle +++ b/build.gradle @@ -4,46 +4,30 @@ buildscript { gradlePluginPortal() } - dependencies { - classpath 'com.palantir.jakartapackagealignment:jakarta-package-alignment:0.7.0' classpath 'com.gradle.publish:plugin-publish-plugin:2.2.1' - classpath 'com.palantir.baseline-error-prone:gradle-baseline-error-prone:0.7.0' - classpath 'com.palantir.baseline:gradle-baseline-java:7.9.0' - classpath 'com.palantir.gradle.failure-reports:gradle-failure-reports:1.21.0' - classpath 'com.palantir.gradle.gitversion:gradle-git-version:5.1.0' - classpath 'com.palantir.gradle.guide:gradle-guide:1.27.0' - classpath 'com.palantir.gradle.idea-configuration:gradle-idea-configuration:0.11.0' - classpath 'com.palantir.gradle.idea-language-injector:gradle-idea-language-injector:0.5.0' - classpath 'com.palantir.javaformat:gradle-palantir-java-format:2.98.0' - classpath 'com.palantir.suppressible-error-prone:gradle-suppressible-error-prone:2.33.0' + // The released open-java-format formats this repository, not the one being built here. + classpath 'dev.openjavaformat:gradle-open-java-format:2.98.0.5' classpath 'me.champeau.jmh:jmh-gradle-plugin:0.7.3' } } -apply plugin: 'com.palantir.failure-reports' -apply plugin: 'com.palantir.git-version' -apply plugin: 'com.palantir.gradle-guide' -apply plugin: 'com.palantir.idea-language-injector' -// Not the `com.palantir.baseline` aggregate: it also applies baseline-format (Spotless) and -// baseline-class-uniqueness, and both are incompatible with the configuration cache at their -// latest versions — Spotless fails serialising its Groovy extension, checkClassUniqueness casts -// a ResolvingFileCollection to Configuration. The rest of what baseline gives us is applied -// per project below, so error-prone and the JUnit wiring survive. -apply plugin: 'com.palantir.baseline-error-prone-root' -apply plugin: 'com.palantir.baseline-java-versions' // Maven Central releases: buildSrc/src/main/groovy/open-java-format.release-conventions.gradle. apply plugin: 'open-java-format.release-conventions' // GitHub Actions sets GITHUB_REF_TYPE=tag on a tag build; otherwise derive the -// version from git history (needs a full clone: actions/checkout fetch-depth: 0). +// version from git history (needs a full clone: actions/checkout fetch-depth: 0): +// the nearest tag, the commits since it and the hash, `.dirty` with uncommitted changes. // // Read through providers rather than System.env: the configuration cache tracks a provider as an input // and invalidates when it changes, while a plain System.env read is invisible to it — a cached // configuration then keeps handing out the version of whichever environment happened to fill it. def refType = providers.environmentVariable('GITHUB_REF_TYPE') def refName = providers.environmentVariable('GITHUB_REF_NAME') -version refType.getOrElse('') == 'tag' ? refName.get() : gitVersion() +def gitDescribe = providers.exec { + commandLine 'git', 'describe', '--tags', '--always', '--first-parent', '--abbrev=7', '--dirty=.dirty' +}.standardOutput.asText.map { it.trim() } +version refType.getOrElse('') == 'tag' ? refName.get() : gitDescribe.get() // The GraalVM image is built by its own per-platform CI job, never as a side effect of // `./gradlew build`: an aggregate build must not require a GraalVM toolchain on a machine that @@ -51,9 +35,7 @@ version refType.getOrElse('') == 'tag' ? refName.get() : gitVersion() // what .github/workflows/ci.yml's `native` jobs do. ext.nativeImageRequested = Boolean.parseBoolean(providers.gradleProperty('nativeImage').getOrElse('false')) -// The javac internals the formatter parses with. Was baseline's `moduleJvmArgs`, which is -// dropped because it resolves its extension at execution time and the configuration cache -// forbids that — so the exports are handed to javac and to the test JVMs here instead. +// The javac internals the formatter parses with, handed to javac and to the test JVMs. def javacInternalExports = [ 'jdk.compiler/com.sun.tools.javac.api', 'jdk.compiler/com.sun.tools.javac.code', @@ -65,18 +47,8 @@ def javacInternalExports = [ ] allprojects { - apply plugin: 'com.palantir.baseline-null-away' - apply plugin: 'com.palantir.baseline-encoding' - apply plugin: 'com.palantir.baseline-immutables' - apply plugin: 'com.palantir.baseline-java-compiler-diagnostics' - apply plugin: 'com.palantir.baseline-java-compiler-heap' - apply plugin: 'com.palantir.baseline-java-properties' - apply plugin: 'com.palantir.baseline-prefer-project-modules' - apply plugin: 'com.palantir.baseline-reproducibility' - apply plugin: 'com.palantir.baseline-test-heap' - apply plugin: com.palantir.baseline.plugins.BaselineTesting - apply plugin: 'com.palantir.java-format' - apply plugin: 'com.palantir.jakarta-package-alignment' + apply plugin: 'dev.openjavaformat.java-format' + // The fork's Maven group (README, "Coordinates"). The Java packages stay com.palantir.javaformat. group = 'dev.openjavaformat' version = rootProject.version @@ -95,8 +67,8 @@ allprojects { tasks.withType(Javadoc).configureEach { options.addMultilineStringsOption('-add-exports') .setValue(javacInternalExports.collect { "${it}=ALL-UNNAMED".toString() }) - // baseline used to silence doclint; these sources carry inherited javadoc from - // google-java-format that has never satisfied it (unknown tags, malformed HTML). + // These sources carry inherited javadoc from google-java-format that has never + // satisfied doclint (unknown tags, malformed HTML). options.addStringOption('Xdoclint:none', '-quiet') } @@ -108,33 +80,12 @@ allprojects { subprojects { apply plugin: 'java-library' + // Java toolchains, javac and test settings; Error Prone. Both in buildSrc/src/main/groovy. + apply plugin: 'open-java-format.java-conventions' + apply plugin: 'open-java-format.error-prone-conventions' dependencies { - // Gives a version to the JUnit artifacts that plugins add without one. + // Gives a version to the JUnit artifacts that useJUnitJupiter() adds without one. testImplementation platform(libs.junit.bom) } - - tasks.withType(Checkstyle).configureEach { - enabled = false - } - - tasks.withType(JavaCompile).configureEach { - options.errorprone.disable 'PreconditionsConstantMessage', 'PreferSafeLoggableExceptions', 'PreferSafeLoggingPreconditions' - options.errorprone.disable 'StrictUnusedVariable' - } - - // Run `./gradlew test -Drecreate=true` to recreate all the expected - // generated code that we have checked into the repo. - tasks.withType(Test).configureEach { - systemProperty 'recreate', System.getProperty('recreate', 'false') - } -} - -// The JDK the tests run on, and with it the javac whose internals the formatter parses with. The code is -// compiled for 21 whatever this says. CI's `jdk` jobs pass -PjavaRuntime=25 and so on. -ext.javaRuntime = providers.gradleProperty('javaRuntime').getOrElse('21') - -javaVersions { - libraryTarget = 21 - runtime = javaRuntime } diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index cab7946d6..a05ff2712 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -11,5 +11,7 @@ repositories { } dependencies { + implementation 'net.ltgt.gradle:gradle-errorprone-plugin:5.1.1' + implementation 'net.ltgt.gradle:gradle-nullaway-plugin:3.2.0' implementation 'org.jreleaser:org.jreleaser.gradle.plugin:1.26.0' } diff --git a/buildSrc/src/main/groovy/open-java-format.error-prone-conventions.gradle b/buildSrc/src/main/groovy/open-java-format.error-prone-conventions.gradle new file mode 100644 index 000000000..99642d33b --- /dev/null +++ b/buildSrc/src/main/groovy/open-java-format.error-prone-conventions.gradle @@ -0,0 +1,53 @@ +// Error Prone with NullAway and Picnic's error-prone-support checks, on the plain net.ltgt plugins. +plugins { + id 'net.ltgt.errorprone' + id 'net.ltgt.nullaway' +} + +dependencies { + errorprone libs.errorprone.core + errorprone libs.nullaway + errorprone libs.errorProneSupport.contrib +} + +nullaway { + annotatedPackages.add('com.palantir') +} + +tasks.withType(JavaCompile).configureEach { + options.errorprone { + // Annotation processor output (derive4j, Immutables) is not ours to fix. + excludedPaths = '.*/build/generated/.*' + } +} + +// Gradle injects services through abstract @Inject getters, which is what this check forbids. +pluginManager.withPlugin('java-gradle-plugin') { + tasks.withType(JavaCompile).configureEach { + options.errorprone.disable('JavaxInjectOnAbstractMethod') + } +} + +// The checks vfs-s3 makes build-breaking. Off until the code is fixed, one check at a time: +// JUnitMethodDeclaration 206, StaticImport 84, LexicographicalAnnotationListing 46, JUnitClassModifiers 25, +// RedundantStringConversion 6, AlmostJavadoc 3 findings; the rest have none. +//tasks.withType(JavaCompile).configureEach { +// options.errorprone { +// error('StaticImport') +// error('UnnecessarilyFullyQualified') +// error('EmptyBlockTag') +// error('OperatorPrecedence') +// error('RedundantStringConversion') +// error('PatternMatchingInstanceof') +// error('UnnecessaryParentheses') +// error('LexicographicalAnnotationListing') +// error('JUnitMethodDeclaration') +// error('JUnitClassModifiers') +// error('MissingSummary') +// error('AlmostJavadoc') +// error('BadImport') +// error('JdkObsolete') +// // NonStaticImport (Picnic) is the inverse of StaticImport and would give contradictory advice. +// disable('NonStaticImport') +// } +//} diff --git a/buildSrc/src/main/groovy/open-java-format.java-conventions.gradle b/buildSrc/src/main/groovy/open-java-format.java-conventions.gradle new file mode 100644 index 000000000..b5a337736 --- /dev/null +++ b/buildSrc/src/main/groovy/open-java-format.java-conventions.gradle @@ -0,0 +1,67 @@ +// Java compilation and tests for every module: what palantir/gradle-baseline used to set, in plain Gradle. +plugins { + id 'java' + id 'checkstyle' +} + +// The JDK the tests run on, and with it the javac whose internals the formatter parses with. The code is +// compiled for 21 whatever this says. CI's `jdk` jobs pass -PjavaRuntime=25 and so on. +ext.javaRuntime = providers.gradleProperty('javaRuntime').getOrElse('21') + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + +configurations.configureEach { + resolutionStrategy.preferProjectModules() +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' + options.compilerArgs.addAll('-parameters', '-Xmaxwarns', '10000', '-Xmaxerrs', '10000') +} + +tasks.withType(Javadoc).configureEach { + options.encoding = 'UTF-8' + options.tags('apiNote', 'implSpec', 'implNote') +} + +// The configuration is Gradle's default, config/checkstyle in the root project. +checkstyle { + toolVersion = libs.versions.checkstyle.get() +} + +tasks.withType(AbstractArchiveTask).configureEach { + duplicatesStrategy = DuplicatesStrategy.WARN +} + +testing { + suites { + test { + useJUnitJupiter() + } + } +} + +tasks.withType(Test).configureEach { + javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(javaRuntime) + } + maxHeapSize = '2g' + jvmArgs '-XX:+HeapDumpOnOutOfMemoryError', '-XX:+CrashOnOutOfMemoryError' + + systemProperty 'junit.platform.output.capture.stdout', 'true' + systemProperty 'junit.platform.output.capture.stderr', 'true' + systemProperty 'junit.jupiter.execution.parallel.enabled', 'true' + systemProperty 'junit.jupiter.execution.parallel.config.strategy', 'dynamic' + testLogging.events 'failed' + + // Run `./gradlew test -Drecreate=true` to recreate all the expected + // generated code that we have checked into the repo. + def recreate = Boolean.getBoolean('recreate') + systemProperty 'recreate', recreate.toString() + outputs.upToDateWhen { !recreate } + outputs.cacheIf { false } +} diff --git a/buildSrc/src/main/groovy/open-java-format.publishing-conventions.gradle b/buildSrc/src/main/groovy/open-java-format.publishing-conventions.gradle index 43de8f90e..635abe17e 100644 --- a/buildSrc/src/main/groovy/open-java-format.publishing-conventions.gradle +++ b/buildSrc/src/main/groovy/open-java-format.publishing-conventions.gradle @@ -1,5 +1,3 @@ -// Applied by every module with a Maven publication: the POM Maven Central requires, and a local -// `staging` repository that JReleaser signs and uploads from (open-java-format.release-conventions). plugins { id 'maven-publish' } @@ -61,6 +59,7 @@ publishing { def cleanStagingDeploy = tasks.register('cleanStagingDeploy', Delete) { delete stagingDeploy } + tasks.withType(PublishToMavenRepository).configureEach { if (name.endsWith('ToStagingRepository')) { dependsOn cleanStagingDeploy diff --git a/.baseline/checkstyle/checkstyle-suppressions.xml b/config/checkstyle/checkstyle-suppressions.xml similarity index 89% rename from .baseline/checkstyle/checkstyle-suppressions.xml rename to config/checkstyle/checkstyle-suppressions.xml index c0f855b14..d7f04004e 100644 --- a/.baseline/checkstyle/checkstyle-suppressions.xml +++ b/config/checkstyle/checkstyle-suppressions.xml @@ -17,9 +17,6 @@ - - - diff --git a/.baseline/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml similarity index 99% rename from .baseline/checkstyle/checkstyle.xml rename to config/checkstyle/checkstyle.xml index ebd85fcfb..41ca93b6d 100644 --- a/.baseline/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -412,9 +412,6 @@ - - - diff --git a/.baseline/checkstyle/custom-suppressions.xml b/config/checkstyle/custom-suppressions.xml similarity index 100% rename from .baseline/checkstyle/custom-suppressions.xml rename to config/checkstyle/custom-suppressions.xml diff --git a/gradle-open-java-format/build.gradle b/gradle-open-java-format/build.gradle index 700819fe7..70b21e288 100644 --- a/gradle-open-java-format/build.gradle +++ b/gradle-open-java-format/build.gradle @@ -42,7 +42,6 @@ dependencies { // Third-party plugins the generated test projects apply. java-gradle-plugin injects this // alongside the plugin under test, so `plugins { id '...' }` resolves them without a version. pluginClasspath libs.spotless.gradlePlugin - pluginClasspath libs.baseline.gradlePlugin } gradlePlugin { diff --git a/gradle-open-java-format/src/test/java/com/palantir/javaformat/gradle/PalantirJavaFormatSpotlessPluginTest.java b/gradle-open-java-format/src/test/java/com/palantir/javaformat/gradle/PalantirJavaFormatSpotlessPluginTest.java index f191c45c3..de9d55f78 100644 --- a/gradle-open-java-format/src/test/java/com/palantir/javaformat/gradle/PalantirJavaFormatSpotlessPluginTest.java +++ b/gradle-open-java-format/src/test/java/com/palantir/javaformat/gradle/PalantirJavaFormatSpotlessPluginTest.java @@ -62,30 +62,24 @@ void formats_with_spotless_when_spotless_is_applied( GradleTestProject project = new GradleTestProject(projectDir) // The spotless plugin dependency is already brought in by open-java-format - .plugins( - "java", - "dev.openjavaformat.java-format", - "com.palantir.baseline-java-versions", - "com.diffplug.spotless") + .plugins("java", "dev.openjavaformat.java-format", "com.diffplug.spotless") .withJavacInternalExports() .gradleProperties(extraGradleProperties == null ? "" : extraGradleProperties) // The generated project resolves this through Gradle's own toolchain detection; this // repository no longer provisions JDKs itself (palantir/gradle-jdks was removed). - .buildGradle( - """ - javaVersions { - libraryTarget = %s + .buildGradle(""" + java { + toolchain { + languageVersion = JavaLanguageVersion.of(%s) } - """, - javaVersion) - .buildGradle( - """ - dependencies { - palantirJavaFormat files(file("%s").text.split(File.pathSeparator)) - %s - } - """, - CLASSPATH_FILE, extraDependencies) + } + """, javaVersion) + .buildGradle(""" + dependencies { + palantirJavaFormat files(file("%s").text.split(File.pathSeparator)) + %s + } + """, CLASSPATH_FILE, extraDependencies) .writeFile(MAIN_JAVA, invalidJavaFile()); BuildResult result = project.succeeds("spotlessApply", "--info"); diff --git a/gradle.properties b/gradle.properties index e5f9c9a67..be6acf4bb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,10 +7,9 @@ org.gradle.jvmargs=--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAME --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \ --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED -# Read by the upstream com.palantir.java-format plugin that formats this repository (applied in -# build.gradle), so it keeps the upstream name. The fork's own Gradle plugin reads -# openjavaformat.native.formatter instead. -palantir.native.formatter=true +# Read by the released dev.openjavaformat.java-format plugin that formats this repository (applied +# in build.gradle): formatDiff runs its native image instead of the formatter inside the Gradle JVM. +openjavaformat.native.formatter=true # Where Gradle looks for JDKs. Auto-detection only reads JAVA_HOME, and CI overwrites that with # the JDK 21 used for the jars — so without this line GraalVM stays invisible and nativeCompile diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 58fe1088e..e7acec749 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,6 +2,10 @@ # (versions.props + versions.lock): a version catalog is plain Gradle, and Dependabot # updates it, which it could not do for versions.props. +[versions] +# Checkstyle, run by open-java-format.java-conventions with the configuration in config/checkstyle. +checkstyle = "14.3.0" + [libraries] # Eclipse bundles the plugin compiles against. compileOnly: at runtime the host IDE # provides them, and META-INF/MANIFEST.MF imports the packages without version ranges. @@ -10,14 +14,18 @@ eclipse-jdtCore = { module = "org.eclipse.jdt:org.eclipse.jdt.core", version = " eclipse-jfaceText = { module = "org.eclipse.platform:org.eclipse.jface.text", version = "3.31.100" } eclipse-text = { module = "org.eclipse.platform:org.eclipse.text", version = "3.14.800" } jetbrainsAnnotations = { module = "org.jetbrains:annotations", version = "26.1.0" } -# A platform, not a dependency: plugins (baseline) inject versionless JUnit artifacts such as -# junit-platform-launcher, and versions.props used to supply their versions. +# A platform, not a dependency: useJUnitJupiter() (open-java-format.java-conventions) adds +# versionless JUnit artifacts such as junit-platform-launcher, and this gives them a version. junit-bom = { module = "org.junit:junit-bom", version = "6.1.3" } assertj = { module = "org.assertj:assertj-core", version = "3.27.7" } autoService = { module = "com.google.auto.service:auto-service", version = "1.1.1" } -baseline-gradlePlugin = { module = "com.palantir.baseline:gradle-baseline-java", version = "7.9.0" } caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version = "3.2.4" } compileTesting = { module = "com.google.testing.compile:compile-testing", version = "0.23.0" } +# Error Prone, the checks it runs: open-java-format.error-prone-conventions. error-prone-contrib is +# Picnic's error-prone-support, built against one Error Prone release; keep the two in step. +errorprone-core = { module = "com.google.errorprone:error_prone_core", version = "2.50.0" } +errorProneSupport-contrib = { module = "tech.picnic.error-prone-support:error-prone-contrib", version = "0.30.0" } +nullaway = { module = "com.uber.nullaway:nullaway", version = "0.14.2" } derive4j = { module = "org.derive4j:derive4j", version = "1.1.1" } derive4j-annotation = { module = "org.derive4j:derive4j-annotation", version = "1.1.1" } functionaljava = { module = "org.functionaljava:functionaljava", version = "5.0" } diff --git a/open-java-format-benchmarks/build.gradle b/open-java-format-benchmarks/build.gradle index 1f02e66ff..72ac5452f 100644 --- a/open-java-format-benchmarks/build.gradle +++ b/open-java-format-benchmarks/build.gradle @@ -14,6 +14,7 @@ dependencies { jmhImplementation libs.junit.jupiter jmhImplementation libs.jmh.core jmhImplementation libs.jmh.generator.annprocess + formatterNativeJars project(':open-java-format') formatterNativeImage(project(':open-java-format-native')) { attributes { diff --git a/open-java-format-idea-plugin/build.gradle b/open-java-format-idea-plugin/build.gradle index 3e5e4cb0e..1fdba9e40 100644 --- a/open-java-format-idea-plugin/build.gradle +++ b/open-java-format-idea-plugin/build.gradle @@ -34,6 +34,13 @@ buildscript { apply plugin: 'java' apply plugin: 'org.jetbrains.intellij.platform' +// The IntelliJ Platform plugin defaults javac to --release, which javac refuses alongside the +// --add-exports of jdk.compiler that build.gradle passes to every module. The Java 21 toolchain +// already fixes what this code compiles against. +tasks.withType(JavaCompile).configureEach { + options.release.unsetConvention() +} + repositories { mavenCentral() intellijPlatform { diff --git a/open-java-format-jdk-bootstrap/build.gradle b/open-java-format-jdk-bootstrap/build.gradle index 711b3852c..e19bff8d8 100644 --- a/open-java-format-jdk-bootstrap/build.gradle +++ b/open-java-format-jdk-bootstrap/build.gradle @@ -1,5 +1,3 @@ -import me.champeau.jmh.JMHTask - apply plugin: 'java-library' apply plugin: 'open-java-format.publishing-conventions' @@ -16,11 +14,11 @@ dependencies { compileOnly variantOf(libs.immutables.value) { classifier('annotations') } implementation libs.jackson.databind - // So that we have pjf on our test classpath testImplementation project(':open-java-format') testImplementation libs.junit.jupiter testImplementation libs.assertj testImplementation libs.jackson.databind + formatterNativeImage(project(':open-java-format-native')) { attributes { attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements, 'nativeImage')) @@ -28,6 +26,11 @@ dependencies { } } +// Immutables' processor keeps Gradle's incremental compilation working only when asked to. +tasks.named('compileJava', JavaCompile) { + options.compilerArgs.add('-Aimmutables.gradle.incremental') +} + tasks.named('test', Test.class) { inputs.files(configurations.named('formatterNativeImage')) environment.put('NATIVE_IMAGE_CLASSPATH', configurations.formatterNativeImage.asPath) diff --git a/open-java-format-spi/build.gradle b/open-java-format-spi/build.gradle index 45dcd60dc..2eaa707a8 100644 --- a/open-java-format-spi/build.gradle +++ b/open-java-format-spi/build.gradle @@ -13,10 +13,6 @@ dependencies { testImplementation libs.jackson.databind } -javaVersion { - target = 21 -} - publishing { publications { maven(MavenPublication) { diff --git a/open-java-format/build.gradle b/open-java-format/build.gradle index d78260236..2f07d2c6d 100644 --- a/open-java-format/build.gradle +++ b/open-java-format/build.gradle @@ -8,6 +8,7 @@ description = 'A modern, lambda-friendly, 120-character Java formatter' dependencies { api project(':open-java-format-spi') api libs.guava + implementation libs.functionaljava implementation libs.jackson.core implementation libs.jackson.databind @@ -67,9 +68,9 @@ tasks.register('allJar', Jar) { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } -// false positives due to org.junit.runners.* in the test cases -tasks.named("checkJUnitDependencies") { - enabled = false +// Immutables' processor keeps Gradle's incremental compilation working only when asked to. +tasks.named('compileJava', JavaCompile) { + options.compilerArgs.add('-Aimmutables.gradle.incremental') } tasks.named("test") { @@ -78,11 +79,7 @@ tasks.named("test") { systemProperty 'junit.jupiter.execution.parallel.mode.default', 'concurrent' // FormatterVersionTest fails when the tests run on another JDK than the one asked for, so a CI leg // cannot pass on the wrong JDK and skip the tests that need a newer parser. - systemProperty 'expectedJavaVersion', rootProject.ext.javaRuntime -} - -javaVersion { - target = 21 + systemProperty 'expectedJavaVersion', javaRuntime } publishing { From 5cbf8ec91da48604208fd701e10f2b41509968ec Mon Sep 17 00:00:00 2001 From: Alex Abashev Date: Fri, 2 Oct 2026 00:22:01 +0300 Subject: [PATCH 2/9] Remove baseline's IDE templates .baseline/ held what palantir's baseline-idea and baseline-eclipse plugins copied into IDE settings: copyright notices, Eclipse JDT preferences with their Checkstyle hookup, and the IntelliJ code style. Neither plugin is applied any more and nothing else reads these files; Checkstyle's configuration already lives in config/checkstyle. --- .../copyright/000_google-apache-2.0-2.txt | 11 - .../copyright/000_google-apache-2.0-3.txt | 13 - .../copyright/000_google-apache-2.0-4.txt | 11 - .../copyright/000_google-apache-2.0-5.txt | 13 - .baseline/copyright/000_google-apache-2.0.txt | 13 - .baseline/copyright/001_apache-2.0.txt | 13 - .baseline/eclipse/dynamic/dotfile.checkstyle | 23 - .baseline/eclipse/org.eclipse.jdt.core.prefs | 313 ------------ .../dotfile.settings/org.eclipse.jdt.ui.prefs | 66 --- .../idea/intellij-java-palantir-style.xml | 480 ------------------ 10 files changed, 956 deletions(-) delete mode 100644 .baseline/copyright/000_google-apache-2.0-2.txt delete mode 100644 .baseline/copyright/000_google-apache-2.0-3.txt delete mode 100644 .baseline/copyright/000_google-apache-2.0-4.txt delete mode 100644 .baseline/copyright/000_google-apache-2.0-5.txt delete mode 100644 .baseline/copyright/000_google-apache-2.0.txt delete mode 100644 .baseline/copyright/001_apache-2.0.txt delete mode 100644 .baseline/eclipse/dynamic/dotfile.checkstyle delete mode 100644 .baseline/eclipse/org.eclipse.jdt.core.prefs delete mode 100644 .baseline/eclipse/static/dotfile.settings/org.eclipse.jdt.ui.prefs delete mode 100644 .baseline/idea/intellij-java-palantir-style.xml diff --git a/.baseline/copyright/000_google-apache-2.0-2.txt b/.baseline/copyright/000_google-apache-2.0-2.txt deleted file mode 100644 index 6f753ea87..000000000 --- a/.baseline/copyright/000_google-apache-2.0-2.txt +++ /dev/null @@ -1,11 +0,0 @@ -Copyright ${today.year} Google Inc. - -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 - - http://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. diff --git a/.baseline/copyright/000_google-apache-2.0-3.txt b/.baseline/copyright/000_google-apache-2.0-3.txt deleted file mode 100644 index f92110721..000000000 --- a/.baseline/copyright/000_google-apache-2.0-3.txt +++ /dev/null @@ -1,13 +0,0 @@ -Copyright ${today.year} Google Inc. All rights reserved. - -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 - - http://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. diff --git a/.baseline/copyright/000_google-apache-2.0-4.txt b/.baseline/copyright/000_google-apache-2.0-4.txt deleted file mode 100644 index d2d98c8d2..000000000 --- a/.baseline/copyright/000_google-apache-2.0-4.txt +++ /dev/null @@ -1,11 +0,0 @@ -Copyright ${today.year} Google Inc. All rights reserved. - -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 - - http://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. diff --git a/.baseline/copyright/000_google-apache-2.0-5.txt b/.baseline/copyright/000_google-apache-2.0-5.txt deleted file mode 100644 index 02ec1e9fd..000000000 --- a/.baseline/copyright/000_google-apache-2.0-5.txt +++ /dev/null @@ -1,13 +0,0 @@ -Copyright ${today.year} Google Inc. - -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 - - http://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. diff --git a/.baseline/copyright/000_google-apache-2.0.txt b/.baseline/copyright/000_google-apache-2.0.txt deleted file mode 100644 index f452e2245..000000000 --- a/.baseline/copyright/000_google-apache-2.0.txt +++ /dev/null @@ -1,13 +0,0 @@ -Copyright ${today.year} Google Inc. All Rights Reserved. - -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 - - http://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. diff --git a/.baseline/copyright/001_apache-2.0.txt b/.baseline/copyright/001_apache-2.0.txt deleted file mode 100644 index 54d4a0312..000000000 --- a/.baseline/copyright/001_apache-2.0.txt +++ /dev/null @@ -1,13 +0,0 @@ -(c) Copyright ${today.year} Palantir Technologies Inc. All rights reserved. - -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 - - http://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. diff --git a/.baseline/eclipse/dynamic/dotfile.checkstyle b/.baseline/eclipse/dynamic/dotfile.checkstyle deleted file mode 100644 index c176af2f3..000000000 --- a/.baseline/eclipse/dynamic/dotfile.checkstyle +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.baseline/eclipse/org.eclipse.jdt.core.prefs b/.baseline/eclipse/org.eclipse.jdt.core.prefs deleted file mode 100644 index fc7a7ddf5..000000000 --- a/.baseline/eclipse/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,313 +0,0 @@ -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=javax.annotation.Nonnull -org.eclipse.jdt.core.compiler.annotation.nullable=javax.annotation.CheckForNull -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=${javaTargetVersion} -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=${javaTargetVersion} -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore -org.eclipse.jdt.core.compiler.processAnnotations=enabled -org.eclipse.jdt.core.compiler.source=${javaSourceVersion} -org.eclipse.jdt.core.formatter.align_type_members_on_columns=false -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=32 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=120 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=false -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=false -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=120 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=false -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true diff --git a/.baseline/eclipse/static/dotfile.settings/org.eclipse.jdt.ui.prefs b/.baseline/eclipse/static/dotfile.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index cd9ac9c75..000000000 --- a/.baseline/eclipse/static/dotfile.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,66 +0,0 @@ -eclipse.preferences.version=1 -editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true -formatter_profile=_Baseline Profile -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=false -org.eclipse.jdt.ui.ignorelowercasenames=true -org.eclipse.jdt.ui.importorder=; -org.eclipse.jdt.ui.javadoc=false -org.eclipse.jdt.ui.keywordthis=false -org.eclipse.jdt.ui.ondemandthreshold=999 -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.staticondemandthreshold=999 -org.eclipse.jdt.ui.text.custom_code_templates=