Skip to content

Commit 16a4ea0

Browse files
authored
Merge pull request #49927 from jmartisk/3.26.3-backports-2
[3.26] 3.26.3 backports 2
2 parents eb7fd03 + 15ef1e8 commit 16a4ea0

File tree

15 files changed

+293
-116
lines changed

15 files changed

+293
-116
lines changed

bom/application/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,10 @@
109109
<slf4j-jboss-logmanager.version>2.0.0.Final</slf4j-jboss-logmanager.version>
110110
<wildfly-common.version>2.0.1</wildfly-common.version>
111111
<wildfly-client-config.version>1.0.1.Final</wildfly-client-config.version>
112-
<wildfly-elytron.version>2.6.4.Final</wildfly-elytron.version>
112+
<wildfly-elytron.version>2.6.5.Final</wildfly-elytron.version>
113113
<jboss-marshalling.version>2.2.3.Final</jboss-marshalling.version>
114114
<jboss-threads.version>3.9.1</jboss-threads.version>
115-
<vertx.version>4.5.20</vertx.version>
115+
<vertx.version>4.5.21</vertx.version>
116116
<httpclient.version>4.5.14</httpclient.version>
117117
<httpcore.version>4.4.16</httpcore.version>
118118
<httpasync.version>4.1.5</httpasync.version>
@@ -134,7 +134,7 @@
134134
<infinispan.version>15.0.19.Final</infinispan.version>
135135
<infinispan.protostream.version>5.0.13.Final</infinispan.protostream.version>
136136
<caffeine.version>3.2.2</caffeine.version>
137-
<netty.version>4.1.124.Final</netty.version>
137+
<netty.version>4.1.127.Final</netty.version>
138138
<brotli4j.version>1.16.0</brotli4j.version>
139139
<reactive-streams.version>1.0.4</reactive-streams.version>
140140
<jboss-logging.version>3.6.1.Final</jboss-logging.version>

docs/src/main/asciidoc/extension-registry-user.adoc

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,3 +214,26 @@ image:registry-nexus-repository.png[Nexus Repository Proxy]
214214
- Set the `Remote Storage` URL to `https://registry.quarkus.io/maven`
215215

216216
image:registry-nexus3-repository.png[Nexus Repository Proxy]
217+
218+
==== Environment Variables
219+
220+
Applications using a registry client can be configured using environment variables.
221+
222+
`QUARKUS_REGISTRIES` environment variable can be used to specify which registries should be enabled as a comma-separated list of registry IDs.
223+
For example
224+
```
225+
QUARKUS_REGISTRIES=registry.acme.org,registry.quarkus.io
226+
```
227+
That alone will be enough to initialize a registry client to pull extension catalogs from two registries using their default configurations.
228+
229+
Certain registry options could be initialized with their specific environment variables. Each such option will have the following environment variable prefix:
230+
```
231+
QUARKUS_REGISTRY_<UPPERCASED_AND_UNDERSCORED_REGISTRY_ID>_
232+
```
233+
where `<UPPERCASED_AND_UNDERSCORED_REGISTRY_ID>` is a registry ID with each character converted to uppercase and a `.` replaced with `_`. For example, `REGISTRY_ACME_ORG`.
234+
235+
The following options can be configured with this approach:
236+
237+
- Repository URL, for example `QUARKUS_REGISTRY_REGISTRY_ACME_ORG_REPO_URL=https://internal.registry.acme.org/maven`
238+
- Update policy, for example `QUARKUS_REGISTRY_REGISTRY_ACME_ORG_UPDATE_POLICY=always`
239+
- Offering, for example `QUARKUS_REGISTRY_REGISTRY_ACME_ORG_OFFERING=acme-magic`

extensions/devui/resources/src/main/resources/dev-ui/qwc/qwc-continuous-testing.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { QwcHotReloadElement, html, css} from 'qwc-hot-reload-element';
2+
import { StorageController } from 'storage-controller';
23
import { JsonRpc } from 'jsonrpc';
34
import '@vaadin/vertical-layout';
45
import '@vaadin/icon';
@@ -22,6 +23,7 @@ ring.register();
2223
*/
2324
export class QwcContinuousTesting extends QwcHotReloadElement {
2425
jsonRpc = new JsonRpc(this, false);
26+
storageControl = new StorageController(this, true);
2527

2628
static styles = css`
2729
:host {
@@ -91,7 +93,7 @@ export class QwcContinuousTesting extends QwcHotReloadElement {
9193
this._detailsOpenedItem = [];
9294
this._chartTitles = ["passed", "failed", "skipped"];
9395
this._chartColors = ['--lumo-success-text-color', '--lumo-error-text-color', '--lumo-contrast-70pct'];
94-
this._displayTags = true;
96+
this._displayTags = this.storageControl.get("displayTags");
9597
}
9698

9799
set _tests(value) {
@@ -269,12 +271,12 @@ export class QwcContinuousTesting extends QwcHotReloadElement {
269271
>
270272
${
271273
this._displayTags && this._hasTestResultWithTags
272-
? html`<vaadin-grid-sort-column path="tags" header="Tags" ${columnBodyRenderer((prop) => this._tagsRenderer(prop), [])}></vaadin-grid-sort-column>`
274+
? html`<vaadin-grid-sort-column path="tags" header="Tags" ${columnBodyRenderer((prop) => this._tagsRenderer(prop), [])} resizable width="40px"></vaadin-grid-sort-column>`
273275
: ''
274276
}
275-
<vaadin-grid-sort-column path="testClass" header="Test Class" ${columnBodyRenderer((prop) => this._testRenderer(prop), [])}></vaadin-grid-sort-column>
276-
<vaadin-grid-sort-column path="displayName" header="Name" ${columnBodyRenderer((prop) => this._nameRenderer(prop), [])}></vaadin-grid-sort-column>
277-
<vaadin-grid-sort-column path="time" header="Time" ${columnBodyRenderer((prop) => this._timeRenderer(prop), [])}>></vaadin-grid-sort-column>
277+
<vaadin-grid-sort-column path="testClass" header="Test Class" ${columnBodyRenderer((prop) => this._testRenderer(prop), [])} resizable auto-width></vaadin-grid-sort-column>
278+
<vaadin-grid-sort-column path="displayName" header="Name" ${columnBodyRenderer((prop) => this._nameRenderer(prop), [])} resizable auto-width></vaadin-grid-sort-column>
279+
<vaadin-grid-sort-column path="time" header="Time" ${columnBodyRenderer((prop) => this._timeRenderer(prop), [])} width="10px" flexGrow = 0></vaadin-grid-sort-column>
278280
</vaadin-grid>`;
279281

280282
}else{
@@ -477,6 +479,7 @@ export class QwcContinuousTesting extends QwcHotReloadElement {
477479

478480
_toggleDisplayTags(){
479481
this._displayTags = !this._displayTags;
482+
this.storageControl.set('displayTags', this._displayTags);
480483
}
481484
}
482485
customElements.define('qwc-continuous-testing', QwcContinuousTesting);

extensions/oidc/runtime/src/main/java/io/quarkus/oidc/OidcConfigurationMetadata.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,13 @@ public class OidcConfigurationMetadata {
1515
public static final String JWKS_ENDPOINT = "jwks_uri";
1616
public static final String USERINFO_ENDPOINT = "userinfo_endpoint";
1717
public static final String END_SESSION_ENDPOINT = "end_session_endpoint";
18-
private static final String REGISTRATION_ENDPOINT = "registration_endpoint";
19-
private static final String REVOCATION_ENDPOINT = "revocation_endpoint";
18+
public static final String REGISTRATION_ENDPOINT = "registration_endpoint";
19+
public static final String REVOCATION_ENDPOINT = "revocation_endpoint";
2020
public static final String SCOPES_SUPPORTED = "scopes_supported";
21+
public static final String RESPONSE_TYPES_SUPPORTED = "response_types_supported";
22+
public static final String SUBJECT_TYPES_SUPPORTED = "subject_types_supported";
23+
public static final String ID_TOKEN_SIGNING_ALGORITHMS_SUPPORTED = "id_token_signing_alg_values_supported";
24+
public static final String CODE_CHALLENGE_METHODS_SUPPORTED = "code_challenge_methods_supported";
2125

2226
private final String discoveryUri;
2327
private final String tokenUri;
@@ -125,6 +129,22 @@ public List<String> getSupportedScopes() {
125129
return getStringList(SCOPES_SUPPORTED);
126130
}
127131

132+
public List<String> getSupportedResponseTypes() {
133+
return getStringList(RESPONSE_TYPES_SUPPORTED);
134+
}
135+
136+
public List<String> getSupportedSubjectTypes() {
137+
return getStringList(SUBJECT_TYPES_SUPPORTED);
138+
}
139+
140+
public List<String> getSupportedIdTokenSigningAlgorithms() {
141+
return getStringList(ID_TOKEN_SIGNING_ALGORITHMS_SUPPORTED);
142+
}
143+
144+
public List<String> getSupportedCodeChallengeMethods() {
145+
return getStringList(CODE_CHALLENGE_METHODS_SUPPORTED);
146+
}
147+
128148
public String getIssuer() {
129149
return issuer;
130150
}

extensions/opentelemetry/runtime/src/test/java/io/quarkus/opentelemetry/runtime/tracing/intrumentation/vertx/VertxUtilTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ public String uri() {
112112
return null;
113113
}
114114

115+
@Override
116+
public @Nullable HostAndPort authority(boolean b) {
117+
return null;
118+
}
119+
115120
@Override
116121
public @Nullable String host() {
117122
return "";

extensions/resteasy-reactive/rest-client/deployment/src/main/java/io/quarkus/rest/client/reactive/deployment/RestClientReactiveProcessor.java

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ void registerProvidersFromAnnotations(CombinedIndexBuildItem indexBuildItem,
344344

345345
}
346346

347-
addGeneratedProviders(index, constructor, annotationsByClassName, generatedProviders);
347+
addGeneratedProviders(index, classCreator, constructor, annotationsByClassName, generatedProviders);
348348

349349
constructor.returnValue(null);
350350
}
@@ -769,11 +769,13 @@ private Map<String, GeneratedClassResult> populateClientProviderFromAnnotations(
769769
return result;
770770
}
771771

772-
private void addGeneratedProviders(IndexView index, MethodCreator constructor,
772+
private void addGeneratedProviders(IndexView index, ClassCreator classCreator, MethodCreator constructor,
773773
Map<String, List<AnnotationInstance>> annotationsByClassName,
774774
Map<String, List<GeneratedClassResult>> generatedProviders) {
775+
int i = 1;
775776
for (Map.Entry<String, List<AnnotationInstance>> annotationsForClass : annotationsByClassName.entrySet()) {
776-
ResultHandle map = constructor.newInstance(MethodDescriptor.ofConstructor(HashMap.class));
777+
MethodCreator mc = classCreator.getMethodCreator("addGeneratedProviders" + i, void.class);
778+
ResultHandle map = mc.newInstance(MethodDescriptor.ofConstructor(HashMap.class));
777779
for (AnnotationInstance value : annotationsForClass.getValue()) {
778780
String className = value.value().asString();
779781
AnnotationValue priorityAnnotationValue = value.value("priority");
@@ -784,21 +786,26 @@ private void addGeneratedProviders(IndexView index, MethodCreator constructor,
784786
priority = priorityAnnotationValue.asInt();
785787
}
786788

787-
constructor.invokeInterfaceMethod(MAP_PUT, map, constructor.loadClassFromTCCL(className),
788-
constructor.load(priority));
789+
mc.invokeInterfaceMethod(MAP_PUT, map, mc.loadClassFromTCCL(className),
790+
mc.load(priority));
789791
}
790792
String ifaceName = annotationsForClass.getKey();
791793
if (generatedProviders.containsKey(ifaceName)) {
792794
// remove the interface from the generated provider since it's going to be handled now
793795
// the remaining entries will be handled later
794796
List<GeneratedClassResult> providers = generatedProviders.remove(ifaceName);
795797
for (GeneratedClassResult classResult : providers) {
796-
constructor.invokeInterfaceMethod(MAP_PUT, map, constructor.loadClass(classResult.generatedClassName),
797-
constructor.load(classResult.priority));
798+
mc.invokeInterfaceMethod(MAP_PUT, map, mc.loadClass(classResult.generatedClassName),
799+
mc.load(classResult.priority));
798800
}
799801

800802
}
801-
addProviders(constructor, ifaceName, map);
803+
addProviders(mc, ifaceName, map);
804+
mc.returnVoid();
805+
806+
constructor.invokeVirtualMethod(mc.getMethodDescriptor(), constructor.getThis());
807+
808+
i++;
802809
}
803810

804811
for (Map.Entry<String, List<GeneratedClassResult>> entry : generatedProviders.entrySet()) {
@@ -812,11 +819,11 @@ private void addGeneratedProviders(IndexView index, MethodCreator constructor,
812819
}
813820
}
814821

815-
private void addProviders(MethodCreator constructor, String providerClass, ResultHandle map) {
816-
constructor.invokeVirtualMethod(
822+
private void addProviders(MethodCreator mc, String providerClass, ResultHandle map) {
823+
mc.invokeVirtualMethod(
817824
MethodDescriptor.ofMethod(AnnotationRegisteredProviders.class, "addProviders", void.class, String.class,
818825
Map.class),
819-
constructor.getThis(), constructor.load(providerClass), map);
826+
mc.getThis(), mc.load(providerClass), map);
820827
}
821828

822829
private int getAnnotatedPriority(IndexView index, String className, int defaultPriority) {

extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/ForwardedServerRequestWrapper.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,14 @@ public HostAndPort authority() {
197197
return forwardedParser.authority();
198198
}
199199

200+
@Override
201+
public HostAndPort authority(boolean real) {
202+
if (real) {
203+
return delegate.authority();
204+
}
205+
return this.authority();
206+
}
207+
200208
@Override
201209
public boolean isValidAuthority() {
202210
return forwardedParser.authority() != null;

independent-projects/resteasy-reactive/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757

5858
<mutiny.version>2.9.4</mutiny.version>
5959
<smallrye-common.version>2.13.8</smallrye-common.version>
60-
<vertx.version>4.5.20</vertx.version>
60+
<vertx.version>4.5.21</vertx.version>
6161
<rest-assured.version>5.5.6</rest-assured.version>
6262
<commons-logging-jboss-logging.version>1.0.0.Final</commons-logging-jboss-logging.version>
6363
<jackson-bom.version>2.19.2</jackson-bom.version>

independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/client/maven/MavenRegistryClientFactory.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,7 @@ public MavenRegistryClientFactory(MavenArtifactResolver resolver, MessageWriter
5757
public RegistryClient buildRegistryClient(RegistryConfig config) throws RegistryResolutionException {
5858
Objects.requireNonNull(config, "The registry config is null");
5959

60-
final RegistryDescriptorConfig descriptorConfig = config.getDescriptor();
61-
if (descriptorConfig == null) {
62-
throw new IllegalArgumentException("The registry descriptor configuration is missing for " + config.getId());
63-
}
64-
65-
final ArtifactCoords originalDescrCoords = descriptorConfig.getArtifact();
66-
final Artifact registryDescriptorCoords = new DefaultArtifact(originalDescrCoords.getGroupId(),
67-
originalDescrCoords.getArtifactId(), originalDescrCoords.getClassifier(), originalDescrCoords.getType(),
68-
originalDescrCoords.getVersion());
60+
final Artifact registryDescriptorCoords = getDescriptorCoords(config);
6961

7062
final boolean cleanupTimestampedArtifacts = isCleanupTimestampedArtifacts(config);
7163

@@ -172,6 +164,17 @@ public RegistryClient buildRegistryClient(RegistryConfig config) throws Registry
172164
new MavenRegistryCache(config, defaultResolver, log));
173165
}
174166

167+
private static Artifact getDescriptorCoords(RegistryConfig config) {
168+
final RegistryDescriptorConfig descriptorConfig = config.getDescriptor();
169+
if (descriptorConfig == null) {
170+
throw new IllegalArgumentException("The registry descriptor configuration is missing for " + config.getId());
171+
}
172+
final ArtifactCoords originalDescrCoords = descriptorConfig.getArtifact();
173+
return new DefaultArtifact(originalDescrCoords.getGroupId(),
174+
originalDescrCoords.getArtifactId(), originalDescrCoords.getClassifier(), originalDescrCoords.getType(),
175+
originalDescrCoords.getVersion());
176+
}
177+
175178
private static boolean isCleanupTimestampedArtifacts(RegistryConfig config) {
176179
final Object o = config.getExtra().get(CLEANUP_TIMESTAMPED_ARTIFACTS);
177180
return o == null || Boolean.parseBoolean(o.toString());

independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/config/RegistriesConfigLocator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import java.nio.file.Paths;
99
import java.util.Map;
1010

11+
import io.quarkus.registry.Constants;
12+
1113
/**
1214
* A helper class set utility methods to locate the registry client configuration file
1315
* in the default locations (e.g. user home <code>.quarkus</code> dir, or the project dir) or in
@@ -188,6 +190,8 @@ static RegistriesConfig initFromEnvironmentOrNull(Map<String, String> map) {
188190
.setUrl(var.getValue())
189191
.build())
190192
.build());
193+
} else if (isEnvVarOption(var.getKey(), envvarPrefix, "OFFERING")) {
194+
builder.setExtra(Map.of(Constants.OFFERING, var.getValue()));
191195
}
192196
}
193197

0 commit comments

Comments
 (0)