Skip to content

Commit 65b93e5

Browse files
Merge 0736bf5 into openjdk23-bundle
2 parents 711f370 + 0736bf5 commit 65b93e5

File tree

150 files changed

+10189
-598
lines changed

Some content is hidden

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

150 files changed

+10189
-598
lines changed

.buildkite/pipelines/dra-workflow.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ steps:
22
- command: .buildkite/scripts/dra-workflow.sh
33
env:
44
USE_DRA_CREDENTIALS: "true"
5+
USE_PROD_DOCKER_CREDENTIALS: "true"
56
agents:
67
provider: gcp
78
image: family/elasticsearch-ubuntu-2204
@@ -18,4 +19,5 @@ steps:
1819
branch: "${BUILDKITE_BRANCH}"
1920
env:
2021
DRA_WORKFLOW: staging
22+
USE_PROD_DOCKER_CREDENTIALS: "true"
2123
if: build.env('DRA_WORKFLOW') == 'staging'

.buildkite/pipelines/periodic-packaging.template.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ steps:
2727
image: family/elasticsearch-{{matrix.image}}
2828
diskSizeGb: 350
2929
machineType: n1-standard-8
30-
env: {}
30+
env:
31+
USE_PROD_DOCKER_CREDENTIALS: "true"
3132
- group: packaging-tests-upgrade
3233
steps: $BWC_STEPS
3334
- group: packaging-tests-windows

.buildkite/pipelines/periodic-packaging.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ steps:
2828
image: family/elasticsearch-{{matrix.image}}
2929
diskSizeGb: 350
3030
machineType: n1-standard-8
31-
env: {}
31+
env:
32+
USE_PROD_DOCKER_CREDENTIALS: "true"
3233
- group: packaging-tests-upgrade
3334
steps:
3435
- label: "{{matrix.image}} / 8.0.1 / packaging-tests-upgrade"

.buildkite/pipelines/pull-request/packaging-tests-unix-sample.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ steps:
2424
diskSizeGb: 350
2525
machineType: custom-16-32768
2626
env:
27+
USE_PROD_DOCKER_CREDENTIALS: "true"
2728
PACKAGING_TASK: "{{matrix.PACKAGING_TASK}}"

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/DockerBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public enum DockerBase {
3131
// Chainguard based wolfi image with latest jdk
3232
// This is usually updated via renovatebot
3333
// spotless:off
34-
WOLFI("docker.elastic.co/wolfi/chainguard-base:latest@sha256:90888b190da54062f67f3fef1372eb0ae7d81ea55f5a1f56d748b13e4853d984",
34+
WOLFI("docker.elastic.co/wolfi/chainguard-base:latest@sha256:c16d3ad6cebf387e8dd2ad769f54320c4819fbbaa21e729fad087c7ae223b4d0",
3535
"-wolfi",
3636
"apk"
3737
),

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/ElasticsearchBuildCompletePlugin.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,13 @@ public void execute(BuildFinishedFlowAction.Parameters parameters) throws FileNo
163163
// So, if you change this such that the artifact will have a slash/directory in it, you'll need to update the logic
164164
// below as well
165165
pb.directory(uploadFileDir);
166-
pb.start().waitFor();
166+
try {
167+
// we are very generious here, as the upload can take
168+
// a long time depending on its size
169+
pb.start().waitFor(30, java.util.concurrent.TimeUnit.MINUTES);
170+
} catch (InterruptedException e) {
171+
System.out.println("Failed to upload buildkite artifact " + e.getMessage());
172+
}
167173

168174
System.out.println("Generating buildscan link for artifact...");
169175

distribution/tools/entitlement-agent/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### Entitlement Agent
22

3-
This is a java agent that instruments sensitive class library methods with calls into the `entitlement-runtime` module to check for permissions granted under the _entitlements_ system.
3+
This is a java agent that instruments sensitive class library methods with calls into the `entitlement-bridge` module to check for permissions granted under the _entitlements_ system.
44

55
The entitlements system provides an alternative to the legacy `SecurityManager` system, which is deprecated for removal.
66
With this agent, the Elasticsearch server can retain some control over which class library methods can be invoked by which callers.

distribution/tools/entitlement-agent/build.gradle

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,44 @@
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
99

10+
import static java.util.stream.Collectors.joining
11+
1012
apply plugin: 'elasticsearch.build'
13+
apply plugin: 'elasticsearch.embedded-providers'
14+
15+
embeddedProviders {
16+
impl 'entitlement-agent', project(':distribution:tools:entitlement-agent:impl')
17+
}
1118

1219
configurations {
13-
entitlementRuntime
20+
entitlementBridge
1421
}
1522

1623
dependencies {
17-
entitlementRuntime project(":libs:elasticsearch-entitlement-runtime")
18-
implementation project(":libs:elasticsearch-entitlement-runtime")
24+
entitlementBridge project(":distribution:tools:entitlement-bridge")
25+
compileOnly project(":libs:elasticsearch-core")
26+
compileOnly project(":distribution:tools:entitlement-runtime")
1927
testImplementation project(":test:framework")
28+
testImplementation project(":distribution:tools:entitlement-bridge")
29+
testImplementation project(":distribution:tools:entitlement-agent:impl")
2030
}
2131

2232
tasks.named('test').configure {
33+
systemProperty "tests.security.manager", "false"
2334
dependsOn('jar')
24-
jvmArgs "-javaagent:${ tasks.named('jar').flatMap{ it.archiveFile }.get()}"
35+
36+
// Register an argument provider to avoid eager resolution of configurations
37+
jvmArgumentProviders.add(new CommandLineArgumentProvider() {
38+
@Override
39+
Iterable<String> asArguments() {
40+
return ["-javaagent:${tasks.jar.archiveFile.get()}", "-Des.entitlements.bridgeJar=${configurations.entitlementBridge.singleFile}"]
41+
}
42+
})
43+
44+
45+
// The Elasticsearch build plugin automatically adds all compileOnly deps as testImplementation.
46+
// We must not add the bridge this way because it is also on the boot classpath, and that would lead to jar hell.
47+
classpath -= files(configurations.entitlementBridge)
2548
}
2649

2750
tasks.named('jar').configure {
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the "Elastic License
4+
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
5+
* Public License v 1"; you may not use this file except in compliance with, at
6+
* your election, the "Elastic License 2.0", the "GNU Affero General Public
7+
* License v3.0 only", or the "Server Side Public License, v 1".
8+
*/
9+
10+
apply plugin: 'elasticsearch.build'
11+
12+
dependencies {
13+
compileOnly project(':distribution:tools:entitlement-agent')
14+
implementation 'org.ow2.asm:asm:9.7'
15+
}
16+
17+
tasks.named('forbiddenApisMain').configure {
18+
replaceSignatureFiles 'jdk-signatures'
19+
}
20+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
Copyright (c) 2012 France Télécom
2+
All rights reserved.
3+
4+
Redistribution and use in source and binary forms, with or without
5+
modification, are permitted provided that the following conditions
6+
are met:
7+
1. Redistributions of source code must retain the above copyright
8+
notice, this list of conditions and the following disclaimer.
9+
2. Redistributions in binary form must reproduce the above copyright
10+
notice, this list of conditions and the following disclaimer in the
11+
documentation and/or other materials provided with the distribution.
12+
3. Neither the name of the copyright holders nor the names of its
13+
contributors may be used to endorse or promote products derived from
14+
this software without specific prior written permission.
15+
16+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26+
THE POSSIBILITY OF SUCH DAMAGE.

0 commit comments

Comments
 (0)