Browse Source

Update Gradle wrapper to 8.13 (#122421) (#123873)

* Fix Gradle Deprecation warning as declaring an is- property with a Boolean type has been deprecated.
* Make use of new layout.settingsFolder api to address some cross project references
* Fix buildParams snapshot check for multiprojet projects

(cherry picked from commit e19b2264afb3f763933b902cad8ce2e09a0ad9e9)

# Conflicts:
#	build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BaseInternalPluginBuildPlugin.java
#	docs/build.gradle
#	qa/lucene-index-compatibility/build.gradle
#	x-pack/qa/multi-project/core-rest-tests-with-multiple-projects/build.gradle
#	x-pack/qa/multi-project/xpack-rest-tests-with-multiple-projects/build.gradle
Rene Groeschke 7 months ago
parent
commit
86a923a6e7
64 changed files with 102 additions and 101 deletions
  1. 2 2
      build-tools-internal/gradle/wrapper/gradle-wrapper.properties
  2. 1 1
      build-tools-internal/src/integTest/resources/org/elasticsearch/gradle/internal/fake_git/remote/distribution/archives/build.gradle
  3. 1 1
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BaseInternalPluginBuildPlugin.java
  4. 1 1
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchJavaBasePlugin.java
  5. 2 2
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPlugin.java
  6. 1 1
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalTestClustersPlugin.java
  7. 1 1
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/docker/DockerSupportPlugin.java
  8. 3 3
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/BuildParameterExtension.java
  9. 6 6
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/DefaultBuildParameterExtension.java
  10. 1 1
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/MutedTestPlugin.java
  11. 1 1
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/testfixtures/TestFixturesDeployPlugin.java
  12. 1 1
      build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/testfixtures/TestFixturesPlugin.java
  13. 1 1
      build-tools-internal/src/main/resources/minimumGradleVersion
  14. 1 1
      client/rest/build.gradle
  15. 1 1
      client/sniffer/build.gradle
  16. 1 1
      client/test/build.gradle
  17. 2 2
      distribution/archives/build.gradle
  18. 3 3
      distribution/build.gradle
  19. 3 3
      distribution/docker/build.gradle
  20. 3 3
      distribution/packages/build.gradle
  21. 2 2
      docs/build.gradle
  22. 3 0
      gradle/build.versions.toml
  23. 3 3
      gradle/verification-metadata.xml
  24. BIN
      gradle/wrapper/gradle-wrapper.jar
  25. 2 2
      gradle/wrapper/gradle-wrapper.properties
  26. 1 1
      gradlew
  27. 1 1
      libs/h3/build.gradle
  28. 1 1
      libs/tdigest/build.gradle
  29. 1 1
      modules/aggregations/build.gradle
  30. 1 1
      modules/data-streams/build.gradle
  31. 1 1
      modules/legacy-geo/build.gradle
  32. 1 1
      plugins/analysis-icu/build.gradle
  33. 2 4
      plugins/build.gradle
  34. 2 2
      plugins/examples/custom-processor/build.gradle
  35. 2 2
      plugins/examples/custom-settings/build.gradle
  36. 2 2
      plugins/examples/custom-significance-heuristic/build.gradle
  37. 2 2
      plugins/examples/custom-suggester/build.gradle
  38. 2 2
      plugins/examples/gradle/wrapper/gradle-wrapper.properties
  39. 2 2
      plugins/examples/painless-whitelist/build.gradle
  40. 2 2
      plugins/examples/rescore/build.gradle
  41. 2 2
      plugins/examples/rest-handler/build.gradle
  42. 2 2
      plugins/examples/script-expert-scoring/build.gradle
  43. 2 2
      plugins/examples/security-authorization-engine/build.gradle
  44. 2 2
      qa/system-indices/build.gradle
  45. 1 1
      qa/verify-version-constants/build.gradle
  46. 1 1
      rest-api-spec/build.gradle
  47. 1 1
      server/build.gradle
  48. 1 1
      test/external-modules/apm-integration/build.gradle
  49. 2 2
      test/external-modules/build.gradle
  50. 1 1
      test/external-modules/delayed-aggs/build.gradle
  51. 1 1
      test/external-modules/die-with-dignity/build.gradle
  52. 1 1
      test/external-modules/error-query/build.gradle
  53. 1 1
      test/external-modules/esql-heap-attack/build.gradle
  54. 1 1
      test/external-modules/jvm-crash/build.gradle
  55. 2 2
      x-pack/build.gradle
  56. 1 1
      x-pack/plugin/analytics/build.gradle
  57. 1 1
      x-pack/plugin/build.gradle
  58. 3 3
      x-pack/plugin/core/build.gradle
  59. 1 1
      x-pack/plugin/eql/build.gradle
  60. 2 2
      x-pack/plugin/esql/build.gradle
  61. 1 1
      x-pack/plugin/mapper-constant-keyword/build.gradle
  62. 1 1
      x-pack/plugin/ml/build.gradle
  63. 1 1
      x-pack/plugin/spatial/build.gradle
  64. 1 1
      x-pack/qa/core-rest-tests-with-security/build.gradle

+ 2 - 2
build-tools-internal/gradle/wrapper/gradle-wrapper.properties

@@ -1,7 +1,7 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionSha256Sum=296742a352f0b20ec14b143fb684965ad66086c7810b7b255dee216670716175
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-all.zip
+distributionSha256Sum=fba8464465835e74f7270bbf43d6d8a8d7709ab0a43ce1aa3323f73e9aa0c612
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME

+ 1 - 1
build-tools-internal/src/integTest/resources/org/elasticsearch/gradle/internal/fake_git/remote/distribution/archives/build.gradle

@@ -34,7 +34,7 @@ subprojects {
 }
 
 def calculateBranchVersion() {
-    File f = rootProject.file(".git/refs/heads/origin")
+    File f = layout.settingsDirectory.file(".git/refs/heads/origin").asFile
     def branchName = f.list()?.first().trim()
     return branchName + ".1"
 

+ 1 - 1
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BaseInternalPluginBuildPlugin.java

@@ -39,7 +39,7 @@ public class BaseInternalPluginBuildPlugin implements Plugin<Project> {
         project.getPluginManager().apply(JarHellPrecommitPlugin.class);
         project.getPluginManager().apply(ElasticsearchJavaPlugin.class);
         project.getPluginManager().apply(HistoricalFeaturesMetadataPlugin.class);
-        boolean isCi = project.getRootProject().getExtensions().getByType(BuildParameterExtension.class).isCi();
+        boolean isCi = project.getRootProject().getExtensions().getByType(BuildParameterExtension.class).getCi();
         // Clear default dependencies added by public PluginBuildPlugin as we add our
         // own project dependencies for internal builds
         // TODO remove once we removed default dependencies from PluginBuildPlugin

+ 1 - 1
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchJavaBasePlugin.java

@@ -161,7 +161,7 @@ public class ElasticsearchJavaBasePlugin implements Plugin<Project> {
             compileTask.getConventionMapping().map("sourceCompatibility", () -> java.getSourceCompatibility().toString());
             compileTask.getConventionMapping().map("targetCompatibility", () -> java.getTargetCompatibility().toString());
             compileOptions.getRelease().set(releaseVersionProviderFromCompileTask(project, compileTask));
-            compileOptions.setIncremental(buildParams.isCi() == false);
+            compileOptions.setIncremental(buildParams.getCi() == false);
         });
         // also apply release flag to groovy, which is used in build-tools
         project.getTasks().withType(GroovyCompile.class).configureEach(compileTask -> {

+ 2 - 2
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPlugin.java

@@ -72,7 +72,7 @@ public class InternalDistributionBwcSetupPlugin implements Plugin<Project> {
         project.getPlugins().apply(JvmToolchainsPlugin.class);
         toolChainService = project.getExtensions().getByType(JavaToolchainService.class);
         var buildParams = loadBuildParams(project).get();
-        Boolean isCi = buildParams.isCi();
+        Boolean isCi = buildParams.getCi();
         buildParams.getBwcVersions().forPreviousUnreleased((BwcVersions.UnreleasedVersionInfo unreleasedVersion) -> {
             configureBwcProject(
                 project.project(unreleasedVersion.gradleProjectPath()),
@@ -346,7 +346,7 @@ public class InternalDistributionBwcSetupPlugin implements Plugin<Project> {
             } else {
                 c.getOutputs().files(expectedOutputFile);
             }
-            c.getOutputs().doNotCacheIf("BWC distribution caching is disabled for local builds", task -> buildParams.isCi() == false);
+            c.getOutputs().doNotCacheIf("BWC distribution caching is disabled for local builds", task -> buildParams.getCi() == false);
             c.getArgs().add("-p");
             c.getArgs().add(projectPath);
             c.getArgs().add(assembleTaskName);

+ 1 - 1
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalTestClustersPlugin.java

@@ -30,7 +30,7 @@ public class InternalTestClustersPlugin implements Plugin<Project> {
         TestClustersPlugin testClustersPlugin = project.getPlugins().apply(TestClustersPlugin.class);
         testClustersPlugin.setRuntimeJava(buildParams.getRuntimeJavaHome());
         testClustersPlugin.setIsReleasedVersion(
-            version -> (version.equals(VersionProperties.getElasticsearchVersion()) && buildParams.isSnapshotBuild() == false)
+            version -> (version.equals(VersionProperties.getElasticsearchVersion()) && buildParams.getSnapshotBuild() == false)
                 || buildParams.getBwcVersions().unreleasedInfo(version) == null
         );
 

+ 1 - 1
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/docker/DockerSupportPlugin.java

@@ -40,7 +40,7 @@ public class DockerSupportPlugin implements Plugin<Project> {
             .getSharedServices()
             .registerIfAbsent(DOCKER_SUPPORT_SERVICE_NAME, DockerSupportService.class, spec -> spec.parameters(params -> {
                 params.setExclusionsFile(new File(project.getRootDir(), DOCKER_ON_LINUX_EXCLUSIONS_FILE));
-                params.getIsCI().set(buildParams.isCi());
+                params.getIsCI().set(buildParams.getCi());
             }));
 
         // Ensure that if we are trying to run any DockerBuildTask tasks, we assert an available Docker installation exists

+ 3 - 3
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/BuildParameterExtension.java

@@ -54,11 +54,11 @@ public interface BuildParameterExtension {
 
     String getTestSeed();
 
-    Boolean isCi();
+    Boolean getCi();
 
     Integer getDefaultParallel();
 
-    Boolean isSnapshotBuild();
+    Boolean getSnapshotBuild();
 
     BwcVersions getBwcVersions();
 
@@ -66,5 +66,5 @@ public interface BuildParameterExtension {
 
     Random getRandom();
 
-    Boolean isGraalVmRuntime();
+    Boolean getGraalVmRuntime();
 }

+ 6 - 6
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/info/DefaultBuildParameterExtension.java

@@ -42,7 +42,7 @@ public abstract class DefaultBuildParameterExtension implements BuildParameterEx
     private final String testSeed;
     private final Boolean isCi;
     private final Integer defaultParallel;
-    private final Boolean isSnapshotBuild;
+    private final Boolean snapshotBuild;
 
     // not final for testing
     private Provider<BwcVersions> bwcVersions;
@@ -81,7 +81,7 @@ public abstract class DefaultBuildParameterExtension implements BuildParameterEx
         this.testSeed = testSeed;
         this.isCi = isCi;
         this.defaultParallel = defaultParallel;
-        this.isSnapshotBuild = isSnapshotBuild;
+        this.snapshotBuild = isSnapshotBuild;
         this.bwcVersions = cache(providers, bwcVersions);
         this.gitOrigin = gitOrigin;
     }
@@ -183,7 +183,7 @@ public abstract class DefaultBuildParameterExtension implements BuildParameterEx
     }
 
     @Override
-    public Boolean isCi() {
+    public Boolean getCi() {
         return isCi;
     }
 
@@ -193,8 +193,8 @@ public abstract class DefaultBuildParameterExtension implements BuildParameterEx
     }
 
     @Override
-    public Boolean isSnapshotBuild() {
-        return isSnapshotBuild;
+    public Boolean getSnapshotBuild() {
+        return snapshotBuild;
     }
 
     @Override
@@ -208,7 +208,7 @@ public abstract class DefaultBuildParameterExtension implements BuildParameterEx
     }
 
     @Override
-    public Boolean isGraalVmRuntime() {
+    public Boolean getGraalVmRuntime() {
         return runtimeJavaDetails.get().toLowerCase().contains("graalvm");
     }
 

+ 1 - 1
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/MutedTestPlugin.java

@@ -51,7 +51,7 @@ public class MutedTestPlugin implements Plugin<Project> {
                 }
 
                 // Don't fail when all tests are ignored when running in CI
-                filter.setFailOnNoMatchingTests(buildParams.isCi() == false);
+                filter.setFailOnNoMatchingTests(buildParams.getCi() == false);
             });
         });
     }

+ 1 - 1
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/testfixtures/TestFixturesDeployPlugin.java

@@ -33,7 +33,7 @@ public class TestFixturesDeployPlugin implements Plugin<Project> {
         var buildParams = loadBuildParams(project).get();
         NamedDomainObjectContainer<TestFixtureDeployment> fixtures = project.container(TestFixtureDeployment.class);
         project.getExtensions().add("dockerFixtures", fixtures);
-        registerDeployTaskPerFixture(project, fixtures, buildParams.isCi());
+        registerDeployTaskPerFixture(project, fixtures, buildParams.getCi());
         project.getTasks().register(DEPLOY_FIXTURE_TASK_NAME, task -> task.dependsOn(project.getTasks().withType(DockerBuildTask.class)));
     }
 

+ 1 - 1
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/testfixtures/TestFixturesPlugin.java

@@ -131,7 +131,7 @@ public class TestFixturesPlugin implements Plugin<Project> {
 
         tasks.withType(ComposeUp.class).named("composeUp").configure(t -> {
             // Avoid running docker-compose tasks in parallel in CI due to some issues on certain Linux distributions
-            if (buildParams.isCi()) {
+            if (buildParams.getCi()) {
                 t.usesService(dockerComposeThrottle);
                 t.usesService(dockerSupport);
             }

+ 1 - 1
build-tools-internal/src/main/resources/minimumGradleVersion

@@ -1 +1 @@
-8.12.1
+8.13

+ 1 - 1
client/rest/build.gradle

@@ -37,7 +37,7 @@ base {
 
 // LLRC is licenses under Apache 2.0
 projectLicenses.set(['The Apache Software License, Version 2.0': providers.provider(() -> 'http://www.apache.org/licenses/LICENSE-2.0')])
-licenseFile.set(rootProject.file('licenses/APACHE-LICENSE-2.0.txt'))
+licenseFile.set(layout.getSettingsDirectory().file('licenses/APACHE-LICENSE-2.0.txt').asFile)
 
 dependencies {
   api "org.apache.httpcomponents:httpclient:${versions.httpclient}"

+ 1 - 1
client/sniffer/build.gradle

@@ -33,7 +33,7 @@ base {
 
 // rest client sniffer is licenses under Apache 2.0
 projectLicenses.set(['The Apache Software License, Version 2.0': providers.provider(() -> 'http://www.apache.org/licenses/LICENSE-2.0')])
-licenseFile.set(rootProject.file('licenses/APACHE-LICENSE-2.0.txt'))
+licenseFile.set(layout.getSettingsDirectory().file('licenses/APACHE-LICENSE-2.0.txt').asFile)
 
 dependencies {
   api project(":client:rest")

+ 1 - 1
client/test/build.gradle

@@ -19,7 +19,7 @@ group = "${group}.client.test"
 
 // rest client sniffer is licenses under Apache 2.0
 projectLicenses.set(['The Apache Software License, Version 2.0': providers.provider(() -> 'http://www.apache.org/licenses/LICENSE-2.0')])
-licenseFile.set(rootProject.file('licenses/APACHE-LICENSE-2.0.txt'))
+licenseFile.set(layout.getSettingsDirectory().file('licenses/APACHE-LICENSE-2.0.txt').asFile)
 
 dependencies {
   api "org.apache.httpcomponents:httpcore:${versions.httpcore}"

+ 2 - 2
distribution/archives/build.gradle

@@ -57,13 +57,13 @@ CopySpec archiveFiles(String distributionType, String os, String architecture, b
           pluginsDir.getParent()
         }
       }
-      from(rootProject.projectDir) {
+      from(layout.settingsDirectory.asFile) {
         filePermissions {
           unix(0644)
         }
         include 'README.asciidoc'
       }
-      from(rootProject.file('licenses')) {
+      from(layout.settingsDirectory.file('licenses').asFile) {
         include isTestDistro ? 'AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt' : 'ELASTIC-LICENSE-2.0.txt'
         filePermissions {
           unix(0644)

+ 3 - 3
distribution/build.gradle

@@ -377,7 +377,7 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
             exclude "**/platform/${excludePlatform}/**"
           }
         }
-        if (buildParams.isSnapshotBuild()) {
+        if (buildParams.getSnapshotBuild()) {
           from(buildExternalTestModulesTaskProvider)
         }
         if (project.path.startsWith(':distribution:packages')) {
@@ -518,9 +518,9 @@ subprojects {
 
     String licenseText
     if (isTestDistro) {
-      licenseText = rootProject.file('licenses/AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').getText('UTF-8')
+      licenseText = layout.settingsDirectory.file('licenses/AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile.getText('UTF-8')
     } else {
-      licenseText = rootProject.file('licenses/ELASTIC-LICENSE-2.0.txt').getText('UTF-8')
+      licenseText = layout.settingsDirectory.file('licenses/ELASTIC-LICENSE-2.0.txt').asFile.getText('UTF-8')
     }
     // license text needs to be indented with a single space
     licenseText = ' ' + licenseText.replace('\n', '\n ')

+ 3 - 3
distribution/docker/build.gradle

@@ -119,7 +119,7 @@ ext.expansions = { Architecture architecture, DockerBase base ->
   // the image. When developing the Docker images, it's very tedious to completely rebuild
   // an image for every single change. Therefore, outside of CI, we fix the
   // build time to midnight so that the Docker build cache is usable.
-  def buildDate = buildParams.isCi() ? buildParams.buildDate : buildParams.buildDate.truncatedTo(ChronoUnit.DAYS).toString()
+  def buildDate = buildParams.ci ? buildParams.buildDate : buildParams.buildDate.truncatedTo(ChronoUnit.DAYS).toString()
 
   return [
     'arch'               : architecture.classifier,
@@ -389,7 +389,7 @@ void addBuildDockerImageTask(Architecture architecture, DockerBase base) {
 
       dockerContext.fileProvider(transformTask.map { Sync task -> task.getDestinationDir() })
 
-      noCache = buildParams.isCi()
+      noCache = buildParams.ci
       tags = generateTags(base, architecture)
       platforms.add(architecture.dockerPlatform)
 
@@ -484,7 +484,7 @@ void addBuildEssDockerImageTask(Architecture architecture) {
 
       dockerContext.fileProvider(buildContextTask.map { it.getDestinationDir() })
 
-      noCache = buildParams.isCi()
+      noCache = buildParams.ci
       baseImages = []
       tags = generateTags(dockerBase, architecture)
       platforms.add(architecture.dockerPlatform)

+ 3 - 3
distribution/packages/build.gradle

@@ -44,7 +44,7 @@ import java.util.regex.Pattern
  */
 
 plugins {
-  id "com.netflix.nebula.ospackage-base" version "11.10.1"
+  alias(buildLibs.plugins.ospackage)
 }
 
 ['deb', 'rpm'].each { type ->
@@ -175,7 +175,7 @@ def commonPackageConfig(String type, String architecture) {
     } else {
       assert type == 'rpm'
       into('/usr/share/elasticsearch') {
-        from(rootProject.file('licenses')) {
+        from(layout.settingsDirectory.file('licenses').asFile) {
           include 'ELASTIC-LICENSE-2.0.txt'
           rename { 'LICENSE.txt' }
         }
@@ -301,7 +301,7 @@ ospackage {
   url = 'https://www.elastic.co/'
 
   // signing setup
-  if (project.hasProperty('signing.password') && buildParams.isSnapshotBuild() == false) {
+  if (project.hasProperty('signing.password') && buildParams.snapshotBuild == false) {
     signingKeyId = project.hasProperty('signing.keyId') ? project.property('signing.keyId') : 'D88E42B4'
     signingKeyPassphrase = project.property('signing.password')
     signingKeyRingFile = project.hasProperty('signing.secretKeyRingFile') ?

+ 2 - 2
docs/build.gradle

@@ -37,7 +37,7 @@ ext.docsFileTree = fileTree(projectDir) {
 }
 
 tasks.named("yamlRestTest") {
-  if (buildParams.isSnapshotBuild() == false) {
+  if (buildParams.snapshotBuild == false) {
     // LOOKUP is not available in snapshots
     systemProperty 'tests.rest.blacklist', [
       "reference/esql/processing-commands/lookup/esql-lookup-example"
@@ -82,7 +82,7 @@ testClusters.matching { it.name == "yamlRestTest"}.configureEach {
     setting 'xpack.license.self_generated.type', 'trial'
     setting 'indices.lifecycle.history_index_enabled', 'false'
     keystorePassword 'keystore-password'
-    if (buildParams.isSnapshotBuild() == false) {
+    if (buildParams.snapshotBuild == false) {
       requiresFeature 'es.failure_store_feature_flag_enabled', new Version(8, 12, 0)
     }
   }

+ 3 - 0
gradle/build.versions.toml

@@ -47,3 +47,6 @@ spock-platform = { group = "org.spockframework", name="spock-bom", version.ref="
 spotless-plugin = "com.diffplug.spotless:spotless-plugin-gradle:6.25.0"
 wiremock = "com.github.tomakehurst:wiremock-jre8-standalone:2.23.2"
 xmlunit-core = "org.xmlunit:xmlunit-core:2.8.2"
+
+[plugins]
+ospackage = { id = "com.netflix.nebula.ospackage-base", version = "11.11.1" }

+ 3 - 3
gradle/verification-metadata.xml

@@ -944,9 +944,9 @@
             <sha256 value="d694edd7bae3bc1a8e0dae2f5a22c479ff04d6b9bfcb0ab751a42f02e02d2100" origin="Generated by Gradle"/>
          </artifact>
       </component>
-      <component group="com.netflix.nebula" name="gradle-ospackage-plugin" version="11.10.1">
-         <artifact name="gradle-ospackage-plugin-11.10.1.jar">
-            <sha256 value="8f1daf5885f1a8f6bcab00bf9b52cf484d87da7839e9bbd327a94af27df5dacc" origin="Generated by Gradle"/>
+      <component group="com.netflix.nebula" name="gradle-ospackage-plugin" version="11.11.1">
+         <artifact name="gradle-ospackage-plugin-11.11.1.jar">
+            <sha256 value="34027ac840adb81b80de43082ce335a6518875217a38ac0204d5a84dc669b7ac" origin="Generated by Gradle"/>
          </artifact>
       </component>
       <component group="com.netflix.nebula" name="nebula-gradle-interop" version="2.0.0">

BIN
gradle/wrapper/gradle-wrapper.jar


+ 2 - 2
gradle/wrapper/gradle-wrapper.properties

@@ -1,7 +1,7 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionSha256Sum=296742a352f0b20ec14b143fb684965ad66086c7810b7b255dee216670716175
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-all.zip
+distributionSha256Sum=fba8464465835e74f7270bbf43d6d8a8d7709ab0a43ce1aa3323f73e9aa0c612
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME

+ 1 - 1
gradlew

@@ -205,7 +205,7 @@ fi
 DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
 
 # Collect all arguments for the java command:
-#   * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
 #     and any embedded shellness will be escaped.
 #   * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
 #     treated as '${Hostname}' itself on the command line.

+ 1 - 1
libs/h3/build.gradle

@@ -36,7 +36,7 @@ tasks.named('forbiddenApisMain').configure {
 }
 
 ext.projectLicenses.set(['The Apache Software License, Version 2.0': providers.provider(() -> 'http://www.apache.org/licenses/LICENSE-2.0')])
-licenseFile.set(rootProject.file('licenses/APACHE-LICENSE-2.0.txt'))
+licenseFile.set(layout.settingsDirectory.file('licenses/APACHE-LICENSE-2.0.txt').asFile)
 
 tasks.withType(LicenseHeadersTask.class).configureEach {
   approvedLicenses = ['Apache', 'Generated', 'Vendored']

+ 1 - 1
libs/tdigest/build.gradle

@@ -37,7 +37,7 @@ tasks.named('forbiddenApisMain').configure {
 }
 
 ext.projectLicenses.set(['The Apache Software License, Version 2.0': providers.provider(() -> 'http://www.apache.org/licenses/LICENSE-2.0')])
-licenseFile.set(rootProject.file('licenses/APACHE-LICENSE-2.0.txt'))
+licenseFile.set(layout.settingsDirectory.file('licenses/APACHE-LICENSE-2.0.txt').asFile)
 
 tasks.withType(LicenseHeadersTask.class).configureEach {
   approvedLicenses = ['Apache', 'Generated', 'Vendored']

+ 1 - 1
modules/aggregations/build.gradle

@@ -28,7 +28,7 @@ restResources {
   }
 }
 
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.snapshotBuild == false) {
   tasks.named("test").configure {
     systemProperty 'es.index_mode_feature_flag_registered', 'true'
   }

+ 1 - 1
modules/data-streams/build.gradle

@@ -36,7 +36,7 @@ if (buildParams.inFipsJvm){
   tasks.named("yamlRestTest").configure{enabled = false }
 }
 
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.snapshotBuild == false) {
   tasks.withType(Test).configureEach {
     systemProperty 'es.failure_store_feature_flag_enabled', 'true'
   }

+ 1 - 1
modules/legacy-geo/build.gradle

@@ -26,7 +26,7 @@ dependencies {
   testImplementation project(":test:framework")
 }
 
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.snapshotBuild == false) {
   tasks.named("test").configure {
     systemProperty 'es.index_mode_feature_flag_registered', 'true'
   }

+ 1 - 1
plugins/analysis-icu/build.gradle

@@ -28,7 +28,7 @@ dependencies {
   api "com.ibm.icu:icu4j:${versions.icu4j}"
 }
 
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.snapshotBuild == false) {
   tasks.named("test").configure {
     systemProperty 'es.index_mode_feature_flag_registered', 'true'
   }

+ 2 - 4
plugins/build.gradle

@@ -23,11 +23,9 @@ configure(subprojects.findAll { it.parent.path == project.path }) {
   esplugin {
     // for local ES plugins, the name of the plugin is the same as the directory
     name = project.name
-
-    licenseFile = rootProject.file('licenses/AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-    noticeFile = rootProject.file('NOTICE.txt')
+    licenseFile = layout.settingsDirectory.file('licenses/AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+    noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
   }
 
-
   parent.artifacts.add('allPlugins', tasks.named('bundlePlugin'))
 }

+ 2 - 2
plugins/examples/custom-processor/build.gradle

@@ -13,8 +13,8 @@ esplugin {
   name = 'custom-processor'
   description = 'An example plugin showing how to register a custom ingest processor'
   classname ='org.elasticsearch.example.customprocessor.ExampleProcessorPlugin'
-  licenseFile = rootProject.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 dependencies {

+ 2 - 2
plugins/examples/custom-settings/build.gradle

@@ -13,8 +13,8 @@ esplugin {
   name = 'custom-settings'
   description = 'An example plugin showing how to register custom settings'
   classname ='org.elasticsearch.example.customsettings.ExampleCustomSettingsPlugin'
-  licenseFile = rootProject.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 testClusters.configureEach {

+ 2 - 2
plugins/examples/custom-significance-heuristic/build.gradle

@@ -13,8 +13,8 @@ esplugin {
   name = 'custom-significance-heuristic'
   description = 'An example plugin showing how to write and register a custom significance heuristic'
   classname ='org.elasticsearch.example.customsigheuristic.CustomSignificanceHeuristicPlugin'
-  licenseFile = rootProject.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 dependencies {

+ 2 - 2
plugins/examples/custom-suggester/build.gradle

@@ -13,8 +13,8 @@ esplugin {
   name = 'custom-suggester'
   description = 'An example plugin showing how to write and register a custom suggester'
   classname ='org.elasticsearch.example.customsuggester.CustomSuggesterPlugin'
-  licenseFile = rootProject.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 testClusters.configureEach {

+ 2 - 2
plugins/examples/gradle/wrapper/gradle-wrapper.properties

@@ -1,7 +1,7 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionSha256Sum=296742a352f0b20ec14b143fb684965ad66086c7810b7b255dee216670716175
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-all.zip
+distributionSha256Sum=fba8464465835e74f7270bbf43d6d8a8d7709ab0a43ce1aa3323f73e9aa0c612
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME

+ 2 - 2
plugins/examples/painless-whitelist/build.gradle

@@ -14,8 +14,8 @@ esplugin {
   description = 'An example whitelisting additional classes and methods in painless'
   classname ='org.elasticsearch.example.painlesswhitelist.MyWhitelistPlugin'
   extendedPlugins = ['lang-painless']
-  licenseFile = rootProject.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 dependencies {

+ 2 - 2
plugins/examples/rescore/build.gradle

@@ -13,8 +13,8 @@ esplugin {
   name = 'example-rescore'
   description = 'An example plugin implementing rescore and verifying that plugins *can* implement rescore'
   classname ='org.elasticsearch.example.rescore.ExampleRescorePlugin'
-  licenseFile = rootProject.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 dependencies {

+ 2 - 2
plugins/examples/rest-handler/build.gradle

@@ -13,8 +13,8 @@ esplugin {
   name = 'rest-handler'
   description = 'An example plugin showing how to register a REST handler'
   classname ='org.elasticsearch.example.resthandler.ExampleRestHandlerPlugin'
-  licenseFile = rootProject.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 dependencies {

+ 2 - 2
plugins/examples/script-expert-scoring/build.gradle

@@ -13,8 +13,8 @@ esplugin {
   name = 'script-expert-scoring'
   description = 'An example script engine to use low level Lucene internals for expert scoring'
   classname ='org.elasticsearch.example.expertscript.ExpertScriptPlugin'
-  licenseFile = rootProject.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 dependencies {

+ 2 - 2
plugins/examples/security-authorization-engine/build.gradle

@@ -6,8 +6,8 @@ esplugin {
   description = 'An example spi extension plugin for security that implements an Authorization Engine'
   classname ='org.elasticsearch.example.AuthorizationEnginePlugin'
   extendedPlugins = ['x-pack-security']
-  licenseFile = rootProject.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 dependencies {

+ 2 - 2
qa/system-indices/build.gradle

@@ -14,8 +14,8 @@ esplugin {
   name = 'system-indices-qa'
   description = 'Plugin for performing QA of system indices'
   classname ='org.elasticsearch.system.indices.SystemIndicesQA'
-  licenseFile = rootProject.file('licenses/AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-  noticeFile = rootProject.file('NOTICE.txt')
+  licenseFile = layout.settingsDirectory.file('licenses/AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+  noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
 }
 
 testClusters.configureEach {

+ 1 - 1
qa/verify-version-constants/build.gradle

@@ -39,7 +39,7 @@ buildParams.bwcVersions.withIndexCompatible { bwcVersion, baseName ->
 
 tasks.register("verifyDocsLuceneVersion") {
   doFirst {
-    File docsVersionsFile = rootProject.file('docs/Versions.asciidoc')
+    File docsVersionsFile = layout.settingsDirectory.file('docs/Versions.asciidoc').asFile
     List<String> versionLines = docsVersionsFile.readLines('UTF-8')
     String docsLuceneVersion = null
     for (String line : versionLines) {

+ 1 - 1
rest-api-spec/build.gradle

@@ -14,7 +14,7 @@ restResources {
 
 // REST API specifications are published under the Apache 2.0 License
 ext.projectLicenses.set(['The Apache Software License, Version 2.0': providers.provider(() -> 'http://www.apache.org/licenses/LICENSE-2.0')])
-licenseFile.set(rootProject.file('licenses/APACHE-LICENSE-2.0.txt'))
+licenseFile.set(layout.settingsDirectory.file('licenses/APACHE-LICENSE-2.0.txt').asFile)
 
 configurations {
   // configuration to make use by external yaml rest test plugin in our examples

+ 1 - 1
server/build.gradle

@@ -133,7 +133,7 @@ def generatePluginsList = tasks.register("generatePluginsList") {
 sourceSets.main.output.dir(generatedResourcesDir)
 sourceSets.main.compiledBy(generateModulesList, generatePluginsList)
 
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.snapshotBuild == false) {
     tasks.named("test").configure {
         systemProperty 'es.index_mode_feature_flag_registered', 'true'
         systemProperty 'es.failure_store_feature_flag_enabled', 'true'

+ 1 - 1
test/external-modules/apm-integration/build.gradle

@@ -17,7 +17,7 @@ tasks.named("test").configure {
 }
 
 tasks.named('javaRestTest').configure {
-  it.onlyIf("snapshot build") { buildParams.isSnapshotBuild() }
+  it.onlyIf("snapshot build") { buildParams.snapshotBuild }
 }
 
 dependencies {

+ 2 - 2
test/external-modules/build.gradle

@@ -6,7 +6,7 @@ subprojects {
 
   esplugin {
     name = it.name
-    licenseFile = rootProject.file('licenses/AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt')
-    noticeFile = rootProject.file('NOTICE.txt')
+    licenseFile = layout.settingsDirectory.file('licenses/AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile
+    noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile
   }
 }

+ 1 - 1
test/external-modules/delayed-aggs/build.gradle

@@ -11,7 +11,7 @@ import org.elasticsearch.gradle.internal.info.BuildParams
 apply plugin: 'elasticsearch.legacy-yaml-rest-test'
 
 tasks.named('yamlRestTest').configure {
-  it.onlyIf("snapshot build") { buildParams.isSnapshotBuild() }
+  it.onlyIf("snapshot build") { buildParams.snapshotBuild }
 }
 
 esplugin {

+ 1 - 1
test/external-modules/die-with-dignity/build.gradle

@@ -17,5 +17,5 @@ tasks.named("test").configure {
 }
 
 tasks.named('javaRestTest').configure {
-  it.onlyIf("snapshot build") { buildParams.isSnapshotBuild() }
+  it.onlyIf("snapshot build") { buildParams.snapshotBuild }
 }

+ 1 - 1
test/external-modules/error-query/build.gradle

@@ -11,7 +11,7 @@ import org.elasticsearch.gradle.internal.info.BuildParams
 apply plugin: 'elasticsearch.legacy-yaml-rest-test'
 
 tasks.named('yamlRestTest').configure {
-  it.onlyIf("snapshot build") { buildParams.isSnapshotBuild() }
+  it.onlyIf("snapshot build") { buildParams.snapshotBuild }
 }
 
 esplugin {

+ 1 - 1
test/external-modules/esql-heap-attack/build.gradle

@@ -21,5 +21,5 @@ esplugin {
 
 tasks.named('javaRestTest') {
   usesDefaultDistribution()
-  it.onlyIf("snapshot build") { buildParams.isSnapshotBuild() }
+  it.onlyIf("snapshot build") { buildParams.snapshotBuild }
 }

+ 1 - 1
test/external-modules/jvm-crash/build.gradle

@@ -21,5 +21,5 @@ esplugin {
 
 tasks.named('javaRestTest') {
   usesDefaultDistribution()
-  it.onlyIf("snapshot build") { buildParams.isSnapshotBuild() }
+  it.onlyIf("snapshot build") { buildParams.snapshotBuild }
 }

+ 2 - 2
x-pack/build.gradle

@@ -26,7 +26,7 @@ subprojects {
   ext.xpackModule = { String moduleName -> ":x-pack:plugin:${moduleName}" }
 
   plugins.withType(PluginBuildPlugin).whenPluginAdded {
-    project.esplugin.licenseFile = rootProject.file('licenses/ELASTIC-LICENSE-2.0.txt')
+    project.esplugin.licenseFile = layout.settingsDirectory.file('licenses/ELASTIC-LICENSE-2.0.txt').asFile
     project.esplugin.noticeFile = xpackRootProject.file('NOTICE.txt')
   }
 
@@ -40,7 +40,7 @@ subprojects {
   }
 
   project.pluginManager.withPlugin("elasticsearch.build") {
-    project.ext.licenseFile.set(rootProject.file('licenses/ELASTIC-LICENSE-2.0.txt'))
+    project.ext.licenseFile.set(layout.settingsDirectory.file('licenses/ELASTIC-LICENSE-2.0.txt').asFile)
     project.ext.noticeFile.set(xpackRootProject.file('NOTICE.txt'))
   }
 }

+ 1 - 1
x-pack/plugin/analytics/build.gradle

@@ -26,7 +26,7 @@ dependencies {
   testImplementation(testArtifact(project(xpackModule('core'))))
 }
 
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.snapshotBuild == false) {
   tasks.named("test").configure {
     systemProperty 'es.index_mode_feature_flag_registered', 'true'
   }

+ 1 - 1
x-pack/plugin/build.gradle

@@ -38,7 +38,7 @@ artifacts {
 def restTestBlacklist = []
 // TODO: fix this rest test to not depend on a hardcoded port!
 restTestBlacklist.addAll(['getting_started/10_monitor_cluster_health/*'])
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.snapshotBuild == false) {
   // these tests attempt to install basic/internal licenses signed against the dev/public.key
   // Since there is no infrastructure in place (anytime soon) to generate licenses using the production
   // private key, these tests are blacklisted in non-snapshot test runs

+ 3 - 3
x-pack/plugin/core/build.gradle

@@ -94,12 +94,12 @@ tasks.named("processResources").configure {
   String licenseKey = providers.systemProperty("license.key").getOrNull()
   if (licenseKey != null) {
     println "Using provided license key from ${licenseKey}"
-  } else if (buildParams.isSnapshotBuild()) {
+  } else if (buildParams.snapshotBuild) {
     licenseKey = Paths.get(project.projectDir.path, 'snapshot.key')
   } else {
     throw new IllegalArgumentException('Property license.key must be set for release build')
   }
-  File licenseKeyFile = rootProject.file(licenseKey)
+  File licenseKeyFile = layout.settingsDirectory.file(licenseKey).asFile
   if (licenseKeyFile.exists() == false) {
     throw new IllegalArgumentException('license.key at specified path [' + licenseKey + '] does not exist')
   }
@@ -156,7 +156,7 @@ testClusters.configureEach {
   systemProperty 'es.queryable_built_in_roles_enabled', 'false'
 }
 
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.snapshotBuild == false) {
   tasks.withType(Test).configureEach {
     systemProperty 'es.failure_store_feature_flag_enabled', 'true'
   }

+ 1 - 1
x-pack/plugin/eql/build.gradle

@@ -32,7 +32,7 @@ dependencies {
  *  Enable QA/rest integration tests for snapshot builds only   *
  *  TODO: Enable for all builds upon this feature release       *
  ****************************************************************/
-if (buildParams.isSnapshotBuild()) {
+if (buildParams.snapshotBuild) {
   addQaCheckDependencies(project)
 }
 

+ 2 - 2
x-pack/plugin/esql/build.gradle

@@ -77,7 +77,7 @@ interface Injected {
 }
 
 tasks.named("test").configure {
-  if (buildParams.isCi() == false) {
+  if (buildParams.ci == false) {
     systemProperty 'generateDocs', true
     def injected = project.objects.newInstance(Injected)
     doFirst {
@@ -147,7 +147,7 @@ tasks.named("test").configure {
  *  Enable QA/rest integration tests for snapshot builds only   *
  *  TODO: Enable for all builds upon this feature release       *
  ****************************************************************/
-if (buildParams.isSnapshotBuild()) {
+if (buildParams.snapshotBuild) {
   addQaCheckDependencies(project)
 }
 

+ 1 - 1
x-pack/plugin/mapper-constant-keyword/build.gradle

@@ -18,7 +18,7 @@ dependencies {
   compileOnly project(path: xpackModule('core'))
 }
 
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.getSnapshotBuild() == false) {
   tasks.named("test").configure {
     systemProperty 'es.index_mode_feature_flag_registered', 'true'
   }

+ 1 - 1
x-pack/plugin/ml/build.gradle

@@ -94,7 +94,7 @@ dependencies {
 }
 
 def mlCppVersion(){
-  return (project.gradle.parent != null && buildParams.isSnapshotBuild() == false) ?
+  return (project.gradle.parent != null && buildParams.snapshotBuild == false) ?
       (project.version + "-SNAPSHOT") : project.version;
 }
 

+ 1 - 1
x-pack/plugin/spatial/build.gradle

@@ -28,7 +28,7 @@ testClusters.configureEach {
   setting 'xpack.security.enabled', 'false'
 }
 
-if (buildParams.isSnapshotBuild() == false) {
+if (buildParams.snapshotBuild == false) {
   tasks.named("test").configure {
     systemProperty 'es.index_mode_feature_flag_registered', 'true'
   }

+ 1 - 1
x-pack/qa/core-rest-tests-with-security/build.gradle

@@ -27,7 +27,7 @@ tasks.named("yamlRestTest").configure {
     'index/10_with_id/Index with ID',
     'indices.get_alias/10_basic/Get alias against closed indices'
   ];
-  if (buildParams.isSnapshotBuild() == false) {
+  if (buildParams.snapshotBuild == false) {
     blacklist += [
       'synonyms_privileges/10_synonyms_with_privileges/*',
       'synonyms_privileges/20_synonyms_no_privileges/*'