diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index d9899643083..82f3152f80a 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -49,7 +49,7 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: allJavadoc - arguments: --scan allJavadoc + arguments: --scan combined-javadoc:allJavadoc gradle-version: wrapper - name: Upload Javadocs diff --git a/Base/build.gradle b/Base/build.gradle index 209bcef0529..4b5452d47f9 100644 --- a/Base/build.gradle +++ b/Base/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + dependencies { compile depTrove3, depAnnotations, depCommonsCompress diff --git a/Base/gradle.properties b/Base/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/Base/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/BenchmarkSupport/BenchmarkSupport.gradle b/BenchmarkSupport/BenchmarkSupport.gradle index 136901dd984..1859dcceaaa 100644 --- a/BenchmarkSupport/BenchmarkSupport.gradle +++ b/BenchmarkSupport/BenchmarkSupport.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + configurations { compile.extendsFrom dhBenchmarkSupport diff --git a/BenchmarkSupport/gradle.properties b/BenchmarkSupport/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/BenchmarkSupport/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/ClientSupport/ClientSupport.gradle b/ClientSupport/ClientSupport.gradle index e3f04be7717..7f92f5b2e0d 100644 --- a/ClientSupport/ClientSupport.gradle +++ b/ClientSupport/ClientSupport.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + configurations { compile.extendsFrom dhConsole } diff --git a/ClientSupport/gradle.properties b/ClientSupport/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/ClientSupport/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/CompilerTools/CompilerTools.gradle b/CompilerTools/CompilerTools.gradle index 16179b80774..468e44d2005 100644 --- a/CompilerTools/CompilerTools.gradle +++ b/CompilerTools/CompilerTools.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + configurations { compile.extendsFrom fishConfig, commonsLang3 testCompile.extendsFrom fishIoTest diff --git a/CompilerTools/gradle.properties b/CompilerTools/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/CompilerTools/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/Configuration/build.gradle b/Configuration/build.gradle index 85046401350..99400e5e2d1 100644 --- a/Configuration/build.gradle +++ b/Configuration/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + dependencies { compile project(':Base'), project(':DataStructures'), project(':IO'), project(':log-factory'), depCommonsLang3 testCompile fileTree(dir: "${rootDir}/test-libs", include: ['*.jar']) diff --git a/Configuration/gradle.properties b/Configuration/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/Configuration/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/Container/build.gradle b/Container/build.gradle index 0c994c69e22..ac92eab0b7e 100644 --- a/Container/build.gradle +++ b/Container/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/Container/gradle.properties b/Container/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/Container/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/DHProcess/build.gradle b/DHProcess/build.gradle index 3ab90c23fb5..04cbc962836 100644 --- a/DHProcess/build.gradle +++ b/DHProcess/build.gradle @@ -1,5 +1,9 @@ import io.deephaven.tools.Tools +plugins { + id 'io.deephaven.project.register' +} + dependencies { annotationProcessor 'org.immutables:value:2.8.1' compileOnly 'org.immutables:value-annotations:2.8.1' diff --git a/DHProcess/gradle.properties b/DHProcess/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/DHProcess/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/DataStructures/build.gradle b/DataStructures/build.gradle index 53505b6bdb2..bfbf70a3309 100644 --- a/DataStructures/build.gradle +++ b/DataStructures/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + dependencies { compile project(':Base') } diff --git a/DataStructures/gradle.properties b/DataStructures/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/DataStructures/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/FishUtil/build.gradle b/FishUtil/build.gradle index cf334ae6e52..230d8ec1800 100644 --- a/FishUtil/build.gradle +++ b/FishUtil/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + dependencies { compile project(':Base'), project(':DataStructures'), project(':IO'), project(':Configuration'), project(':log-factory') compile depCommonsEmail, depCommonsNet diff --git a/FishUtil/gradle.properties b/FishUtil/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/FishUtil/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/Generators/Generators.gradle b/Generators/Generators.gradle index 21edf917236..1ade75a1ef6 100644 --- a/Generators/Generators.gradle +++ b/Generators/Generators.gradle @@ -1,5 +1,6 @@ plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } evaluationDependsOn Docker.registryProject('python') @@ -7,6 +8,7 @@ evaluationDependsOn Docker.registryProject('python') configurations { compile.extendsFrom fishConfig, jdom testCompile.extendsFrom fishBaseTest + combinedJavadoc } dependencies { @@ -28,6 +30,8 @@ dependencies { testRuntime project(path: ':configs'), project(path: ':test-configs') + + combinedJavadoc project(path: ':combined-javadoc', targetConfiguration: 'combinedJavadoc') } def workspace = "$rootDir/tmp/workspace" @@ -173,9 +177,7 @@ TaskProvider generatePyDoc = Docker.registerDockerTask(project, "generateP into 'out' } // Depend on generated javadoc so we can generate JSON from it - dependsOn ':allJavadoc' - from("$devRoot/build/docs/javadoc") { - // input for javadocExtraction.py + from(configurations.combinedJavadoc) { into 'javadoc' } } @@ -312,7 +314,7 @@ tasks.register 'generateAll', { t.description = 'Runs all code generators' } -check.dependsOn groovyStaticImportGeneratorAssert, +project.tasks.getByName('quick').dependsOn groovyStaticImportGeneratorAssert, generateAxesPlotMethodsAssert, generateMultiSeriesAssert, generateFigureImmutableAssert, diff --git a/Generators/gradle.properties b/Generators/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/Generators/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/IO/build.gradle b/IO/build.gradle index 6c0658856bf..dd8e9564eba 100644 --- a/IO/build.gradle +++ b/IO/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + dependencies { compile project(':Base'), project(':SevenZip'), depCommonsCodec testCompile project(path: ':Base', configuration: 'tests') diff --git a/IO/gradle.properties b/IO/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/IO/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/Integrations/build.gradle b/Integrations/build.gradle index 11481fc033a..7401ee03e72 100644 --- a/Integrations/build.gradle +++ b/Integrations/build.gradle @@ -1,6 +1,8 @@ plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' id 'com.avast.gradle.docker-compose' + id 'idea' } evaluationDependsOn ':docker-runtime-base' @@ -47,7 +49,7 @@ sourceSets { // we do want IntelliJ to treat them as resources in IDE. idea { module { - resourceDirs += [file('r'), file('python')] + resourceDirs += [file('r'), file('python')] testResourceDirs += [file('python/test')] } } diff --git a/Integrations/gradle.properties b/Integrations/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/Integrations/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/Integrations/python/deephaven/start_jvm.py b/Integrations/python/deephaven/start_jvm.py index ff596c3de44..5beb84cb108 100644 --- a/Integrations/python/deephaven/start_jvm.py +++ b/Integrations/python/deephaven/start_jvm.py @@ -148,8 +148,8 @@ def start_jvm(devroot=None, java_version_file=open("/usr/deephaven/latest/etc/JAVA_VERSION", "r") java_version=java_version_file.read() java_version_file.close() - elif path.exists("{}/projects/configs/build/resources/main/JAVA_VERSION".format(devroot)): - java_version_file=open("{}/projects/configs/build/resources/main/JAVA_VERSION".format(devroot), "r") + elif path.exists("{}/props/configs/build/resources/main/JAVA_VERSION".format(devroot)): + java_version_file=open("{}/props/configs/build/resources/main/JAVA_VERSION".format(devroot), "r") java_version=java_version_file.read() java_version_file.close() elif os.environ.get('JAVA_VERSION') is not None: diff --git a/ModelFarm/ModelFarm.gradle b/ModelFarm/ModelFarm.gradle index 59c024ac3e7..de26ae8bd16 100644 --- a/ModelFarm/ModelFarm.gradle +++ b/ModelFarm/ModelFarm.gradle @@ -2,6 +2,10 @@ * Copyright (c) 2016-2021 Deephaven Data Labs and Patent Pending */ +plugins { + id 'io.deephaven.project.register' +} + configurations { testCompile.extendsFrom fishBaseTest } diff --git a/ModelFarm/gradle.properties b/ModelFarm/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/ModelFarm/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/Net/build.gradle b/Net/build.gradle index 85feff19480..800e73f2d9f 100644 --- a/Net/build.gradle +++ b/Net/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + dependencies { compile project(':Base'), project(':DataStructures'), project(':IO'), project(':Configuration'), project(':FishUtil') diff --git a/Net/gradle.properties b/Net/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/Net/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/Numerics/Numerics.gradle b/Numerics/Numerics.gradle index a25a105a421..8282a67aadf 100644 --- a/Numerics/Numerics.gradle +++ b/Numerics/Numerics.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + configurations { compile.extendsFrom dhNumerics testCompile.extendsFrom fishBaseTest diff --git a/Numerics/gradle.properties b/Numerics/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/Numerics/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/ParquetHadoop/build.gradle b/ParquetHadoop/build.gradle index 7743d892e4a..0165544e26a 100644 --- a/ParquetHadoop/build.gradle +++ b/ParquetHadoop/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } sourceSets { diff --git a/ParquetHadoop/gradle.properties b/ParquetHadoop/gradle.properties new file mode 100644 index 00000000000..1c0cc01b600 --- /dev/null +++ b/ParquetHadoop/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_EXTERNAL diff --git a/Plot/Plot.gradle b/Plot/Plot.gradle index d1bfbc6923f..28a8d58c071 100644 --- a/Plot/Plot.gradle +++ b/Plot/Plot.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + configurations { compile.extendsFrom dhPlot diff --git a/Plot/gradle.properties b/Plot/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/Plot/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/SevenZip/build.gradle b/SevenZip/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/SevenZip/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/SevenZip/gradle.properties b/SevenZip/gradle.properties new file mode 100644 index 00000000000..1c0cc01b600 --- /dev/null +++ b/SevenZip/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_EXTERNAL diff --git a/Stats/build.gradle b/Stats/build.gradle index a398b47d041..c1bb65dc060 100644 --- a/Stats/build.gradle +++ b/Stats/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + dependencies { compile project(':Base'), project(':DataStructures'), project(':IO'), project(':Configuration'), project(':FishUtil'), project(':Net') diff --git a/Stats/gradle.properties b/Stats/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/Stats/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/TableLogger/TableLogger.gradle b/TableLogger/TableLogger.gradle index 828b14e3ade..219cc9914ae 100644 --- a/TableLogger/TableLogger.gradle +++ b/TableLogger/TableLogger.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + configurations { compile.extendsFrom fishUtil, fishData testCompile.extendsFrom fishDataTest diff --git a/TableLogger/gradle.properties b/TableLogger/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/TableLogger/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/Util/Util.gradle b/Util/Util.gradle index 3a0d5d9d966..39752c62f02 100644 --- a/Util/Util.gradle +++ b/Util/Util.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + configurations { compile.extendsFrom configurations.dhUtil, commonsLang3 testCompile.extendsFrom fishBaseTest diff --git a/Util/gradle.properties b/Util/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/Util/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/Util/util-immutables/build.gradle b/Util/util-immutables/build.gradle index d5fb308bcb0..a4a7b87840f 100644 --- a/Util/util-immutables/build.gradle +++ b/Util/util-immutables/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/Util/util-immutables/gradle.properties b/Util/util-immutables/gradle.properties index 1cbb7aaf493..4d202c2484f 100644 --- a/Util/util-immutables/gradle.properties +++ b/Util/util-immutables/gradle.properties @@ -1 +1,2 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL languageLevel=8 \ No newline at end of file diff --git a/application-mode/build.gradle b/application-mode/build.gradle index 6baf0265883..775eb9c4e09 100644 --- a/application-mode/build.gradle +++ b/application-mode/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/application-mode/gradle.properties b/application-mode/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/application-mode/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/build.gradle b/build.gradle index aae9c130f9d..5655763f924 100644 --- a/build.gradle +++ b/build.gradle @@ -1,29 +1,10 @@ -// buildscript must (should) go first! -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath "gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.0" - } - -} - plugins { - id "com.github.hierynomus.license" version "0.14.0" apply false - id "com.google.protobuf" version "0.8.10" apply false - id 'com.diffplug.spotless' version '5.14.2' apply false - - id 'io.deephaven.java-conventions' apply false - id 'io.deephaven.java-publishing-conventions' apply false + id 'base' + id 'io.deephaven.project.register' } -import io.deephaven.tools.Java -import io.deephaven.tools.License import org.gradle.internal.jvm.Jvm -import java.time.LocalDateTime -import java.time.format.DateTimeFormatter import java.util.concurrent.TimeUnit def isCi = System.getenv().getOrDefault("CI", "false") == "true" @@ -38,288 +19,6 @@ if (isCi) { } } -allprojects { - repositories { - mavenCentral() - maven { - url 'https://jitpack.io' - content { - includeGroup 'com.github.rdblue' - } - } - maven { - url 'https://maven.twttr.com' - content { - includeGroup 'com.hadoop.gplcompression' - } - } - maven { - url 'https://packages.confluent.io/maven' - content { - includeGroup 'io.confluent' - includeGroup 'org.apache.kafka' - } - } - } -} - -apply plugin: 'base' -apply plugin: 'idea' - -idea { - project { - //if you want to set specific jdk and language level - jdkName = '1.8' - languageLevel = '1.8' - - //you can configure the VCS used by the project - vcs = 'Git' - - } - module { - downloadJavadoc = true - downloadSources = true - contentRoot = file("$rootDir") - excludeDirs = files( - 'lib/thirdparty', 'lib/external', // jars we copy around - 'py/venvs', 'py/installs', // generated python installs / venvs - 'web/.cache', // generated web files - 'build' - ) as Set - } -} - -project.version = '0.9.0' -ext.globalVersion = project.version - -Set modsAreBasic = subprojects.findAll {it.name in [ - 'deephaven-wheel', - 'deephaven2-wheel', - 'envoy', - 'grpc-java', - 'grpc-proxy', - 'web', - 'web-client-ui', - 'pyclient', - 'sphinx', - 'docker-java-and-python', - 'docker-runtime-base', - 'docker-server', - 'docker-server-slim', - 'docker-web', - 'raw-js-openapi', -] } - -Set modsAreBin = subprojects.findAll {it.name in ['bin', 'configs', 'test-configs'] } - -Set modsAreExternal = subprojects.findAll {it.name in ['ParquetHadoop', 'deephaven-jpy'] } - -def registryLocation = rootProject.file('docker/registry') -Set modsAreDockerRegistry = subprojects.findAll { it.projectDir.parentFile == registryLocation } - -Set modsRegular = subprojects - modsAreBasic - modsAreBin - modsAreDockerRegistry - -Set modsJava = subprojects - modsAreBasic - modsAreDockerRegistry - -Set modsSpotless = subprojects - modsAreExternal - modsAreBasic - modsAreDockerRegistry - -allprojects { - - apply plugin: 'jacoco' - apply plugin: 'idea' - apply plugin: 'license' - - jacoco { - toolVersion = '0.8.7' - } - - license { - header rootProject.file('license-header') - include "**/*.java" - strictCheck true - useDefaultMappings true - ignoreFailures true - } - - // we apply the classpaths build to share it across all modules. - // this is technically excessive, as non-java modules should not care... - apply from: "$rootDir/classpaths.gradle" - configurations.all({ c -> - // Make dynamic versions illegal. - c.dependencies.all({ - Dependency dep -> - if (dep.version && dep.version.endsWith('+')) { - throw new GradleException("Dynamic versions not allowed ($dep found in $path)") - } - }) - c.resolutionStrategy { - // by default, we don't use any changing modules. - // however, if a developer is working on something where jars - // are published to a local filesystem (like mavenLocal()), - // they can use `api group: 'com.foo', name: 'blah', version: '1', changing: true`, - // and gradle will happily recheck the filesystem for changes. - cacheChangingModulesFor 0, 'seconds' - } - if (includeFish) { - c.resolutionStrategy.preferProjectModules() - } - }) - -} - -allprojects*.tasks*.withType(JavaCompile)*.configureEach { - JavaCompile javac -> - javac.options.forkOptions.memoryMaximumSize = "2G" - javac.options.fork = true - javac.options.compilerArgs << '-parameters' -} - -subprojects { - Project p -> - p.group = 'io.deephaven' - p.version = globalVersion -} - -configure(modsJava) { - Project p -> - p.plugins.apply('io.deephaven.java-conventions') - def license = License.createFrom(p) - license.register() - p.ext.license = license -} - -configure(modsAreDockerRegistry) { - Project p -> - p.plugins.apply('io.deephaven.docker-registry-conventions') -} - -// setup standard sourceSets for non-bin modules -configure modsRegular, -{ Project p -> - - p.tasks.jacocoTestReport { - reports { - xml.enabled true - csv.enabled true - html.enabled true -// html.destination "${buildDir}/jacocoHtml" - } - } - - p.tasks.create 'sourceJar', Jar, { - Jar j -> - j.classifier = 'sources' - j.from Java.sourceSet(p).allJava - } - - p.tasks.create 'javadocJar', Jar, { - Jar j -> - j.dependsOn p.tasks.javadoc - j.classifier = 'javadoc' - j.from p.tasks.withType(Javadoc)*.destinationDir - } - - p.tasks.create('listCompileDeps').doLast { - println "$p.path compile dependencies:" - p.configurations.compile.each { File file -> println file.name } - } - - p.artifacts { - archives p.tasks.sourceJar -// archives p.tasks.javadocJar - } - - p.tasks.create 'testJar', Jar, { - Jar jar -> - jar.from Java.sourceSet(p, 'test').output - jar.classifier = 'test' - } - - artifacts { - testOutput p.tasks.testJar - archives p.tasks.testJar - } - - p.tasks.withType(Test).all { Test t -> t.with { - t.defaultCharacterEncoding = 'UTF-8' - - onlyIf { TestTools.shouldRunTests(project) } - - useJUnit() - - new File("$rootDir/tmp/workspace".toString()).mkdirs() - new File("$rootDir/tmp/logs".toString()).mkdirs() - - // pass -PforceTest=true to run test again after they've passed once, - // and input source has not changed (i.e. invalidate caching) - if (findProperty('forceTest') == 'true') { - // not gonna stay uptodate very well like this: :-) - inputs.property("forceTest", UUID.randomUUID().toString()) - } - - enableAssertions = true - if (!maxHeapSize) { - maxHeapSize = '3g' - } - - if (!maxParallelForks) { - maxParallelForks = 4 - } - - if (!forkEvery) { - // NB: This comment may be outdated: - // throw away jvms after 32 tests have run on them. - // this is sadly needed as some of the engine tests seem to have a leak; - // tests which can pass locally in IDE on 2g can't survive in CI w/ 3g - forkEvery = 32 - } - - if (findProperty('shortTests') == 'true') { - systemProperty 'TstUtils.shortTests', 'true' - } - systemProperty 'Configuration.rootFile', 'dh-tests.prop' - systemProperty 'devroot', "$rootDir" - systemProperty 'workspace', "$rootDir/tmp/workspace" - systemProperty 'configuration.quiet', 'true' - systemProperty 'java.awt.headless', 'true' - - //testLogging { - //showStandardStreams = true - //} - - if (findProperty('debugCITests') == 'true') { - Map times = [:] - // TODO IDO-605: consider discovering the pid of the test executor, so we can also monitor / print RAM usage, - // in order to detect which tests are leaking RAM - t.beforeTest { - TestDescriptor d -> - String key = "$t.path:$d.className.$d.name".toString() - times[key] = System.currentTimeMillis() - println "Starting $key" - } - t.afterTest { - TestDescriptor d -> - String key = "$t.path:$d.className.$d.name".toString() - long diff = System.currentTimeMillis() - times[key] - println "$diff ms spent on $key" - } - } - - exclude 'io/deephaven/**/NoTest*' - - finalizedBy jacocoTestReport - } } -} - -configure(modsSpotless) { Project p -> - p.apply plugin: 'com.diffplug.spotless' - p.spotless { - java { - eclipse().configFile("${rootDir}/style/eclipse-java-google-style.xml") - } - } -} - (tasks.clean as Delete).delete( // Only the build rpm task outputs to the $rootDir/target directory. Add it to the clean task. 'target', @@ -337,109 +36,6 @@ clean.doLast { // TODO: find the tests polluting root directory and fix them } -def configureBin = { - Project b -> - // our "bin" projects are a little special; the resources that go into the jar - // are in the same directory as the project root, which is not supported by - // IntelliJ when using Separate Modules Per SourceSet option. - // To workaround this, we create arbitrary directories, $rootDir/projects/bin, - // which act as the project root, and then we hook up the existing source in $rootDir/bin - // as the sourceset directory. This works correctly in both IntelliJ and Gradle CLI. - - // The projectDir is $rootDir/projects/$b.name, so we avoid using any relative files. - String resources = "$rootDir/$b.name".toString() - // Set the sourceSet resources directory. - b.sourceSets.main.resources.srcDirs = [resources] - b.sourceSets.main.java.srcDirs = [] // no java source for these modules. - // This is technically superfluous, but we'll leave it just in case - (b.tasks.jar as Jar).exclude 'build', 'out', 'build.gradle' - - // This is a one-time cleanup; it works better than trying to tell IntelliJ / gradle to ignore the files. - // We'll leave it in case developers switch to release branches then back to develop. - // We really _shouldn't_ do file deletion during configuration phase, but this should be very fast once already clean. - files("$resources/build", "$resources/out").files*.deleteDir() - -} -modsAreBin.each(configureBin) - -// Note: We are applying the java conventions to the root project so that allJavadoc can pick up the -// correct toolchain. It may make sense to isolate allJavadoc in the future to its own module. -apply plugin: 'io.deephaven.java-conventions' -String javaDocOverviewLocation = 'build/docs/overview.html' -tasks.register 'allJavadoc', Javadoc, { - Javadoc jdoc -> - // TODO(deephaven-core#1513): Remove non-LTS JDK 15 as part of javadocs process - jdoc.javadocTool = javaToolchains.javadocToolFor{it -> - // Javadoc version >=11 is needed for search - // Javadoc version >12 is needed to avoid javadoc bugs in linking with modules - languageVersion = JavaLanguageVersion.of(15) - } - jdoc.inputs.file javaDocOverviewLocation - jdoc.options.encoding = 'UTF-8' - jdoc.options.tags = ['apiNote', 'implNote'] - // include a note on the front Javadoc page telling us what version the Javadoc was generated from. - jdoc.options.overview = new File("$rootDir", javaDocOverviewLocation) - // Link to javadoc 11 API, because it is closer to java 8, which we actually use to build and run - jdoc.options.links = ['https://docs.oracle.com/en/java/javase/11/docs/api/'] - jdoc.options.addStringOption('Xdoclint:none', '-quiet') - - //add to as javadoc gets completed - String [] exportedProjects = [ - ':DataStructures', - ':engine-chunk', - ':engine-vector', - ':engine-time', - ':engine-stringset', - ':engine-function', - ':engine-tuple', - ':engine-updategraph', - ':engine-rowset', - ':engine-api', - ':engine-base', - ':engine-tuplesource', - ':engine-table', - ':extensions-csv', - ':extensions-kafka', - ':extensions-parquet-table', - ':plugin', - ':plugin-figure', - ':Util', - ':ModelFarm', - ':Numerics', - ':Plot', - ':server', - ':qst', - ':table-api', - ':uri', - ':java-client-session', - ':java-client-session-dagger', - ':java-client-flight', - ':java-client-flight-dagger', - ':java-client-barrage', - ':java-client-barrage-dagger', - ':proto:proto-backplane-grpc', - ':proto:proto-backplane-grpc-flight' - ] - jdoc.source = exportedProjects.collect { Java.sourceSet(project(it)).allJava } - jdoc.classpath = files(exportedProjects.collect { project(it).sourceSets.main.compileClasspath }) - jdoc.destinationDir = file("${buildDir}/docs/javadoc") - jdoc.dependsOn(':writeJavadocVersion') -} - -def gitHash -gitHash = "${-> gitHash = 'git rev-list --max-count=1 HEAD'.execute([], rootDir).text.trim()}" -tasks.register 'writeJavadocVersion', { - Task t -> - t.description "Write $globalVersion to $javaDocOverviewLocation" - File versionFile = file(javaDocOverviewLocation) - t.inputs.property('globalVersion2', globalVersion) - t.inputs.property('gitHash', gitHash) - t.outputs.file(versionFile) - t.doLast { - versionFile.text = 'Deephaven Javadoc for ' + globalVersion + '\n\n' - } -} - project.tasks.register('outputVersion') {task -> def versionFile = project.layout.buildDirectory.file('version') task.inputs.property('version', project.version) @@ -449,17 +45,6 @@ project.tasks.register('outputVersion') {task -> } } -project(':test-configs') { - dependencies { - // For unit-tests that explicitly (or transitively) depend on Configuration.getInstance(), - // we want to make sure that they continue working without having to spin up an etcd backed - // store that just contains the same data as we have on the classpath - runtimeOnly project(':fishconfig-local') - } -} - -apply from: 'gradle/deephaven-jpy.gradle' - tasks.register('nightly') { it.group 'Deephaven lifecycle' it.description 'A lifecycle task that defines the nightly tasks to be run in CI, see .github/workflows/nighty-check-ci.yml' @@ -471,17 +56,6 @@ tasks.register('nightly') { } } -tasks.register('quick') { - it.group 'Deephaven lifecycle' - it.description 'A lifecycle task that defines quick tasks to be run in CI, see .github/workflows/quick-ci.yml' - it.dependsOn allprojects.collect { - allprojects.collect { it.tasks.matching { it.name == 'gwtCompile' } } +\ - allprojects.collect { it.tasks.matching { it.name == 'compileTestJava' } } +\ - allprojects.collect { it.tasks.matching { it.name == 'spotlessCheck' } } - } - it.dependsOn project(':Generators').tasks.findByName(LifecycleBasePlugin.CHECK_TASK_NAME) -} - tasks.register('prepareCompose') { it.group 'Deephaven lifecycle' it.description 'A lifecycle task that prepares prerequisites for local docker-compose builds' @@ -507,19 +81,6 @@ tasks.register('smoke') { it.dependsOn project(':Generators').tasks.findByName(LifecycleBasePlugin.CHECK_TASK_NAME) } -ext { - depAnnotations = 'com.intellij:annotations:5.1' - depAllocation = 'com.google.code.java-allocation-instrumenter:java-allocation-instrumenter:2.0' - depCommonsCodec = 'commons-codec:commons-codec:1.9' - depCommonsCompress = 'org.apache.commons:commons-compress:1.8' - depCommonsLang3 = 'org.apache.commons:commons-lang3:3.9' - depCommonsNet = 'commons-net:commons-net:3.2' - depCommonsEmail = 'org.apache.commons:commons-email:1.4' - depCommonsIo = 'commons-io:commons-io:2.5' - depJdom2 = 'org.jdom:jdom2:2.0.6' - depTrove3 = 'net.sf.trove4j:trove4j:3.0.3' -} - tasks.wrapper { Wrapper w -> w.gradleVersion = '6.2.2' diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 823dd219bcc..a1fc5bfcb31 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -1,6 +1,5 @@ plugins { id 'groovy' - id 'idea' id 'groovy-gradle-plugin' } @@ -10,13 +9,6 @@ java { } } -idea { - project { - jdkName = '1.8' - languageLevel = '1.8' - } -} - repositories { mavenCentral() maven { @@ -27,14 +19,24 @@ repositories { dependencies { compile('de.esoco.gwt:gwt-gradle-plugin:1.1.1') { exclude group: 'org.codehaus.groovy' + because('needed for GwtTools') } - compile 'com.bmuschko:gradle-docker-plugin:7.1.0' + compile('com.bmuschko:gradle-docker-plugin:7.1.0') { + because('needed by plugin com.bmuschko.docker-remote-api') + } - compile ('com.avast.gradle:gradle-docker-compose-plugin:0.14.9') + compile ('com.avast.gradle:gradle-docker-compose-plugin:0.14.9') { + because('needed by plugin com.avast.gradle.docker-compose') + } - compile('com.netflix.nebula:gradle-ospackage-plugin:8.3.0') + compile('com.diffplug.spotless:spotless-plugin-gradle:5.14.2') { + because('needed by plugin java-coding-conventions') + } - compile "gradle.plugin.com.jetbrains.python:gradle-python-envs:0.0.30" + // TODO(deephaven-core#1997): Remove license-gradle-plugin + compile('gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.0') { + because('needed by plugin java-header-conventions') + } } diff --git a/buildSrc/src/main/groovy/Classpaths.groovy b/buildSrc/src/main/groovy/Classpaths.groovy index c28c7e5eb71..553358944c2 100644 --- a/buildSrc/src/main/groovy/Classpaths.groovy +++ b/buildSrc/src/main/groovy/Classpaths.groovy @@ -218,6 +218,6 @@ class Classpaths { static void inheritGrpcPlatform(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { Configuration config = p.configurations.getByName(configName) - addDependency(config, p.getDependencies().platform(GRPC_GROUP + ":" + 'grpc-bom' + ":" + GRPC_VERSION)) + addDependency(config, p.getDependencies().platform(GRPC_GROUP + ":grpc-bom:" + GRPC_VERSION)) } } diff --git a/buildSrc/src/main/groovy/io.deephaven.common-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.common-conventions.gradle new file mode 100644 index 00000000000..c31981b8da8 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.common-conventions.gradle @@ -0,0 +1,11 @@ +plugins { + id 'base' + id 'io.deephaven.lifecycle-conventions' +} + +group = 'io.deephaven' +version = '0.10.0' + +if (!name.startsWith('deephaven-')) { + archivesBaseName = "deephaven-${name}" +} diff --git a/buildSrc/src/main/groovy/io.deephaven.default-description.gradle b/buildSrc/src/main/groovy/io.deephaven.default-description.gradle new file mode 100644 index 00000000000..2c384532ba1 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.default-description.gradle @@ -0,0 +1 @@ +description = "The '${name}' project" diff --git a/classpaths.gradle b/buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle similarity index 79% rename from classpaths.gradle rename to buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle index a90d72e5542..375b08b0290 100644 --- a/classpaths.gradle +++ b/buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle @@ -1,4 +1,21 @@ -apply plugin: 'base' +plugins { + id 'base' + id 'java' +} + +// TODO(deephaven-core#1162): Adopt java-platform to manage versions +ext { + depAnnotations = 'com.intellij:annotations:5.1' + depAllocation = 'com.google.code.java-allocation-instrumenter:java-allocation-instrumenter:2.0' + depCommonsCodec = 'commons-codec:commons-codec:1.9' + depCommonsCompress = 'org.apache.commons:commons-compress:1.8' + depCommonsLang3 = 'org.apache.commons:commons-lang3:3.9' + depCommonsNet = 'commons-net:commons-net:3.2' + depCommonsEmail = 'org.apache.commons:commons-email:1.4' + depCommonsIo = 'commons-io:commons-io:2.5' + depJdom2 = 'org.jdom:jdom2:2.0.6' + depTrove3 = 'net.sf.trove4j:trove4j:3.0.3' +} configurations { @@ -32,11 +49,6 @@ configurations { dhIntegrations.extendsFrom math3 } -// exported properties -ext { - includeFish = project.hasProperty("includeFish") && project.includeFish == 'true' -} - dependencies { // First, one-off configurations for stuff we need "here and there" diff --git a/buildSrc/src/main/groovy/io.deephaven.java-coding-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-coding-conventions.gradle new file mode 100644 index 00000000000..b3e6c9ff280 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.java-coding-conventions.gradle @@ -0,0 +1,11 @@ +plugins { + id 'com.diffplug.spotless' +} + +spotless { + java { + eclipse().configFile("${rootDir}/style/eclipse-java-google-style.xml") + } +} + +project.tasks.getByName('quick').dependsOn project.tasks.getByName('spotlessCheck') diff --git a/buildSrc/src/main/groovy/io.deephaven.java-common-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-common-conventions.gradle new file mode 100644 index 00000000000..d730240ee55 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.java-common-conventions.gradle @@ -0,0 +1,30 @@ +plugins { + id 'base' + id 'java' + id 'io.deephaven.java-repository-conventions' + id 'io.deephaven.java-classpath-conventions' + id 'io.deephaven.java-license-conventions' + id 'io.deephaven.java-header-conventions' + id 'io.deephaven.java-toolchain-conventions' + id 'io.deephaven.java-jar-conventions' +} + +project.tasks.getByName('quick').dependsOn project.tasks.withType(JavaCompile) + +configurations.all({ c -> + // Make dynamic versions illegal. + c.dependencies.all({ + Dependency dep -> + if (dep.version && dep.version.endsWith('+')) { + throw new GradleException("Dynamic versions not allowed ($dep found in $path)") + } + }) + c.resolutionStrategy { + cacheChangingModulesFor 0, 'seconds' + } +}) + +tasks.named(LifecycleBasePlugin.CLEAN_TASK_NAME) { + Delete d -> + d.delete('out') +} diff --git a/buildSrc/src/main/groovy/io.deephaven.java-header-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-header-conventions.gradle new file mode 100644 index 00000000000..1cff8a85e4d --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.java-header-conventions.gradle @@ -0,0 +1,12 @@ +// TODO(deephaven-core#1997): Remove license-gradle-plugin +plugins { + id 'license' +} + +license { + header rootProject.file('license-header') + include "**/*.java" + strictCheck true + useDefaultMappings true + ignoreFailures true +} diff --git a/buildSrc/src/main/groovy/io.deephaven.java-jacoco-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-jacoco-conventions.gradle new file mode 100644 index 00000000000..079faae51aa --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.java-jacoco-conventions.gradle @@ -0,0 +1,20 @@ +plugins { + id 'java' + id 'jacoco' +} + +jacoco { + toolVersion = '0.8.7' +} + +jacocoTestReport { + reports { + xml.enabled true + csv.enabled true + html.enabled true + } +} + +project.tasks.withType(Test).all { Test t -> + finalizedBy jacocoTestReport +} diff --git a/buildSrc/src/main/groovy/io.deephaven.java-jar-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-jar-conventions.gradle new file mode 100644 index 00000000000..f47bbdf7f76 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.java-jar-conventions.gradle @@ -0,0 +1,18 @@ +plugins { + id 'java' +} + +jar { + manifest { + attributes 'Implementation-Title': 'Deephaven', + 'Implementation-Version': project.version, + 'Provider': 'gradle' + } +} + +tasks.withType(Jar).configureEach { + Jar jar -> + // Ensure that the JARs are binary stable regardless of when they were built + jar.preserveFileTimestamps = false + jar.reproducibleFileOrder = true +} diff --git a/buildSrc/src/main/groovy/io.deephaven.java-license-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-license-conventions.gradle new file mode 100644 index 00000000000..edb95dde13c --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.java-license-conventions.gradle @@ -0,0 +1,7 @@ +plugins { + id 'java' +} + +def toolsLicense = io.deephaven.tools.License.createFrom(project) +toolsLicense.register() +project.ext.license = toolsLicense diff --git a/buildSrc/src/main/groovy/io.deephaven.java-publishing-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-publishing-conventions.gradle index ae72588f409..7fe1985df4f 100644 --- a/buildSrc/src/main/groovy/io.deephaven.java-publishing-conventions.gradle +++ b/buildSrc/src/main/groovy/io.deephaven.java-publishing-conventions.gradle @@ -9,6 +9,14 @@ java { withSourcesJar() } +tasks.withType(Javadoc) { + options.addStringOption('Xdoclint:none', '-quiet') + options.addStringOption('Xmaxwarns', '1') + + // https://github.com/gradle/gradle/issues/19869 + options.addStringOption('sourcepath', sourceSets.main.allJava.getSourceDirectories().getAsPath()) +} + def developerId = 'deephaven' def developerName = 'Deephaven Developers' def developerEmail = 'developers@deephaven.io' @@ -31,10 +39,7 @@ publishing { publications { mavenJava(MavenPublication) { from components.java - artifactId = archivesBaseName pom { - name = archivesBaseName - description = project.description url = projectUrl organization { name = orgName @@ -103,4 +108,28 @@ def assertIsRelease = tasks.register('assertIsRelease') { } // This is an extra safety checks to make sure we don't publish incorrectly -publishMavenJavaPublicationToOssrhRepository.dependsOn(assertIsRelease) \ No newline at end of file +publishMavenJavaPublicationToOssrhRepository.dependsOn(assertIsRelease) + +afterEvaluate { + // https://central.sonatype.org/publish/requirements/ + if (project.description == null) { + throw new IllegalStateException("Project '${project.name}' is missing a description, which is required for publishing to maven central") + } + + // The common-conventions plugin should take care of this, but we'll double-check here + if (!project.archivesBaseName.contains('deephaven')) { + throw new IllegalStateException("Project '${project.name}' archiveBaseName '${project.archivesBaseName}' does not contain 'deephaven'") + } + + publishing { + publications { + mavenJava(MavenPublication) { + artifactId = archivesBaseName + pom { + name = archivesBaseName + description = project.description + } + } + } + } +} diff --git a/buildSrc/src/main/groovy/io.deephaven.java-repository-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-repository-conventions.gradle new file mode 100644 index 00000000000..9b4fc6e12df --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.java-repository-conventions.gradle @@ -0,0 +1,22 @@ +repositories { + mavenCentral() + maven { + url 'https://jitpack.io' + content { + includeGroup 'com.github.rdblue' + } + } + maven { + url 'https://maven.twttr.com' + content { + includeGroup 'com.hadoop.gplcompression' + } + } + maven { + url 'https://packages.confluent.io/maven' + content { + includeGroup 'io.confluent' + includeGroup 'org.apache.kafka' + } + } +} diff --git a/buildSrc/src/main/groovy/io.deephaven.java-test-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-test-conventions.gradle new file mode 100644 index 00000000000..3b6e2595d03 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.java-test-conventions.gradle @@ -0,0 +1,82 @@ +plugins { + id 'java' + id 'io.deephaven.java-jacoco-conventions' +} + +def testJar = project.tasks.register 'testJar', Jar, { Jar jar -> + jar.from project.sourceSets.test.output + jar.classifier = 'test' +} + +configurations { + testOutput.extendsFrom testRuntimeClasspath +} + +artifacts { + testOutput testJar + archives testJar +} + +project.tasks.withType(Test).all { Test t -> + t.with { + t.defaultCharacterEncoding = 'UTF-8' + + onlyIf { TestTools.shouldRunTests(project) } + + useJUnit() + + new File("$rootDir/tmp/workspace".toString()).mkdirs() + new File("$rootDir/tmp/logs".toString()).mkdirs() + + // pass -PforceTest=true to run test again after they've passed once, + // and input source has not changed (i.e. invalidate caching) + if (findProperty('forceTest') == 'true') { + outputs.upToDateWhen { false } + } + + enableAssertions = true + if (!maxHeapSize) { + maxHeapSize = '3g' + } + + if (!maxParallelForks) { + maxParallelForks = 4 + } + + if (!forkEvery) { + // NB: This comment may be outdated: + // throw away jvms after 32 tests have run on them. + // this is sadly needed as some of the engine tests seem to have a leak; + // tests which can pass locally in IDE on 2g can't survive in CI w/ 3g + forkEvery = 32 + } + + if (findProperty('shortTests') == 'true') { + systemProperty 'TstUtils.shortTests', 'true' + } + systemProperty 'Configuration.rootFile', 'dh-tests.prop' + systemProperty 'devroot', "$rootDir" + systemProperty 'workspace', "$rootDir/tmp/workspace" + systemProperty 'configuration.quiet', 'true' + + if (findProperty('debugCITests') == 'true') { + Map times = [:] + // TODO IDO-605: consider discovering the pid of the test executor, so we can also monitor / print RAM usage, + // in order to detect which tests are leaking RAM + t.beforeTest { + TestDescriptor d -> + String key = "$t.path:$d.className.$d.name".toString() + times[key] = System.currentTimeMillis() + println "Starting $key" + } + t.afterTest { + TestDescriptor d -> + String key = "$t.path:$d.className.$d.name".toString() + long diff = System.currentTimeMillis() - times[key] + println "$diff ms spent on $key" + } + } + + exclude 'io/deephaven/**/NoTest*' + } +} diff --git a/buildSrc/src/main/groovy/io.deephaven.java-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-toolchain-conventions.gradle similarity index 94% rename from buildSrc/src/main/groovy/io.deephaven.java-conventions.gradle rename to buildSrc/src/main/groovy/io.deephaven.java-toolchain-conventions.gradle index 03cae47335d..491bf10ec8f 100644 --- a/buildSrc/src/main/groovy/io.deephaven.java-conventions.gradle +++ b/buildSrc/src/main/groovy/io.deephaven.java-toolchain-conventions.gradle @@ -4,8 +4,6 @@ plugins { id 'java' } -def archivesBaseNamePrefix = 'deephaven-' - def compilerVersion = Integer.parseInt((String)project.findProperty('compilerVersion') ?: '11') def languageLevel = Integer.parseInt((String)project.findProperty('languageLevel') ?: '11') @@ -30,8 +28,6 @@ if (testRuntimeVersion < testLanguageLevel) { throw new IllegalArgumentException("testRuntimeVersion must be greater than or equal to testLanguageLevel") } -archivesBaseName = "${archivesBaseNamePrefix}${project.name}" - java { toolchain { // Note: even though we are being explicit with our compilers / launchers via task type, we want to set up the @@ -60,6 +56,7 @@ tasks.withType(JavaCompile).configureEach { javaCompiler.set compiler options.fork = true + options.forkOptions.memoryMaximumSize = '2G' options.encoding = 'UTF-8' options.incremental = true options.compilerArgs << '-parameters' @@ -192,26 +189,3 @@ tasks.withType(CreateStartScripts).configureEach { defaultJvmOpts += devJvmArgs } - -tasks.withType(Jar).configureEach { - Jar jar -> - jar.preserveFileTimestamps = false - jar.reproducibleFileOrder = true -} - -tasks.named(LifecycleBasePlugin.CLEAN_TASK_NAME) { - Delete d -> - d.delete('out') -} - -jar { - manifest { - attributes 'Implementation-Title': 'Deephaven Database', - 'Implementation-Version': project.version, - 'Provider': 'gradle' - } -} - -configurations { - testOutput.extendsFrom testRuntimeClasspath -} diff --git a/buildSrc/src/main/groovy/io.deephaven.lifecycle-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.lifecycle-conventions.gradle new file mode 100644 index 00000000000..bc8ea643332 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.lifecycle-conventions.gradle @@ -0,0 +1,8 @@ +def quickTask = project.tasks.register('quick') { + group = 'Deephaven lifecycle' + description = 'A lifecycle task meant to be a "quick" subset of the check task.' +} + +project.tasks + .getByName(LifecycleBasePlugin.CHECK_TASK_NAME) + .dependsOn quickTask diff --git a/buildSrc/src/main/groovy/io.deephaven.project.basic.gradle b/buildSrc/src/main/groovy/io.deephaven.project.basic.gradle new file mode 100644 index 00000000000..127ddeb66c1 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.project.basic.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.common-conventions' +} diff --git a/buildSrc/src/main/groovy/io.deephaven.docker-registry-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.project.docker-registry.gradle similarity index 71% rename from buildSrc/src/main/groovy/io.deephaven.docker-registry-conventions.gradle rename to buildSrc/src/main/groovy/io.deephaven.project.docker-registry.gradle index c3854c9eda5..d5dfad01be9 100644 --- a/buildSrc/src/main/groovy/io.deephaven.docker-registry-conventions.gradle +++ b/buildSrc/src/main/groovy/io.deephaven.project.docker-registry.gradle @@ -1,4 +1,5 @@ plugins { + id 'io.deephaven.common-conventions' id 'com.bmuschko.docker-remote-api' } diff --git a/buildSrc/src/main/groovy/io.deephaven.project.java-external.gradle b/buildSrc/src/main/groovy/io.deephaven.project.java-external.gradle new file mode 100644 index 00000000000..df7e4da29a2 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.project.java-external.gradle @@ -0,0 +1,8 @@ +plugins { + id 'io.deephaven.common-conventions' + id 'io.deephaven.java-common-conventions' + id 'io.deephaven.java-test-conventions' + // *Not* setting java-coding-conventions to keep external code as un-modified as possible. + id 'io.deephaven.java-publishing-conventions' + id 'io.deephaven.default-description' +} diff --git a/buildSrc/src/main/groovy/io.deephaven.project.java-local.gradle b/buildSrc/src/main/groovy/io.deephaven.project.java-local.gradle new file mode 100644 index 00000000000..78995a00174 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.project.java-local.gradle @@ -0,0 +1,6 @@ +plugins { + id 'io.deephaven.common-conventions' + id 'io.deephaven.java-common-conventions' + id 'io.deephaven.java-test-conventions' + id 'io.deephaven.java-coding-conventions' +} diff --git a/buildSrc/src/main/groovy/io.deephaven.project.java-public.gradle b/buildSrc/src/main/groovy/io.deephaven.project.java-public.gradle new file mode 100644 index 00000000000..fba48fa3674 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.project.java-public.gradle @@ -0,0 +1,8 @@ +plugins { + id 'io.deephaven.common-conventions' + id 'io.deephaven.java-common-conventions' + id 'io.deephaven.java-test-conventions' + id 'io.deephaven.java-coding-conventions' + id 'io.deephaven.java-publishing-conventions' + id 'io.deephaven.default-description' +} diff --git a/buildSrc/src/main/groovy/io.deephaven.project.register.gradle b/buildSrc/src/main/groovy/io.deephaven.project.register.gradle new file mode 100644 index 00000000000..1666f67e28d --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.project.register.gradle @@ -0,0 +1 @@ +io.deephaven.project.ProjectType.register(project) diff --git a/buildSrc/src/main/groovy/io.deephaven.project.root.gradle b/buildSrc/src/main/groovy/io.deephaven.project.root.gradle new file mode 100644 index 00000000000..127ddeb66c1 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.project.root.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.common-conventions' +} diff --git a/buildSrc/src/main/groovy/io/deephaven/project/ProjectType.groovy b/buildSrc/src/main/groovy/io/deephaven/project/ProjectType.groovy new file mode 100644 index 00000000000..2b8e73dbd73 --- /dev/null +++ b/buildSrc/src/main/groovy/io/deephaven/project/ProjectType.groovy @@ -0,0 +1,113 @@ +package io.deephaven.project + +import groovy.transform.CompileStatic +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ProjectDependency +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.tasks.TaskProvider + +@CompileStatic +enum ProjectType { + + BASIC(false, 'io.deephaven.project.basic'), + DOCKER_REGISTRY(false, 'io.deephaven.project.docker-registry'), + JAVA_EXTERNAL(true, 'io.deephaven.project.java-external'), + JAVA_LOCAL(false, 'io.deephaven.project.java-local'), + JAVA_PUBLIC(true, 'io.deephaven.project.java-public'), + ROOT(false, 'io.deephaven.project.root'); + + public static final String VERIFY_ALL_PROJECTS_REGISTERED_TASK_NAME = 'verifyAllProjectsRegistered' + + public static final String VERIFY_RUNTIME_CLASSPATH_IS_PUBLIC_TASK_NAME = 'verifyRuntimeClasspathIsPublic' + + static void register(Project project) { + ProjectType type = getType(project) + if (type == ROOT && project.rootProject != project) { + throw new IllegalStateException("Project '${project.name}' is likely inheriting the 'ROOT' type - please set the property 'io.deephaven.project.ProjectType' as appropriate.") + } + + project.pluginManager.apply(type.pluginId) + registerInternal(project, type) + if (type == ROOT) { + project.tasks + .getByName('quick') + .dependsOn verifyAllRegisteredTask(project) + } + } + + private static void registerInternal(Project project, ProjectType projectType) { + def key = "${ProjectType.class.name}.isRegistered" + def ext = project.extensions.extraProperties + if (ext.has(key)) { + throw new IllegalStateException("Unable to set project type '${project.name}' as '${projectType}'" + + " - is already registered with the type '${ext.get(key)}'") + } + ext.set(key, projectType) + if (projectType.isPublic) { + project.tasks + .getByName('quick') + .dependsOn verifyRuntimeClasspathIsPublicTask(project) + } + } + + private static TaskProvider verifyRuntimeClasspathIsPublicTask(Project project) { + return project.tasks.register(VERIFY_RUNTIME_CLASSPATH_IS_PUBLIC_TASK_NAME) { task -> + task.doLast { + verifyRuntimeClasspathIsPublic(project) + } + } + } + + private static void verifyRuntimeClasspathIsPublic(Project project) { + project + .configurations + .getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME) + .getAllDependencies() + .findAll { it instanceof ProjectDependency } + .collect { ((ProjectDependency)it).dependencyProject } + .each { + if (!isPublic(it)) { + throw new IllegalStateException("Public project '${project.name}' has a dependency on a non-public project '${it.name}'") + } + } + } + + private static TaskProvider verifyAllRegisteredTask(Project project) { + return project.tasks.register(VERIFY_ALL_PROJECTS_REGISTERED_TASK_NAME) { task -> + task.doLast { + project.allprojects { Project p -> + verifyRegistered(p) + } + } + } + } + + private static void verifyRegistered(Project project) { + def ext = project.extensions.extraProperties + if (!ext.has("${ProjectType.class.name}.isRegistered")) { + throw new IllegalStateException("Project '${project.name}' has not registered. Please apply the plugin 'io.deephaven.project.register'.") + } + } + + static ProjectType getType(Project project) { + def typeString = project.findProperty('io.deephaven.project.ProjectType') as String + if (typeString == null) { + throw new IllegalStateException("Project '${project.name}' must declare a type. Please set the property 'io.deephaven.project.ProjectType'.") + } + return valueOf(typeString) + } + + static boolean isPublic(Project project) { + return getType(project).isPublic + } + + boolean isPublic + String pluginId + + ProjectType(boolean isPublic, String pluginId) { + this.isPublic = isPublic + this.pluginId = pluginId + } +} + diff --git a/combined-javadoc/build.gradle b/combined-javadoc/build.gradle new file mode 100644 index 00000000000..f53d9f57a9b --- /dev/null +++ b/combined-javadoc/build.gradle @@ -0,0 +1,66 @@ +plugins { + id 'io.deephaven.project.register' + id 'java' +} + +configurations { + combinedJavadoc +} + +String javaDocOverviewLocation = 'build/docs/overview.html' + +// TODO(deephaven-core#2000): Ensure build work from zipped source +def gitHash +gitHash = "${-> gitHash = 'git rev-list --max-count=1 HEAD'.execute([], rootDir).text.trim()}" +def writeJavadocVersion = tasks.register 'writeJavadocVersion', { + Task t -> + t.description "Write $version to $javaDocOverviewLocation" + File versionFile = file(javaDocOverviewLocation) + t.inputs.property('version', version) + t.inputs.property('gitHash', gitHash) + t.outputs.file(versionFile) + t.doLast { + versionFile.text = 'Deephaven Javadoc for ' + version + '\n\n' + } +} + +def allJavadoc = tasks.register 'allJavadoc', Javadoc, { + Javadoc jdoc -> + // TODO(deephaven-core#1513): Remove non-LTS JDK 15 as part of javadocs process + jdoc.javadocTool = javaToolchains.javadocToolFor{it -> + // Javadoc version >=11 is needed for search + // Javadoc version >12 is needed to avoid javadoc bugs in linking with modules + languageVersion = JavaLanguageVersion.of(15) + } + jdoc.inputs.file javaDocOverviewLocation + jdoc.options.encoding = 'UTF-8' + jdoc.options.tags = ['apiNote', 'implNote'] + // include a note on the front Javadoc page telling us what version the Javadoc was generated from. + jdoc.options.overview = new File(javaDocOverviewLocation) + jdoc.options.links = ['https://docs.oracle.com/en/java/javase/11/docs/api/'] + jdoc.options.addStringOption('Xdoclint:none', '-quiet') + + def isPublic = { Project p -> return io.deephaven.project.ProjectType.isPublic(p) } + + jdoc.source = rootProject.subprojects + .findAll { it -> isPublic(it) } + .collect { it.sourceSets.main.allJava } + + jdoc.classpath = files(rootProject.subprojects + .findAll { it -> isPublic(it) } + .collect { it.sourceSets.main.compileClasspath }) + + // https://github.com/gradle/gradle/issues/19869 + def sourcepath = files() + rootProject.subprojects.findAll{ it -> isPublic(it) } .each { + sourcepath = sourcepath + (FileCollection) it.sourceSets.main.allJava.getSourceDirectories() + } + options.addStringOption('sourcepath', sourcepath.getAsPath()) + + jdoc.destinationDir = file("${buildDir}/docs/javadoc") + jdoc.dependsOn(writeJavadocVersion) +} + +artifacts { + combinedJavadoc allJavadoc +} \ No newline at end of file diff --git a/combined-javadoc/gradle.properties b/combined-javadoc/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/combined-javadoc/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/configs/Colors.xml b/configs/Colors.xml deleted file mode 100644 index e7ab2a53014..00000000000 --- a/configs/Colors.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/configs/Fonts.xml b/configs/Fonts.xml deleted file mode 100644 index 71c222bad0e..00000000000 --- a/configs/Fonts.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/configs/chartthemes/BlackLight.theme b/configs/chartthemes/BlackLight.theme deleted file mode 100644 index d69ef7f48ae..00000000000 --- a/configs/chartthemes/BlackLight.theme +++ /dev/null @@ -1,69 +0,0 @@ - - BlackLight - - - Trebuchet MS - - 11 - - - - Trebuchet MS - - 16 - - - - Trebuchet MS - - 14 - - - - Trebuchet MS - - 11 - - - - Trebuchet MS - - 9 - - - - Trebuchet MS - - 8 - - - - Trebuchet MS - - 9 - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/configs/chartthemes/Dark.theme b/configs/chartthemes/Dark.theme deleted file mode 100644 index 9134b162874..00000000000 --- a/configs/chartthemes/Dark.theme +++ /dev/null @@ -1,65 +0,0 @@ - - - - Dark - - - SanSerif - - 14 - - - - SanSerif - - 28 - - - - SanSerif - - 20 - - - - SanSerif - - 14 - - - - SanSerif - - 10 - - - - SanSerif - - 10 - - - - SanSerif - - 10 - - - - - - - - - - - - - - - matplotlib - - - diff --git a/configs/chartthemes/Forte.theme b/configs/chartthemes/Forte.theme deleted file mode 100644 index 77f89ad76fb..00000000000 --- a/configs/chartthemes/Forte.theme +++ /dev/null @@ -1,69 +0,0 @@ - - Forte - - - Arial - - 11 - - - - Arial - - 16 - - - - Arial - - 14 - - - - Arial - - 11 - - - - Arial - - 9 - - - - Arial - - 8 - - - - Arial - - 9 - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/configs/chartthemes/Light.theme b/configs/chartthemes/Light.theme deleted file mode 100644 index a542dfa6486..00000000000 --- a/configs/chartthemes/Light.theme +++ /dev/null @@ -1,65 +0,0 @@ - - - - Light - - - SanSerif - - 14 - - - - SanSerif - - 28 - - - - SanSerif - - 20 - - - - SanSerif - - 14 - - - - SanSerif - - 10 - - - - SanSerif - - 10 - - - - SanSerif - - 10 - - - - - - - - - - - - - - - matplotlib - - - diff --git a/configs/chartthemes/Medium.theme b/configs/chartthemes/Medium.theme deleted file mode 100644 index 8cb5161dce3..00000000000 --- a/configs/chartthemes/Medium.theme +++ /dev/null @@ -1,65 +0,0 @@ - - - - Medium - - - SanSerif - - 14 - - - - SanSerif - - 28 - - - - SanSerif - - 20 - - - - SanSerif - - 14 - - - - SanSerif - - 10 - - - - SanSerif - - 10 - - - - SanSerif - - 10 - - - - - - - - - - - - - - - matplotlib - - - diff --git a/configs/chartthemes/Neon.theme b/configs/chartthemes/Neon.theme deleted file mode 100644 index ab0d9cba1b5..00000000000 --- a/configs/chartthemes/Neon.theme +++ /dev/null @@ -1,69 +0,0 @@ - - Neon - - - Trebuchet MS - - 11 - - - - Trebuchet MS - - 16 - - - - Trebuchet MS - - 14 - - - - Trebuchet MS - - 11 - - - - Trebuchet MS - - 9 - - - - Trebuchet MS - - 8 - - - - Trebuchet MS - - 9 - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/configs/chartthemes/Pastel.theme b/configs/chartthemes/Pastel.theme deleted file mode 100644 index 13e129cf412..00000000000 --- a/configs/chartthemes/Pastel.theme +++ /dev/null @@ -1,69 +0,0 @@ - - Pastel - - - Verdana - - 11 - - - - Verdana - - 16 - - - - Verdana - - 14 - - - - Verdana - - 11 - - - - Verdana - - 9 - - - - Verdana - - 8 - - - - Verdana - - 9 - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docker/registry/alpine/build.gradle b/docker/registry/alpine/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/alpine/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/alpine/gradle.properties b/docker/registry/alpine/gradle.properties index 3796426f273..22d1b6c47ba 100644 --- a/docker/registry/alpine/gradle.properties +++ b/docker/registry/alpine/gradle.properties @@ -1,4 +1,5 @@ # Deliberately using old alpine, see issue #1034 in deephaven-core # See also alpinelinux/docker-alpine#155 +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=alpine:3.12 deephaven.registry.imageId=alpine@sha256:d9459083f962de6bd980ae6a05be2a4cf670df6a1d898157bceb420342bec280 \ No newline at end of file diff --git a/docker/registry/envoyproxy/build.gradle b/docker/registry/envoyproxy/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/envoyproxy/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/envoyproxy/gradle.properties b/docker/registry/envoyproxy/gradle.properties index cef2dbc173b..719bd400058 100644 --- a/docker/registry/envoyproxy/gradle.properties +++ b/docker/registry/envoyproxy/gradle.properties @@ -1,3 +1,4 @@ # Note: using the registry name "envoyproxy" instead of "envoy" since the ":envoy" project produces deephaven/envoy:local-build. +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=envoyproxy/envoy:v1.17.1 deephaven.registry.imageId=envoyproxy/envoy@sha256:1e4de079793a62a1ed7023bc44228b80d753773dbf24dcf7b318f360ca595b31 \ No newline at end of file diff --git a/docker/registry/nginx-base/build.gradle b/docker/registry/nginx-base/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/nginx-base/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/nginx-base/gradle.properties b/docker/registry/nginx-base/gradle.properties index a0bc00b5fde..04a8afc9e43 100644 --- a/docker/registry/nginx-base/gradle.properties +++ b/docker/registry/nginx-base/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=ghcr.io/deephaven/nginx-base:latest deephaven.registry.imageId=ghcr.io/deephaven/nginx-base@sha256:89343bdd9d0213902a2572a2796ec0bd93fa5ba04d25cf3d772de8a433c6173b \ No newline at end of file diff --git a/docker/registry/nltk-base/build.gradle b/docker/registry/nltk-base/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/nltk-base/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/nltk-base/gradle.properties b/docker/registry/nltk-base/gradle.properties index 2d8dd5c3212..64032725b48 100644 --- a/docker/registry/nltk-base/gradle.properties +++ b/docker/registry/nltk-base/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=ghcr.io/deephaven/nltk-base:latest deephaven.registry.imageId=ghcr.io/deephaven/nltk-base@sha256:ec41046890c0cf3ef0d4901bda7f9445eafff8be38ca4a0198316cb9be78e4c9 diff --git a/docker/registry/node/build.gradle b/docker/registry/node/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/node/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/node/gradle.properties b/docker/registry/node/gradle.properties index 79a5431899f..b47bbbfc9a9 100644 --- a/docker/registry/node/gradle.properties +++ b/docker/registry/node/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=node:14 deephaven.registry.imageId=node@sha256:b2c75df8c9706156c38b4f1f678d00e11cb2bfda09fc4ab6e36ec17ac9163865 diff --git a/docker/registry/protoc-base/build.gradle b/docker/registry/protoc-base/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/protoc-base/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/protoc-base/gradle.properties b/docker/registry/protoc-base/gradle.properties index 8c51a2b8147..54da79776ce 100644 --- a/docker/registry/protoc-base/gradle.properties +++ b/docker/registry/protoc-base/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=ghcr.io/deephaven/protoc-base:latest deephaven.registry.imageId=ghcr.io/deephaven/protoc-base@sha256:0f5a065ee6553848602bc6c597a7bae9986b9486f11ec095b4410e4878f485f1 diff --git a/docker/registry/python-dev-base/build.gradle b/docker/registry/python-dev-base/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/python-dev-base/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/python-dev-base/gradle.properties b/docker/registry/python-dev-base/gradle.properties index c66804fc6ff..02a4ec7f056 100644 --- a/docker/registry/python-dev-base/gradle.properties +++ b/docker/registry/python-dev-base/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=ghcr.io/deephaven/python-dev-base:latest deephaven.registry.imageId=ghcr.io/deephaven/python-dev-base@sha256:e9c9dd51f542e758e3dcdcc1d0bad332e4350b4928968e6cac69328cc9f95f52 diff --git a/docker/registry/python/build.gradle b/docker/registry/python/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/python/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/python/gradle.properties b/docker/registry/python/gradle.properties index cd4d303c88e..6ac0fd61852 100644 --- a/docker/registry/python/gradle.properties +++ b/docker/registry/python/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=python:3.7 deephaven.registry.imageId=python@sha256:48e1422053164310266a9a85e4f3886733a5f1dc025238dba229068806aff4d6 diff --git a/docker/registry/pytorch-base/build.gradle b/docker/registry/pytorch-base/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/pytorch-base/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/pytorch-base/gradle.properties b/docker/registry/pytorch-base/gradle.properties index fdda59de9ed..f47a4b211e4 100644 --- a/docker/registry/pytorch-base/gradle.properties +++ b/docker/registry/pytorch-base/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=ghcr.io/deephaven/pytorch-base:latest deephaven.registry.imageId=ghcr.io/deephaven/pytorch-base@sha256:82dd6496452ce627a20c26f404fe4b9f19b62a460a69d87885121db63ac5892e diff --git a/docker/registry/server-base/build.gradle b/docker/registry/server-base/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/server-base/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/server-base/gradle.properties b/docker/registry/server-base/gradle.properties index 74620119037..fb6f11409c0 100644 --- a/docker/registry/server-base/gradle.properties +++ b/docker/registry/server-base/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=ghcr.io/deephaven/server-base:latest deephaven.registry.imageId=ghcr.io/deephaven/server-base@sha256:dc3ef373fd4d93e3799b98a78e04156ff15fca838917f202a24409d4878ff2e6 diff --git a/docker/registry/sklearn-base/build.gradle b/docker/registry/sklearn-base/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/sklearn-base/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/sklearn-base/gradle.properties b/docker/registry/sklearn-base/gradle.properties index 0f8bd58bf00..d22f3b0ef25 100644 --- a/docker/registry/sklearn-base/gradle.properties +++ b/docker/registry/sklearn-base/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=ghcr.io/deephaven/sklearn-base:latest deephaven.registry.imageId=ghcr.io/deephaven/sklearn-base@sha256:7468ccfdc33910786ed7f651f3332f28d916e5ae2308588ed0c60ec6793f1276 diff --git a/docker/registry/slim-base/build.gradle b/docker/registry/slim-base/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/slim-base/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/slim-base/gradle.properties b/docker/registry/slim-base/gradle.properties index feb1e4a60ab..926b97812ed 100644 --- a/docker/registry/slim-base/gradle.properties +++ b/docker/registry/slim-base/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=ghcr.io/deephaven/slim-base:latest deephaven.registry.imageId=ghcr.io/deephaven/slim-base@sha256:a553d83fdf8941753f0a8071e1edf55c51ec1c601668d89de1e6774303e6a869 diff --git a/docker/registry/tensorflow-base/build.gradle b/docker/registry/tensorflow-base/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/docker/registry/tensorflow-base/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/docker/registry/tensorflow-base/gradle.properties b/docker/registry/tensorflow-base/gradle.properties index ea308cf4bc8..4041ee79dda 100644 --- a/docker/registry/tensorflow-base/gradle.properties +++ b/docker/registry/tensorflow-base/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=DOCKER_REGISTRY deephaven.registry.imageName=ghcr.io/deephaven/tensorflow-base:latest deephaven.registry.imageId=ghcr.io/deephaven/tensorflow-base@sha256:bf6bd3e8f5bb9893133138b23a0ae86064c4ccd123315fdc433f4ae9c2d95bb0 diff --git a/docker/runtime-base/build.gradle b/docker/runtime-base/build.gradle index 2e25125c78e..7b75623b8cf 100644 --- a/docker/runtime-base/build.gradle +++ b/docker/runtime-base/build.gradle @@ -1,5 +1,6 @@ plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } evaluationDependsOn Docker.registryProject('server-base') diff --git a/docker/runtime-base/gradle.properties b/docker/runtime-base/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/docker/runtime-base/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/docker/server-slim/build.gradle b/docker/server-slim/build.gradle index c312bbe3235..8aad18778d2 100644 --- a/docker/server-slim/build.gradle +++ b/docker/server-slim/build.gradle @@ -2,7 +2,7 @@ import io.deephaven.tools.License plugins { id 'com.bmuschko.docker-remote-api' - id 'base' + id 'io.deephaven.project.register' } evaluationDependsOn Docker.registryProject('slim-base') diff --git a/docker/server-slim/gradle.properties b/docker/server-slim/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/docker/server-slim/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/docker/server/build.gradle b/docker/server/build.gradle index 918a5013789..18d9c325113 100644 --- a/docker/server/build.gradle +++ b/docker/server/build.gradle @@ -3,6 +3,7 @@ import io.deephaven.tools.License plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } def targetArch = Architecture.targetArchitecture(project) diff --git a/docker/server/gradle.properties b/docker/server/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/docker/server/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/docker/web-plugin-packager/build.gradle b/docker/web-plugin-packager/build.gradle index 8e2eff1d94a..74d280c8ed2 100644 --- a/docker/web-plugin-packager/build.gradle +++ b/docker/web-plugin-packager/build.gradle @@ -1,6 +1,7 @@ import io.deephaven.tools.License plugins { + id 'io.deephaven.project.register' id 'com.bmuschko.docker-remote-api' } diff --git a/docker/web-plugin-packager/gradle.properties b/docker/web-plugin-packager/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/docker/web-plugin-packager/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/docker/web/build.gradle b/docker/web/build.gradle index c7532fd517a..0c6208186f4 100644 --- a/docker/web/build.gradle +++ b/docker/web/build.gradle @@ -2,6 +2,7 @@ import io.deephaven.tools.License plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } configurations { diff --git a/docker/web/gradle.properties b/docker/web/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/docker/web/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/engine/api/build.gradle b/engine/api/build.gradle index 142b5de2d08..d3c39afd91b 100644 --- a/engine/api/build.gradle +++ b/engine/api/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine API: Engine API module, suitable as a compile-time dependency for most queries' diff --git a/engine/api/gradle.properties b/engine/api/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/api/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/base/build.gradle b/engine/base/build.gradle index e0b695fe6ea..a6e818d7e1e 100644 --- a/engine/base/build.gradle +++ b/engine/base/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine Base: Exposes a few classes needed by both engine-tuplesource and engine-table' diff --git a/engine/base/gradle.properties b/engine/base/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/base/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/benchmark/build.gradle b/engine/benchmark/build.gradle index 08b7e2e3e32..495eefb9d63 100644 --- a/engine/benchmark/build.gradle +++ b/engine/benchmark/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine Benchmark: Benchmarks for Engine modules' diff --git a/engine/benchmark/gradle.properties b/engine/benchmark/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/engine/benchmark/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/engine/chunk/build.gradle b/engine/chunk/build.gradle index eff81e4483c..e8a1541b17f 100644 --- a/engine/chunk/build.gradle +++ b/engine/chunk/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine Chunks: Array-like data structures for dense, efficient data movement' diff --git a/engine/chunk/gradle.properties b/engine/chunk/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/chunk/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/function/build.gradle b/engine/function/build.gradle index 96b4a869371..e5cc556ece5 100644 --- a/engine/function/build.gradle +++ b/engine/function/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine Functions: Libraries for use in query expressions' diff --git a/engine/function/gradle.properties b/engine/function/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/function/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/rowset/build.gradle b/engine/rowset/build.gradle index e7a04de6ff9..495d2bac013 100644 --- a/engine/rowset/build.gradle +++ b/engine/rowset/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine RowSets: Data structures for working with row keys' diff --git a/engine/rowset/gradle.properties b/engine/rowset/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/rowset/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/stringset/build.gradle b/engine/stringset/build.gradle index 829089056f4..8945a2cfa4d 100644 --- a/engine/stringset/build.gradle +++ b/engine/stringset/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine StringSet: Data structure support for efficient storage of sets of Strings' diff --git a/engine/stringset/gradle.properties b/engine/stringset/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/stringset/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/table/build.gradle b/engine/table/build.gradle index 444c7c793fc..687bada0a28 100644 --- a/engine/table/build.gradle +++ b/engine/table/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine Table: Implementation and closely-coupled utilities' diff --git a/engine/table/gradle.properties b/engine/table/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/table/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/time/build.gradle b/engine/time/build.gradle index 661972c6779..0cea6ec5119 100644 --- a/engine/time/build.gradle +++ b/engine/time/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine Time: Types and libraries for working with instants, periods, and calendars' diff --git a/engine/time/gradle.properties b/engine/time/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/time/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/tuple/build.gradle b/engine/tuple/build.gradle index b28947e0ac3..ade3a8558ba 100644 --- a/engine/tuple/build.gradle +++ b/engine/tuple/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine Tuples: Value sequences for use in aggregations, joins, and indexing' diff --git a/engine/tuple/gradle.properties b/engine/tuple/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/tuple/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/tuplesource/build.gradle b/engine/tuplesource/build.gradle index 52ec045529b..11e3420b4d1 100644 --- a/engine/tuplesource/build.gradle +++ b/engine/tuplesource/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine TupleSource: Library of TupleSource implementations for combining multiple ColumnSources' diff --git a/engine/tuplesource/gradle.properties b/engine/tuplesource/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/tuplesource/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/updategraph/build.gradle b/engine/updategraph/build.gradle index 83fa471bc19..71541d94190 100644 --- a/engine/updategraph/build.gradle +++ b/engine/updategraph/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine Update Graph: Core utilities for maintaining a DAG for update processing' diff --git a/engine/updategraph/gradle.properties b/engine/updategraph/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/updategraph/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/engine/vector/build.gradle b/engine/vector/build.gradle index d6f9ee98c48..69e2ed7d352 100644 --- a/engine/vector/build.gradle +++ b/engine/vector/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Engine Vectors: Array-like data structures for in-place data access' diff --git a/engine/vector/gradle.properties b/engine/vector/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/engine/vector/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/envoy/build.gradle b/envoy/build.gradle index 5193911ff36..e61f039d5fc 100644 --- a/envoy/build.gradle +++ b/envoy/build.gradle @@ -3,6 +3,7 @@ import io.deephaven.tools.License plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } evaluationDependsOn Docker.registryProject('envoyproxy') diff --git a/envoy/gradle.properties b/envoy/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/envoy/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/extensions/barrage/build.gradle b/extensions/barrage/build.gradle index 95229c77a69..eb655d8fa45 100644 --- a/extensions/barrage/build.gradle +++ b/extensions/barrage/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } configurations { diff --git a/extensions/barrage/gradle.properties b/extensions/barrage/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/extensions/barrage/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/extensions/classgraph/build.gradle b/extensions/classgraph/build.gradle index f344550b35a..cef93d41192 100644 --- a/extensions/classgraph/build.gradle +++ b/extensions/classgraph/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/extensions/classgraph/gradle.properties b/extensions/classgraph/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/extensions/classgraph/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/extensions/csv/build.gradle b/extensions/csv/build.gradle index 506c407cd34..fecbd315807 100644 --- a/extensions/csv/build.gradle +++ b/extensions/csv/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'CSV: Support to read and write engine tables from/to CSV' diff --git a/extensions/csv/gradle.properties b/extensions/csv/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/extensions/csv/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/extensions/kafka/build.gradle b/extensions/kafka/build.gradle index 836d6f3e957..935cc5e7f69 100644 --- a/extensions/kafka/build.gradle +++ b/extensions/kafka/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Kafka: Integrating Engine tables with Kafka' diff --git a/extensions/kafka/gradle.properties b/extensions/kafka/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/extensions/kafka/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/extensions/parquet/base/build.gradle b/extensions/parquet/base/build.gradle index aa03e47e4d6..e6929c96642 100644 --- a/extensions/parquet/base/build.gradle +++ b/extensions/parquet/base/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Parquet Base: Libraries for working with Parquet files' diff --git a/extensions/parquet/base/gradle.properties b/extensions/parquet/base/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/extensions/parquet/base/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/extensions/parquet/table/build.gradle b/extensions/parquet/table/build.gradle index 241abbf5b5c..d570b0fccce 100644 --- a/extensions/parquet/table/build.gradle +++ b/extensions/parquet/table/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Parquet Table: Integrating Engine tables with Parquet' diff --git a/extensions/parquet/table/gradle.properties b/extensions/parquet/table/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/extensions/parquet/table/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/extensions/suanshu/build.gradle b/extensions/suanshu/build.gradle index 2745d57da55..18161487b43 100644 --- a/extensions/suanshu/build.gradle +++ b/extensions/suanshu/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } configurations { diff --git a/extensions/suanshu/gradle.properties b/extensions/suanshu/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/extensions/suanshu/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/fishconfig-local/build.gradle b/fishconfig-local/build.gradle deleted file mode 100644 index 93e2f343ea2..00000000000 --- a/fishconfig-local/build.gradle +++ /dev/null @@ -1,13 +0,0 @@ -plugins { - id 'java' -} - -description = 'Provides a io.deephaven.configuration.PropertyInputStreamLoader that only loads from the classpath. Useful for unit-testing that shouldn\'t depend on etcd.' - -configurations { - compile.extendsFrom fishConfig -} - -dependencies { - Classpaths.inheritAutoService(project) -} diff --git a/gradle.properties b/gradle.properties index 0ac35469845..5199c1b1649 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,3 +10,5 @@ org.gradle.jvmargs=-Xms1g -Xmx3g debugCI=false # Setting debugCITests to true will cause all tests to spam before/after messages describing the test being run. debugCITests=false + +io.deephaven.project.ProjectType=ROOT diff --git a/gradle/deephaven-jpy.gradle b/gradle/deephaven-jpy.gradle deleted file mode 100644 index 826c541d549..00000000000 --- a/gradle/deephaven-jpy.gradle +++ /dev/null @@ -1,33 +0,0 @@ -project(':deephaven-jpy') { - - evaluationDependsOn Docker.registryProject('python-dev-base') - - apply plugin: 'com.bmuschko.docker-remote-api' - - test { - onlyIf { false } // don't run tests, it depends on python assets, which we aren't building ATM - exclude "**/*" // make sure intellij doesn't try to use this disabled test class7 - } - - dependencies { - testCompile 'junit:junit:4.13.2' // but we still want tests to compile - } - - // For OSS, we need to currently move fast, and will prefer to make edits directly in py/jpy. - // These can be backported to jpy proper in the future if necessary. - - Docker.registerDockerTask(project, 'buildWheel') { - copyIn { - from(project.projectDir) { - exclude 'build' - } - } - parentContainers = [ Docker.registryTask(project, 'python-dev-base') ] - buildArgs = [ DEEPHAVEN_VERSION: project.version.toString() ] - imageName = 'deephaven/deephaven-jpy-wheel:local-build' - containerOutPath = '/usr/src/app/dist' - copyOut { - into 'build/deephaven-jpy-wheel' - } - } -} diff --git a/grpc-java/build.gradle b/grpc-java/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/grpc-java/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/grpc-java/gradle.properties b/grpc-java/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/grpc-java/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/grpc-java/grpc-servlet-jakarta/build.gradle b/grpc-java/grpc-servlet-jakarta/build.gradle index f9aba8f3383..864ce2118fe 100644 --- a/grpc-java/grpc-servlet-jakarta/build.gradle +++ b/grpc-java/grpc-servlet-jakarta/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/grpc-java/grpc-servlet-jakarta/gradle.properties b/grpc-java/grpc-servlet-jakarta/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/grpc-java/grpc-servlet-jakarta/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/grpc-java/grpc-servlet-websocket-jakarta/build.gradle b/grpc-java/grpc-servlet-websocket-jakarta/build.gradle index f13dbec2507..2c4c48df78f 100644 --- a/grpc-java/grpc-servlet-websocket-jakarta/build.gradle +++ b/grpc-java/grpc-servlet-websocket-jakarta/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/grpc-java/grpc-servlet-websocket-jakarta/gradle.properties b/grpc-java/grpc-servlet-websocket-jakarta/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/grpc-java/grpc-servlet-websocket-jakarta/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/grpc-proxy/build.gradle b/grpc-proxy/build.gradle index c742df20fff..7ed8ef3b1e4 100644 --- a/grpc-proxy/build.gradle +++ b/grpc-proxy/build.gradle @@ -4,6 +4,7 @@ import io.deephaven.tools.License plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } evaluationDependsOn Docker.registryProject('alpine') diff --git a/grpc-proxy/gradle.properties b/grpc-proxy/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/grpc-proxy/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/java-client/barrage-dagger/build.gradle b/java-client/barrage-dagger/build.gradle index 5a2f2206766..78975677779 100644 --- a/java-client/barrage-dagger/build.gradle +++ b/java-client/barrage-dagger/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven engine library plus client' diff --git a/java-client/barrage-dagger/gradle.properties b/java-client/barrage-dagger/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/java-client/barrage-dagger/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/java-client/barrage-examples/build.gradle b/java-client/barrage-examples/build.gradle index e89019e10d5..09f79de9e8e 100644 --- a/java-client/barrage-examples/build.gradle +++ b/java-client/barrage-examples/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'java' id 'application' + id 'io.deephaven.project.register' } dependencies { diff --git a/java-client/barrage-examples/gradle.properties b/java-client/barrage-examples/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/java-client/barrage-examples/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/java-client/barrage/build.gradle b/java-client/barrage/build.gradle index 7f684d40112..7db97ef76de 100644 --- a/java-client/barrage/build.gradle +++ b/java-client/barrage/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } configurations { diff --git a/java-client/barrage/gradle.properties b/java-client/barrage/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/java-client/barrage/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/java-client/example-utilities/build.gradle b/java-client/example-utilities/build.gradle index 9167442f159..9f1dba0d177 100644 --- a/java-client/example-utilities/build.gradle +++ b/java-client/example-utilities/build.gradle @@ -1,9 +1,12 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { api 'info.picocli:picocli:4.6.1' api project(':java-client-session') + + Classpaths.inheritGrpcPlatform(project, 'api') api 'io.grpc:grpc-api' } diff --git a/java-client/example-utilities/gradle.properties b/java-client/example-utilities/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/java-client/example-utilities/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/java-client/flight-dagger/build.gradle b/java-client/flight-dagger/build.gradle index e01cbf188e6..7a7b6f69c6d 100644 --- a/java-client/flight-dagger/build.gradle +++ b/java-client/flight-dagger/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven client flight dagger library' @@ -32,4 +33,3 @@ test { } apply plugin: 'io.deephaven.java-open-nio' -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/java-client/flight-dagger/gradle.properties b/java-client/flight-dagger/gradle.properties index 9a835bc801b..9e8588f2620 100644 --- a/java-client/flight-dagger/gradle.properties +++ b/java-client/flight-dagger/gradle.properties @@ -1 +1,2 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC languageLevel=8 diff --git a/java-client/flight-examples/build.gradle b/java-client/flight-examples/build.gradle index c5182b12c40..fd3f6d662ea 100644 --- a/java-client/flight-examples/build.gradle +++ b/java-client/flight-examples/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'java' id 'application' + id 'io.deephaven.project.register' } dependencies { diff --git a/java-client/flight-examples/gradle.properties b/java-client/flight-examples/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/java-client/flight-examples/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/java-client/flight/build.gradle b/java-client/flight/build.gradle index 52d84169bcd..c01c9d4ce68 100644 --- a/java-client/flight/build.gradle +++ b/java-client/flight/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven client flight library' @@ -21,5 +22,3 @@ dependencies { test { useJUnitPlatform() } - -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/java-client/flight/gradle.properties b/java-client/flight/gradle.properties index 9a835bc801b..9e8588f2620 100644 --- a/java-client/flight/gradle.properties +++ b/java-client/flight/gradle.properties @@ -1 +1,2 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC languageLevel=8 diff --git a/java-client/session-dagger/build.gradle b/java-client/session-dagger/build.gradle index 343f509ecdb..3f689025997 100644 --- a/java-client/session-dagger/build.gradle +++ b/java-client/session-dagger/build.gradle @@ -1,12 +1,16 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven client session dagger library' dependencies { api project(':java-client-session') + + Classpaths.inheritGrpcPlatform(project, 'api') api 'io.grpc:grpc-api' + implementation project(':proto:proto-backplane-grpc') Classpaths.inheritDagger(project) @@ -33,5 +37,3 @@ dependencies { test { } - -apply plugin: 'io.deephaven.java-publishing-conventions' \ No newline at end of file diff --git a/java-client/session-dagger/gradle.properties b/java-client/session-dagger/gradle.properties index 9a835bc801b..4dfadfbdcf2 100644 --- a/java-client/session-dagger/gradle.properties +++ b/java-client/session-dagger/gradle.properties @@ -1 +1,3 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC + languageLevel=8 diff --git a/java-client/session-examples/build.gradle b/java-client/session-examples/build.gradle index 4bd2e9495f4..b929ea57fb4 100644 --- a/java-client/session-examples/build.gradle +++ b/java-client/session-examples/build.gradle @@ -1,11 +1,13 @@ plugins { - id 'java' id 'application' + id 'io.deephaven.project.register' } dependencies { implementation project(':java-client-session-dagger') implementation project(':java-client-example-utilities') + + Classpaths.inheritGrpcPlatform(project) runtimeOnly 'io.grpc:grpc-netty' Classpaths.inheritJUnitPlatform(project) diff --git a/java-client/session-examples/gradle.properties b/java-client/session-examples/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/java-client/session-examples/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/java-client/session/build.gradle b/java-client/session/build.gradle index c7bf1a59248..137e42047ad 100644 --- a/java-client/session/build.gradle +++ b/java-client/session/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven client session library' @@ -7,7 +8,10 @@ description = 'The Deephaven client session library' dependencies { api project(':qst') api project(':uri') + + Classpaths.inheritGrpcPlatform(project, 'api') api 'io.grpc:grpc-api' + // TODO(deephaven-core#1783): Make proto-backplane-grpc implementation dependency api project(':proto:proto-backplane-grpc') @@ -32,5 +36,3 @@ dependencies { test { useJUnitPlatform() } - -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/java-client/session/gradle.properties b/java-client/session/gradle.properties index 9a835bc801b..9e8588f2620 100644 --- a/java-client/session/gradle.properties +++ b/java-client/session/gradle.properties @@ -1 +1,2 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC languageLevel=8 diff --git a/java-client/uri/build.gradle b/java-client/uri/build.gradle index e9c4421bbca..eefe867864a 100644 --- a/java-client/uri/build.gradle +++ b/java-client/uri/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven URI library' @@ -17,5 +18,3 @@ dependencies { test { useJUnitPlatform() } - -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/java-client/uri/gradle.properties b/java-client/uri/gradle.properties index 9a835bc801b..9e8588f2620 100644 --- a/java-client/uri/gradle.properties +++ b/java-client/uri/gradle.properties @@ -1 +1,2 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC languageLevel=8 diff --git a/log-factory/build.gradle b/log-factory/build.gradle index ecd0f8a92a8..e2d114da2a9 100644 --- a/log-factory/build.gradle +++ b/log-factory/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } configurations { diff --git a/log-factory/examples/example-base/build.gradle b/log-factory/examples/example-base/build.gradle index 8efa2cd6147..85c4b6892cd 100644 --- a/log-factory/examples/example-base/build.gradle +++ b/log-factory/examples/example-base/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/log-factory/examples/example-base/gradle.properties b/log-factory/examples/example-base/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/log-factory/examples/example-base/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/log-factory/examples/example-file/build.gradle b/log-factory/examples/example-file/build.gradle index 75e62917667..8d4e0eb2110 100644 --- a/log-factory/examples/example-file/build.gradle +++ b/log-factory/examples/example-file/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'java' id 'application' + id 'io.deephaven.project.register' } dependencies { diff --git a/log-factory/examples/example-file/gradle.properties b/log-factory/examples/example-file/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/log-factory/examples/example-file/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/log-factory/examples/example-logback/build.gradle b/log-factory/examples/example-logback/build.gradle index 0ca048c53c3..34a81a5ebd5 100644 --- a/log-factory/examples/example-logback/build.gradle +++ b/log-factory/examples/example-logback/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'java' id 'application' + id 'io.deephaven.project.register' } dependencies { diff --git a/log-factory/examples/example-logback/gradle.properties b/log-factory/examples/example-logback/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/log-factory/examples/example-logback/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/log-factory/examples/example-slf4j/build.gradle b/log-factory/examples/example-slf4j/build.gradle index 742424b7d05..6fc81619732 100644 --- a/log-factory/examples/example-slf4j/build.gradle +++ b/log-factory/examples/example-slf4j/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'java' id 'application' + id 'io.deephaven.project.register' } dependencies { diff --git a/log-factory/examples/example-slf4j/gradle.properties b/log-factory/examples/example-slf4j/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/log-factory/examples/example-slf4j/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/log-factory/examples/example-stream/build.gradle b/log-factory/examples/example-stream/build.gradle index 2ad47dabfb4..aeb631891c5 100644 --- a/log-factory/examples/example-stream/build.gradle +++ b/log-factory/examples/example-stream/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'java' id 'application' + id 'io.deephaven.project.register' } dependencies { diff --git a/log-factory/examples/example-stream/gradle.properties b/log-factory/examples/example-stream/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/log-factory/examples/example-stream/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/log-factory/gradle.properties b/log-factory/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/log-factory/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/log-factory/sinks/log-to-file/build.gradle b/log-factory/sinks/log-to-file/build.gradle index 7b8e8308df5..8c4f15930bb 100644 --- a/log-factory/sinks/log-to-file/build.gradle +++ b/log-factory/sinks/log-to-file/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/log-factory/sinks/log-to-file/gradle.properties b/log-factory/sinks/log-to-file/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/log-factory/sinks/log-to-file/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/log-factory/sinks/log-to-logbuffer/build.gradle b/log-factory/sinks/log-to-logbuffer/build.gradle index 7b618b4c8da..1e719a8e997 100644 --- a/log-factory/sinks/log-to-logbuffer/build.gradle +++ b/log-factory/sinks/log-to-logbuffer/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } configurations { diff --git a/log-factory/sinks/log-to-logbuffer/gradle.properties b/log-factory/sinks/log-to-logbuffer/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/log-factory/sinks/log-to-logbuffer/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/log-factory/sinks/log-to-slf4j/build.gradle b/log-factory/sinks/log-to-slf4j/build.gradle index bae6805c03a..02dd0ccc440 100644 --- a/log-factory/sinks/log-to-slf4j/build.gradle +++ b/log-factory/sinks/log-to-slf4j/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/log-factory/sinks/log-to-slf4j/gradle.properties b/log-factory/sinks/log-to-slf4j/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/log-factory/sinks/log-to-slf4j/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/log-factory/sinks/log-to-stream/build.gradle b/log-factory/sinks/log-to-stream/build.gradle index 60d5d654a63..338f00f9092 100644 --- a/log-factory/sinks/log-to-stream/build.gradle +++ b/log-factory/sinks/log-to-stream/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/log-factory/sinks/log-to-stream/gradle.properties b/log-factory/sinks/log-to-stream/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/log-factory/sinks/log-to-stream/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/log-factory/sinks/logback-logbuffer/build.gradle b/log-factory/sinks/logback-logbuffer/build.gradle index 001756f56e3..208d15e28c9 100644 --- a/log-factory/sinks/logback-logbuffer/build.gradle +++ b/log-factory/sinks/logback-logbuffer/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } configurations { diff --git a/log-factory/sinks/logback-logbuffer/gradle.properties b/log-factory/sinks/logback-logbuffer/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/log-factory/sinks/logback-logbuffer/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/log-factory/sinks/logback-print-stream-globals/build.gradle b/log-factory/sinks/logback-print-stream-globals/build.gradle index df7ae6b27fe..738f072066e 100644 --- a/log-factory/sinks/logback-print-stream-globals/build.gradle +++ b/log-factory/sinks/logback-print-stream-globals/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } configurations { diff --git a/log-factory/sinks/logback-print-stream-globals/gradle.properties b/log-factory/sinks/logback-print-stream-globals/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/log-factory/sinks/logback-print-stream-globals/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/log-factory/sources/slf4j-to-log/build.gradle b/log-factory/sources/slf4j-to-log/build.gradle index cf9ada2212f..0e8de1b650c 100644 --- a/log-factory/sources/slf4j-to-log/build.gradle +++ b/log-factory/sources/slf4j-to-log/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { diff --git a/log-factory/sources/slf4j-to-log/gradle.properties b/log-factory/sources/slf4j-to-log/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/log-factory/sources/slf4j-to-log/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/open-api/lang-parser/gradle.properties b/open-api/lang-parser/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/open-api/lang-parser/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/open-api/lang-parser/lang-parser.gradle b/open-api/lang-parser/lang-parser.gradle index 4da0706750c..fb3f4f4d373 100644 --- a/open-api/lang-parser/lang-parser.gradle +++ b/open-api/lang-parser/lang-parser.gradle @@ -1,10 +1,10 @@ plugins { id 'java-library' - id 'idea' /* Temporarily disabled due to bug between javacc plugin and jacoco plugin id "ca.coglinc.javacc" version "2.4.0" */ + id 'io.deephaven.project.register' } apply from: "$rootDir/gradle/web-common.gradle" diff --git a/open-api/lang-tools/gradle.properties b/open-api/lang-tools/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/open-api/lang-tools/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/open-api/lang-tools/lang-tools.gradle b/open-api/lang-tools/lang-tools.gradle index ade95be66e2..1773a03914b 100644 --- a/open-api/lang-tools/lang-tools.gradle +++ b/open-api/lang-tools/lang-tools.gradle @@ -1,5 +1,6 @@ plugins { id 'groovy' + id 'io.deephaven.project.register' } apply from: "$rootDir/gradle/web-common.gradle" diff --git a/open-api/shared-fu/gradle.properties b/open-api/shared-fu/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/open-api/shared-fu/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/open-api/shared-fu/shared-fu.gradle b/open-api/shared-fu/shared-fu.gradle index e337a00a3b2..8e017d1509e 100644 --- a/open-api/shared-fu/shared-fu.gradle +++ b/open-api/shared-fu/shared-fu.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + apply from: "$rootDir/gradle/web-common.gradle" GwtTools.gwtLib project diff --git a/open-api/shared-ide/gradle.properties b/open-api/shared-ide/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/open-api/shared-ide/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/open-api/shared-ide/shared-ide.gradle b/open-api/shared-ide/shared-ide.gradle index d00f4fc4a2b..d7c6a2b2bb8 100644 --- a/open-api/shared-ide/shared-ide.gradle +++ b/open-api/shared-ide/shared-ide.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + apply from: "$rootDir/gradle/web-common.gradle" GwtTools.gwtLib project diff --git a/open-api/shared-rpc/shared-rpc.gradle b/open-api/shared-rpc/shared-rpc.gradle deleted file mode 100644 index 2ae18b8a246..00000000000 --- a/open-api/shared-rpc/shared-rpc.gradle +++ /dev/null @@ -1,10 +0,0 @@ -apply from: "$rootDir/gradle/web-client.gradle" - -// This module is dedicated to the RPC interfaces used to talk to the OpenAPI. -// It should be considered the culmination of all shared code, and depend -// on everything necessary to "speak OpenAPI". - -dependencies { - compile project(':open-api-shared-ide') - -} diff --git a/plugin/build.gradle b/plugin/build.gradle index 00932e6a1d2..2acfbc6d9fd 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -1,7 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven plugin interface' - -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/plugin/dagger/build.gradle b/plugin/dagger/build.gradle index 639c5b23ef1..5c2506e1dff 100644 --- a/plugin/dagger/build.gradle +++ b/plugin/dagger/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'Dagger for Deephaven plugins' @@ -18,5 +19,3 @@ dependencies { test { useJUnitPlatform() } - -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/plugin/dagger/gradle.properties b/plugin/dagger/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/plugin/dagger/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/plugin/figure/build.gradle b/plugin/figure/build.gradle index 7f42dd7f1e7..a79919ed4b8 100644 --- a/plugin/figure/build.gradle +++ b/plugin/figure/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'java' + id 'io.deephaven.project.register' } dependencies { diff --git a/plugin/figure/gradle.properties b/plugin/figure/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/plugin/figure/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/plugin/gradle.properties b/plugin/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/plugin/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/projects/README.md b/projects/README.md deleted file mode 100644 index 0dedb2e1ce7..00000000000 --- a/projects/README.md +++ /dev/null @@ -1,19 +0,0 @@ -This directory contains "project roots" for our "bin" projects. - -The :configs and :test-configs projects all put -their resources directly into the project root directory. - -They would normally go into src/main/resources for a java project, -so this non-standard structure confuses IntelliJ, and prevents the -use of the Multiple Modules Per SourceSet feature. - -So, we create empty directories here to serve as project root, -and then hook up the "real" location as the SourceSet resources directory. - -This gives IntelliJ multiple directories (which do not intersect) to mark as Modules. - -Do not replicate this structure for future modules. -Instead, prefer standard java module structure for new modules: -src/main/java and src/main/resources (maven conventions, used by open api) -or -java and resources (legacy deephaven conventions) diff --git a/projects/configs/README.md b/projects/configs/README.md deleted file mode 100644 index d7f4df95b16..00000000000 --- a/projects/configs/README.md +++ /dev/null @@ -1,2 +0,0 @@ -This directory only exists to give IntelliJ a "Project root directory". -The real sources are in $rootDir/configs. diff --git a/projects/test-configs/README.md b/projects/test-configs/README.md deleted file mode 100644 index 67c8ef9b940..00000000000 --- a/projects/test-configs/README.md +++ /dev/null @@ -1,2 +0,0 @@ -This directory only exists to give IntelliJ a "Project root directory". -The real sources are in $rootDir/test-configs. diff --git a/props/configs/build.gradle b/props/configs/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/props/configs/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/props/configs/gradle.properties b/props/configs/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/props/configs/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/configs/calendar/BEIJING.calendar b/props/configs/src/main/resources/calendar/BEIJING.calendar similarity index 100% rename from configs/calendar/BEIJING.calendar rename to props/configs/src/main/resources/calendar/BEIJING.calendar diff --git a/configs/calendar/DTB.calendar b/props/configs/src/main/resources/calendar/DTB.calendar similarity index 100% rename from configs/calendar/DTB.calendar rename to props/configs/src/main/resources/calendar/DTB.calendar diff --git a/configs/calendar/GBLO.calendar b/props/configs/src/main/resources/calendar/GBLO.calendar similarity index 100% rename from configs/calendar/GBLO.calendar rename to props/configs/src/main/resources/calendar/GBLO.calendar diff --git a/configs/calendar/GLOBAL.calendar b/props/configs/src/main/resources/calendar/GLOBAL.calendar similarity index 100% rename from configs/calendar/GLOBAL.calendar rename to props/configs/src/main/resources/calendar/GLOBAL.calendar diff --git a/configs/calendar/JPOSE.calendar b/props/configs/src/main/resources/calendar/JPOSE.calendar similarity index 100% rename from configs/calendar/JPOSE.calendar rename to props/configs/src/main/resources/calendar/JPOSE.calendar diff --git a/configs/calendar/LSE.calendar b/props/configs/src/main/resources/calendar/LSE.calendar similarity index 100% rename from configs/calendar/LSE.calendar rename to props/configs/src/main/resources/calendar/LSE.calendar diff --git a/configs/calendar/MOSCOW.calendar b/props/configs/src/main/resources/calendar/MOSCOW.calendar similarity index 100% rename from configs/calendar/MOSCOW.calendar rename to props/configs/src/main/resources/calendar/MOSCOW.calendar diff --git a/configs/calendar/MUMBAI.calendar b/props/configs/src/main/resources/calendar/MUMBAI.calendar similarity index 100% rename from configs/calendar/MUMBAI.calendar rename to props/configs/src/main/resources/calendar/MUMBAI.calendar diff --git a/configs/calendar/USNY.calendar b/props/configs/src/main/resources/calendar/USNY.calendar similarity index 100% rename from configs/calendar/USNY.calendar rename to props/configs/src/main/resources/calendar/USNY.calendar diff --git a/configs/calendar/USNYSE.calendar b/props/configs/src/main/resources/calendar/USNYSE.calendar similarity index 100% rename from configs/calendar/USNYSE.calendar rename to props/configs/src/main/resources/calendar/USNYSE.calendar diff --git a/configs/calendar/USNYSEWEEKDAYS.calendar b/props/configs/src/main/resources/calendar/USNYSEWEEKDAYS.calendar similarity index 100% rename from configs/calendar/USNYSEWEEKDAYS.calendar rename to props/configs/src/main/resources/calendar/USNYSEWEEKDAYS.calendar diff --git a/configs/calendar/UTC.calendar b/props/configs/src/main/resources/calendar/UTC.calendar similarity index 100% rename from configs/calendar/UTC.calendar rename to props/configs/src/main/resources/calendar/UTC.calendar diff --git a/configs/defaultPackageFilters.qpr b/props/configs/src/main/resources/defaultPackageFilters.qpr similarity index 100% rename from configs/defaultPackageFilters.qpr rename to props/configs/src/main/resources/defaultPackageFilters.qpr diff --git a/configs/default_calendar_imports.txt b/props/configs/src/main/resources/default_calendar_imports.txt similarity index 100% rename from configs/default_calendar_imports.txt rename to props/configs/src/main/resources/default_calendar_imports.txt diff --git a/configs/default_class_imports.txt b/props/configs/src/main/resources/default_class_imports.txt similarity index 100% rename from configs/default_class_imports.txt rename to props/configs/src/main/resources/default_class_imports.txt diff --git a/configs/default_package_imports.txt b/props/configs/src/main/resources/default_package_imports.txt similarity index 100% rename from configs/default_package_imports.txt rename to props/configs/src/main/resources/default_package_imports.txt diff --git a/configs/default_static_imports.txt b/props/configs/src/main/resources/default_static_imports.txt similarity index 100% rename from configs/default_static_imports.txt rename to props/configs/src/main/resources/default_static_imports.txt diff --git a/configs/dh-defaults.prop b/props/configs/src/main/resources/dh-defaults.prop similarity index 95% rename from configs/dh-defaults.prop rename to props/configs/src/main/resources/dh-defaults.prop index 18478f3b255..e954f4e1632 100644 --- a/configs/dh-defaults.prop +++ b/props/configs/src/main/resources/dh-defaults.prop @@ -30,9 +30,6 @@ TrackedFileHandleFactory.maxOpenFiles=1024 Calendar.default=USNYSE Calendar.importPath=/default_calendar_imports.txt -Plot.theme.default=LIGHT -Plot.theme.internalPath=/configs/chartthemes - NIO.wireLagClock.native=false WorkerPythonEnvironment.defaultScriptPath= diff --git a/props/test-configs/build.gradle b/props/test-configs/build.gradle new file mode 100644 index 00000000000..c10561e87c7 --- /dev/null +++ b/props/test-configs/build.gradle @@ -0,0 +1,11 @@ +plugins { + id 'io.deephaven.project.register' +} + +configurations { + implementation.extendsFrom fishConfig +} + +dependencies { + Classpaths.inheritAutoService(project) +} diff --git a/props/test-configs/gradle.properties b/props/test-configs/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/props/test-configs/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/fishconfig-local/src/main/java/io/deephaven/fishconfig/PropertyInputStreamLoaderResourcesOnly.java b/props/test-configs/src/main/java/io/deephaven/fishconfig/PropertyInputStreamLoaderResourcesOnly.java similarity index 100% rename from fishconfig-local/src/main/java/io/deephaven/fishconfig/PropertyInputStreamLoaderResourcesOnly.java rename to props/test-configs/src/main/java/io/deephaven/fishconfig/PropertyInputStreamLoaderResourcesOnly.java diff --git a/test-configs/dh-tests.prop b/props/test-configs/src/main/resources/dh-tests.prop similarity index 97% rename from test-configs/dh-tests.prop rename to props/test-configs/src/main/resources/dh-tests.prop index 061bf81364f..29e62e6bedd 100644 --- a/test-configs/dh-tests.prop +++ b/props/test-configs/src/main/resources/dh-tests.prop @@ -41,9 +41,6 @@ TableDataRefreshService.tableSizeRefreshMillis=1000 Calendar.default=USNYSE Calendar.importPath=/default_calendar_imports.txt -Plot.theme.default=LIGHT -Plot.theme.internalPath=/configs/chartthemes - columnsFile=DeephavenColumns.xml NIO.wireLagClock.native=false diff --git a/proto/build.gradle b/proto/build.gradle new file mode 100644 index 00000000000..a9bb1568cd2 --- /dev/null +++ b/proto/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'io.deephaven.project.register' +} diff --git a/proto/gradle.properties b/proto/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/proto/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/proto/proto-backplane-grpc-flight/build.gradle b/proto/proto-backplane-grpc-flight/build.gradle index ca3966977a4..56323e01b50 100644 --- a/proto/proto-backplane-grpc-flight/build.gradle +++ b/proto/proto-backplane-grpc-flight/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven proto-backplane-grpc-flight' @@ -8,5 +9,3 @@ dependencies { api project(':proto:proto-backplane-grpc') Classpaths.inheritArrow(project, 'flight-core', 'api') } - -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/proto/proto-backplane-grpc-flight/gradle.properties b/proto/proto-backplane-grpc-flight/gradle.properties index 9a835bc801b..9e8588f2620 100644 --- a/proto/proto-backplane-grpc-flight/gradle.properties +++ b/proto/proto-backplane-grpc-flight/gradle.properties @@ -1 +1,2 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC languageLevel=8 diff --git a/proto/proto-backplane-grpc/build.gradle b/proto/proto-backplane-grpc/build.gradle index 8a97e6fc7e1..51e55bed1f6 100644 --- a/proto/proto-backplane-grpc/build.gradle +++ b/proto/proto-backplane-grpc/build.gradle @@ -1,6 +1,7 @@ plugins { id 'com.bmuschko.docker-remote-api' id 'java-library' + id 'io.deephaven.project.register' } evaluationDependsOn Docker.registryProject('protoc-base') @@ -89,5 +90,3 @@ spotless { ) } } - -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/proto/proto-backplane-grpc/gradle.properties b/proto/proto-backplane-grpc/gradle.properties index 9a835bc801b..9e8588f2620 100644 --- a/proto/proto-backplane-grpc/gradle.properties +++ b/proto/proto-backplane-grpc/gradle.properties @@ -1 +1,2 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC languageLevel=8 diff --git a/proto/raw-js-openapi/build.gradle b/proto/raw-js-openapi/build.gradle index cde0fdb7f33..817ab0414c5 100644 --- a/proto/raw-js-openapi/build.gradle +++ b/proto/raw-js-openapi/build.gradle @@ -1,5 +1,6 @@ plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } evaluationDependsOn ':proto' diff --git a/proto/raw-js-openapi/gradle.properties b/proto/raw-js-openapi/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/proto/raw-js-openapi/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/py/deephaven-wheel/build.gradle b/py/deephaven-wheel/build.gradle index a4cf69794f3..45b9389c13c 100644 --- a/py/deephaven-wheel/build.gradle +++ b/py/deephaven-wheel/build.gradle @@ -1,5 +1,6 @@ plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } def buildWheel = Docker.buildPyWheel(project, 'buildWheel', 'deephaven/deephaven-wheel', "${project(':Integrations').projectDir}/python") diff --git a/py/deephaven-wheel/gradle.properties b/py/deephaven-wheel/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/py/deephaven-wheel/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/py/deephaven2-wheel/build.gradle b/py/deephaven2-wheel/build.gradle index 4258425d444..9239418dc73 100644 --- a/py/deephaven2-wheel/build.gradle +++ b/py/deephaven2-wheel/build.gradle @@ -1,5 +1,6 @@ plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } def buildWheel = Docker.buildPyWheel(project, 'buildWheel', 'deephaven/deephaven2-wheel', "${rootDir}/pyintegration") diff --git a/py/deephaven2-wheel/gradle.properties b/py/deephaven2-wheel/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/py/deephaven2-wheel/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/py/jpy-config/build.gradle b/py/jpy-config/build.gradle index 979a78cd1ec..a9bb1568cd2 100644 --- a/py/jpy-config/build.gradle +++ b/py/jpy-config/build.gradle @@ -1 +1,3 @@ -// empty on purpose - shouldn't have any dependencies +plugins { + id 'io.deephaven.project.register' +} diff --git a/py/jpy-config/gradle.properties b/py/jpy-config/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/py/jpy-config/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/py/jpy-ext/build.gradle b/py/jpy-ext/build.gradle index 761d837be49..52527c014eb 100644 --- a/py/jpy-ext/build.gradle +++ b/py/jpy-ext/build.gradle @@ -10,6 +10,10 @@ * area as minimal as possible. */ +plugins { + id 'io.deephaven.project.register' +} + configurations { compile.extendsFrom fishBase } diff --git a/py/jpy-ext/gradle.properties b/py/jpy-ext/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/py/jpy-ext/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/py/jpy-integration/build.gradle b/py/jpy-integration/build.gradle index cd75826749e..50bbf24f8cf 100644 --- a/py/jpy-integration/build.gradle +++ b/py/jpy-integration/build.gradle @@ -1,9 +1,7 @@ -import org.gradle.internal.jvm.Jvm - plugins { - id 'java' - id 'idea' id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' + id 'idea' } evaluationDependsOn ':deephaven-jpy' diff --git a/py/jpy-integration/gradle.properties b/py/jpy-integration/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/py/jpy-integration/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/py/jpy/build.gradle b/py/jpy/build.gradle new file mode 100644 index 00000000000..cbfa1034e0b --- /dev/null +++ b/py/jpy/build.gradle @@ -0,0 +1,33 @@ +plugins { + id 'io.deephaven.project.register' + id 'com.bmuschko.docker-remote-api' +} + +evaluationDependsOn Docker.registryProject('python-dev-base') + +test { + onlyIf { false } // don't run tests, it depends on python assets, which we aren't building ATM + exclude "**/*" // make sure intellij doesn't try to use this disabled test class +} + +dependencies { + testCompile 'junit:junit:4.13.2' // but we still want tests to compile +} + +// For DH Community, we need to currently move fast, and will prefer to make edits directly in py/jpy. +// These can be backported to jpy proper in the future if necessary. + +Docker.registerDockerTask(project, 'buildWheel') { + copyIn { + from(project.projectDir) { + exclude 'build' + } + } + parentContainers = [ Docker.registryTask(project, 'python-dev-base') ] + buildArgs = [ DEEPHAVEN_VERSION: project.version.toString() ] + imageName = 'deephaven/deephaven-jpy-wheel:local-build' + containerOutPath = '/usr/src/app/dist' + copyOut { + into 'build/deephaven-jpy-wheel' + } +} \ No newline at end of file diff --git a/py/jpy/gradle.properties b/py/jpy/gradle.properties new file mode 100644 index 00000000000..1c0cc01b600 --- /dev/null +++ b/py/jpy/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_EXTERNAL diff --git a/pyclient/build.gradle b/pyclient/build.gradle index 2acf73d1fa5..c365ce1a75b 100644 --- a/pyclient/build.gradle +++ b/pyclient/build.gradle @@ -7,6 +7,7 @@ import io.deephaven.tools.docker.WaitForHealthyContainer plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } evaluationDependsOn Docker.registryProject('python') diff --git a/pyclient/gradle.properties b/pyclient/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/pyclient/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/pyintegration/deephaven2/_init/start_jvm.py b/pyintegration/deephaven2/_init/start_jvm.py index cd178eac460..fcb40876b82 100644 --- a/pyintegration/deephaven2/_init/start_jvm.py +++ b/pyintegration/deephaven2/_init/start_jvm.py @@ -148,8 +148,8 @@ def start_jvm(devroot=None, java_version_file=open("/usr/deephaven/latest/etc/JAVA_VERSION", "r") java_version=java_version_file.read() java_version_file.close() - elif path.exists("{}/projects/configs/build/resources/main/JAVA_VERSION".format(devroot)): - java_version_file=open("{}/projects/configs/build/resources/main/JAVA_VERSION".format(devroot), "r") + elif path.exists("{}/props/configs/build/resources/main/JAVA_VERSION".format(devroot)): + java_version_file=open("{}/props/configs/build/resources/main/JAVA_VERSION".format(devroot), "r") java_version=java_version_file.read() java_version_file.close() elif os.environ.get('JAVA_VERSION') is not None: diff --git a/python-engine-test/build.gradle b/python-engine-test/build.gradle index afebad1cbf9..94471dd2f93 100644 --- a/python-engine-test/build.gradle +++ b/python-engine-test/build.gradle @@ -1,5 +1,6 @@ plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } evaluationDependsOn ':docker-runtime-base' // runtimeBase diff --git a/python-engine-test/gradle.properties b/python-engine-test/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/python-engine-test/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/qst/build.gradle b/qst/build.gradle index 7e250ef2660..18fea5d13ad 100644 --- a/qst/build.gradle +++ b/qst/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven Query Syntax Tree POJOs' @@ -17,5 +18,3 @@ dependencies { test { useJUnitPlatform() } - -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/qst/gradle.properties b/qst/gradle.properties index 9a835bc801b..9e8588f2620 100644 --- a/qst/gradle.properties +++ b/qst/gradle.properties @@ -1 +1,2 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC languageLevel=8 diff --git a/qst/graphviz/build.gradle b/qst/graphviz/build.gradle index 6a7ca163269..11241fd9d49 100644 --- a/qst/graphviz/build.gradle +++ b/qst/graphviz/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'java' id 'application' + id 'io.deephaven.project.register' } description = "Converts a list of QSTs into other formats." diff --git a/qst/graphviz/gradle.properties b/qst/graphviz/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/qst/graphviz/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/replication/reflective/build.gradle b/replication/reflective/build.gradle index efa6bb75957..5bca45d1d3d 100644 --- a/replication/reflective/build.gradle +++ b/replication/reflective/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Reflective Replicators: Source code generators and replicators with compile-time dependencies on their inputs' diff --git a/replication/reflective/gradle.properties b/replication/reflective/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/replication/reflective/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/replication/static/build.gradle b/replication/static/build.gradle index c34951f78c9..6d996feb0e5 100644 --- a/replication/static/build.gradle +++ b/replication/static/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Static Replicators: Source code generators and replicators with no compile-time dependency on their inputs' diff --git a/replication/static/gradle.properties b/replication/static/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/replication/static/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/replication/util/build.gradle b/replication/util/build.gradle index 954d2f168fa..b42b4595ed7 100644 --- a/replication/util/build.gradle +++ b/replication/util/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description 'Replication Tools: Utilities for source code generation and replication' diff --git a/replication/util/gradle.properties b/replication/util/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/replication/util/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/server/build.gradle b/server/build.gradle index 7a42449b9fc..b0db8d55cd2 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } dependencies { @@ -16,7 +17,9 @@ dependencies { implementation project(':open-api-lang-tools') implementation project(':log-factory') Classpaths.inheritSlf4j(project, 'jul-to-slf4j', 'implementation') - implementation project(':application-mode') + api(project(':application-mode')) { + because 'downstream dagger compile, see deephaven-core#1722' + } implementation 'com.github.f4b6a3:uuid-creator:3.6.0' api(project(':Configuration')) { diff --git a/server/gradle.properties b/server/gradle.properties index a716ab2f16d..fe5bdb355f2 100644 --- a/server/gradle.properties +++ b/server/gradle.properties @@ -1,2 +1,3 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC extensions.classgraph.enabled=false extensions.suanshu.enabled=false diff --git a/server/jetty/build.gradle b/server/jetty/build.gradle index da85a175e2e..f04a535a776 100644 --- a/server/jetty/build.gradle +++ b/server/jetty/build.gradle @@ -1,5 +1,6 @@ plugins { id 'application' + id 'io.deephaven.project.register' } configurations { @@ -8,7 +9,6 @@ configurations { dependencies { implementation project(':server') - implementation project(':application-mode') Classpaths.inheritDagger(project) Classpaths.inheritDagger(project, /* test */ true) diff --git a/server/jetty/gradle.properties b/server/jetty/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/server/jetty/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/server/netty/build.gradle b/server/netty/build.gradle index 16171639f8b..fedfc452d48 100644 --- a/server/netty/build.gradle +++ b/server/netty/build.gradle @@ -1,6 +1,7 @@ plugins { id 'java-library' id 'application' + id 'io.deephaven.project.register' } configurations { @@ -9,7 +10,6 @@ configurations { dependencies { implementation project(':server') - implementation project(':application-mode') Classpaths.inheritDagger(project) Classpaths.inheritDagger(project, /* test */ true) diff --git a/server/netty/gradle.properties b/server/netty/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/server/netty/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/server/test/build.gradle b/server/test/build.gradle index 6549b17f057..d8030c39a8d 100644 --- a/server/test/build.gradle +++ b/server/test/build.gradle @@ -1,7 +1,9 @@ // Utility project for testing server implementations with vanilla flight client plugins { id 'java-library' + id 'io.deephaven.project.register' } + dependencies { implementation project(':Base') implementation project(':engine-table')//Table, LTM, TableDiff, TableTools, ScriptSession diff --git a/server/test/gradle.properties b/server/test/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/server/test/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/settings.gradle b/settings.gradle index 24719b5d056..6d29b87d412 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,8 +6,6 @@ gradle.ext.buildStartTime = new Date() rootProject.name='Deephaven Community Core' -String[] bins = ['configs', 'test-configs' ] - String[] mods = [ 'Util', 'Numerics', @@ -37,7 +35,6 @@ String[] webMods = [ 'open-api-lang-parser', // a javacc generated general-purpose language parser. 'open-api-lang-tools', // language processing tools that we want to be accessible to many modules 'open-api-shared-fu', // general purpose tools and dtos for both client and server - 'open-api-shared-rpc', // contains the open api rpc interfaces, and all relevant dependencies 'open-api-shared-ide', // ide-related dto and configuration objects for both client and server ] @@ -51,7 +48,6 @@ Map pyMods = [ ] // Include our modules -include bins include webMods include mods @@ -61,10 +57,17 @@ pyMods.each { project(":$name").projectDir = file(dir) } +include(':configs') +project(':configs').projectDir = file('props/configs') + +include(':test-configs') +project(':test-configs').projectDir = file('props/test-configs') + +include 'combined-javadoc' + include 'grpc-java:grpc-servlet-jakarta' include 'grpc-java:grpc-servlet-websocket-jakarta' -include 'fishconfig-local' include 'DHProcess' include 'proto:proto-backplane-grpc' include 'proto:proto-backplane-grpc-flight' @@ -281,7 +284,7 @@ include(':docker-server-slim') project(':docker-server-slim').projectDir = file('docker/server-slim') file("${rootDir}/docker/registry").list().each { name -> - if (file("${rootDir}/docker/registry/${name}/gradle.properties").exists()) { + if (file("${rootDir}/docker/registry/${name}/build.gradle").exists()) { include(":docker-${name}") project(":docker-${name}").projectDir = file("${rootDir}/docker/registry/${name}") } @@ -305,22 +308,6 @@ mods.each { source.projectDir = sourceDir } -// "bin modules" are projects with a single directory filled with static resources we put into jars. -// In order to use "separate modules per sourceset" option in IntelliJ, we must give these projects -// a different directory than their resource directory to use as the project root. -// We'll use "$rootDir/projects/bin" for the project root of the :bin project, -// with $rootDir/bin as the resource root, so IntelliJ doesn't blow up (a resource dir cannot contain project root dir). -bins.each { - String mod-> - def source = project(":$mod") - File sourceDir = new File(root, 'projects') - source.projectDir = new File(sourceDir, mod) - File buildscript = new File(source.projectDir, "${mod}.gradle".toString()) - if (buildscript.file) { - source.buildFileName = buildscript.name - } -} - Closure configureWebModule = { ProjectDescriptor p -> p.projectDir = file(p.name.replace('web-', "web$File.separator").replace('open-api-', "open-api$File.separator")) diff --git a/sphinx/gradle.properties b/sphinx/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/sphinx/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/sphinx/sphinx.gradle b/sphinx/sphinx.gradle index 99f45c3342d..592b97ef300 100644 --- a/sphinx/sphinx.gradle +++ b/sphinx/sphinx.gradle @@ -2,6 +2,7 @@ import com.bmuschko.gradle.docker.tasks.image.Dockerfile plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } description = 'Generates docs for the python libraries provided in Deephaven Core' diff --git a/table-api/build.gradle b/table-api/build.gradle index 1eb117e4a1d..4233405750a 100644 --- a/table-api/build.gradle +++ b/table-api/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-library' + id 'io.deephaven.project.register' } description = 'The Deephaven table operations API' @@ -17,5 +18,3 @@ dependencies { test { useJUnitPlatform() } - -apply plugin: 'io.deephaven.java-publishing-conventions' diff --git a/table-api/gradle.properties b/table-api/gradle.properties index 9a835bc801b..9e8588f2620 100644 --- a/table-api/gradle.properties +++ b/table-api/gradle.properties @@ -1 +1,2 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC languageLevel=8 diff --git a/web/client-api/client-api.gradle b/web/client-api/client-api.gradle index 8f5b0fba99b..77aadca763b 100644 --- a/web/client-api/client-api.gradle +++ b/web/client-api/client-api.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + apply from: "$rootDir/gradle/web-client.gradle" dependencies { diff --git a/web/client-api/gradle.properties b/web/client-api/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/web/client-api/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/web/client-backplane/client-backplane.gradle b/web/client-backplane/client-backplane.gradle index 6dd68cb78b2..6731349a18a 100644 --- a/web/client-backplane/client-backplane.gradle +++ b/web/client-backplane/client-backplane.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + evaluationDependsOn ':proto' evaluationDependsOn ':proto:proto-backplane-grpc' diff --git a/web/client-backplane/gradle.properties b/web/client-backplane/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/web/client-backplane/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/web/client-ide/client-ide.gradle b/web/client-ide/client-ide.gradle index 07e70372112..44990698850 100644 --- a/web/client-ide/client-ide.gradle +++ b/web/client-ide/client-ide.gradle @@ -1,5 +1,6 @@ plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } evaluationDependsOn Docker.registryProject('nginx-base') @@ -35,3 +36,5 @@ artifacts { builtBy gwtOutput } } + +project.tasks.getByName('quick').dependsOn project.tasks.withType(de.esoco.gwt.gradle.task.GwtCompileTask) diff --git a/web/client-ide/gradle.properties b/web/client-ide/gradle.properties new file mode 100644 index 00000000000..eeac3e65888 --- /dev/null +++ b/web/client-ide/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_LOCAL diff --git a/web/client-ui/client-ui.gradle b/web/client-ui/client-ui.gradle index 467fedb0ad2..f1b81f0143b 100644 --- a/web/client-ui/client-ui.gradle +++ b/web/client-ui/client-ui.gradle @@ -1,5 +1,6 @@ plugins { id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' } evaluationDependsOn Docker.registryProject('node') diff --git a/web/client-ui/gradle.properties b/web/client-ui/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/web/client-ui/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/web/gradle.properties b/web/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/web/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/web/shared-beans/gradle.properties b/web/shared-beans/gradle.properties new file mode 100644 index 00000000000..c186bbfdde1 --- /dev/null +++ b/web/shared-beans/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=JAVA_PUBLIC diff --git a/web/shared-beans/shared-beans.gradle b/web/shared-beans/shared-beans.gradle index f256865f184..72f937808ce 100644 --- a/web/shared-beans/shared-beans.gradle +++ b/web/shared-beans/shared-beans.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + apply from: "$rootDir/gradle/web-common.gradle" GwtTools.gwtLib project diff --git a/web/web.gradle b/web/web.gradle index 4098cc3e984..e504d0565f8 100644 --- a/web/web.gradle +++ b/web/web.gradle @@ -1,3 +1,7 @@ +plugins { + id 'io.deephaven.project.register' +} + configurations { js jsJar { @@ -5,8 +9,6 @@ configurations { } } -archivesBaseName = "deephaven-web" - dependencies { js project(path: ':web-client-ui', configuration: 'js') js project(path: ':web-client-ide', configuration: 'js')