Skip to content

Commit

Permalink
Merge pull request #45883 from michalvavrik/feature/fix-kc-admin-clie…
Browse files Browse the repository at this point in the history
…nt-common-split-pkgs

Keycloak Admin client extensions: fix split packages, follow-up on big reactive extensions renaming and drop unused files
  • Loading branch information
gsmet authored Jan 27, 2025
2 parents 584cdf0 + 4d6af2f commit 202338f
Show file tree
Hide file tree
Showing 19 changed files with 53 additions and 64 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.admin.client.common;
package io.quarkus.keycloak.admin.client.common.deployment;

import io.quarkus.runtime.annotations.ConfigPhase;
import io.quarkus.runtime.annotations.ConfigRoot;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.admin.client.common;
package io.quarkus.keycloak.admin.client.common.deployment;

import java.util.function.BooleanSupplier;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package io.quarkus.keycloak.admin.client.common;
package io.quarkus.keycloak.admin.client.common.deployment.test;

import static io.quarkus.keycloak.admin.client.common.KeycloakAdminClientConfigUtil.validate;
import static io.quarkus.keycloak.admin.client.common.runtime.KeycloakAdminClientConfigUtil.validate;

import java.util.Optional;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import io.quarkus.keycloak.admin.client.common.runtime.KeycloakAdminClientConfig;
import io.quarkus.keycloak.admin.client.common.runtime.KeycloakAdminClientConfigUtil;

public class ConfigValidationTest {

@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.admin.client.common;
package io.quarkus.keycloak.admin.client.common.runtime;

import java.util.Optional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.keycloak.admin.client.common;
package io.quarkus.keycloak.admin.client.common.runtime;

import static io.quarkus.keycloak.admin.client.common.KeycloakAdminClientConfig.GrantType.PASSWORD;
import static io.quarkus.keycloak.admin.client.common.runtime.KeycloakAdminClientConfig.GrantType.PASSWORD;

import org.jboss.logging.Logger;

Expand Down Expand Up @@ -32,7 +32,7 @@ public static void validate(KeycloakAdminClientConfig config) {
}
}

static final class KeycloakAdminClientException extends RuntimeException {
public static final class KeycloakAdminClientException extends RuntimeException {

private KeycloakAdminClientException(String message) {
super(String.format("Failed to create Keycloak admin client: %s.", message));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.admin.client.reactive;
package io.quarkus.keycloak.admin.rest.client.deployment;

import jakarta.enterprise.context.RequestScoped;

Expand All @@ -22,12 +22,12 @@
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveHierarchyIgnoreWarningBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
import io.quarkus.keycloak.admin.client.common.KeycloakAdminClientInjectionEnabled;
import io.quarkus.keycloak.admin.client.reactive.runtime.ResteasyReactiveClientProvider;
import io.quarkus.keycloak.admin.client.reactive.runtime.ResteasyReactiveKeycloakAdminClientRecorder;
import io.quarkus.keycloak.admin.client.common.deployment.KeycloakAdminClientInjectionEnabled;
import io.quarkus.keycloak.admin.rest.client.runtime.KeycloakAdminRestClientProvider;
import io.quarkus.keycloak.admin.rest.client.runtime.KeycloakAdminRestClientRecorder;
import io.quarkus.tls.TlsRegistryBuildItem;

public class KeycloakAdminClientReactiveProcessor {
public class KeycloakAdminRestClientProcessor {

@BuildStep
void marker(BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> producer) {
Expand All @@ -40,7 +40,7 @@ public void nativeImage(BuildProducer<ServiceProviderBuildItem> serviceProviderP
BuildProducer<ReflectiveClassBuildItem> reflectiveClassProducer,
BuildProducer<ReflectiveHierarchyIgnoreWarningBuildItem> reflectiveHierarchyProducer) {
serviceProviderProducer.produce(new ServiceProviderBuildItem(ResteasyClientProvider.class.getName(),
ResteasyReactiveClientProvider.class.getName()));
KeycloakAdminRestClientProvider.class.getName()));
reflectiveClassProducer.produce(ReflectiveClassBuildItem.builder(
StringListMapDeserializer.class,
StringOrArrayDeserializer.class,
Expand All @@ -54,20 +54,20 @@ public void nativeImage(BuildProducer<ServiceProviderBuildItem> serviceProviderP

@Record(ExecutionTime.STATIC_INIT)
@BuildStep
void avoidRuntimeInitIssueInClientBuilderWrapper(ResteasyReactiveKeycloakAdminClientRecorder recorder) {
void avoidRuntimeInitIssueInClientBuilderWrapper(KeycloakAdminRestClientRecorder recorder) {
recorder.avoidRuntimeInitIssueInClientBuilderWrapper();
}

@Record(ExecutionTime.RUNTIME_INIT)
@Produce(ServiceStartBuildItem.class)
@BuildStep
public void integrate(ResteasyReactiveKeycloakAdminClientRecorder recorder, TlsRegistryBuildItem tlsRegistryBuildItem) {
public void integrate(KeycloakAdminRestClientRecorder recorder, TlsRegistryBuildItem tlsRegistryBuildItem) {
recorder.setClientProvider(tlsRegistryBuildItem.registry());
}

@Record(ExecutionTime.RUNTIME_INIT)
@BuildStep(onlyIf = KeycloakAdminClientInjectionEnabled.class)
public void registerKeycloakAdminClientBeans(ResteasyReactiveKeycloakAdminClientRecorder recorder,
public void registerKeycloakAdminClientBeans(KeycloakAdminRestClientRecorder recorder,
BuildProducer<SyntheticBeanBuildItem> syntheticBeanBuildItemBuildProducer) {
syntheticBeanBuildItemBuildProducer.produce(SyntheticBeanBuildItem
.configure(Keycloak.class)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.admin.client.reactive.devservices;
package io.quarkus.keycloak.admin.rest.client.deployment.devservices;

import java.util.Map;

Expand All @@ -10,7 +10,7 @@
import io.quarkus.devservices.keycloak.KeycloakAdminPageBuildItem;
import io.quarkus.devservices.keycloak.KeycloakDevServicesRequiredBuildItem;
import io.quarkus.devui.spi.page.CardPageBuildItem;
import io.quarkus.keycloak.admin.client.common.KeycloakAdminClientInjectionEnabled;
import io.quarkus.keycloak.admin.client.common.deployment.KeycloakAdminClientInjectionEnabled;

@BuildSteps(onlyIfNot = IsNormal.class, onlyIf = { DevServicesConfig.Enabled.class,
KeycloakAdminClientInjectionEnabled.class })
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.adminclient.deployment;
package io.quarkus.keycloak.admin.rest.client.deployment.test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.admin.client.reactive;
package io.quarkus.keycloak.admin.rest.client.deployment.test;

import java.io.File;
import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.admin.client.reactive;
package io.quarkus.keycloak.admin.rest.client.deployment.test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.admin.client.reactive.runtime;
package io.quarkus.keycloak.admin.rest.client.runtime;

import java.security.KeyStore;
import java.util.List;
Expand Down Expand Up @@ -31,7 +31,7 @@
import io.vertx.core.net.SSLOptions;
import io.vertx.core.net.TrustOptions;

public class ResteasyReactiveClientProvider implements ResteasyClientProvider {
public class KeycloakAdminRestClientProvider implements ResteasyClientProvider {

private static final List<String> HANDLED_MEDIA_TYPES = List.of(MediaType.APPLICATION_JSON);
private static final int WRITER_PROVIDER_PRIORITY = Priorities.USER + 100; // ensures that it will be used first
Expand All @@ -40,12 +40,12 @@ public class ResteasyReactiveClientProvider implements ResteasyClientProvider {
private final boolean tlsTrustAll;
private final TlsConfig tlsConfig;

public ResteasyReactiveClientProvider(boolean tlsTrustAll) {
public KeycloakAdminRestClientProvider(boolean tlsTrustAll) {
this.tlsTrustAll = tlsTrustAll;
this.tlsConfig = null;
}

public ResteasyReactiveClientProvider(TlsConfiguration tlsConfiguration) {
public KeycloakAdminRestClientProvider(TlsConfiguration tlsConfiguration) {
tlsTrustAll = tlsConfiguration.isTrustAll();
this.tlsConfig = createTlsConfig(tlsConfiguration);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
package io.quarkus.keycloak.admin.client.reactive.runtime;
package io.quarkus.keycloak.admin.rest.client.runtime;

import static io.quarkus.keycloak.admin.client.common.KeycloakAdminClientConfigUtil.validate;
import static io.quarkus.keycloak.admin.client.common.runtime.KeycloakAdminClientConfigUtil.validate;

import java.util.function.Supplier;

import org.keycloak.admin.client.Keycloak;
import org.keycloak.admin.client.KeycloakBuilder;

import io.quarkus.keycloak.admin.client.common.KeycloakAdminClientConfig;
import io.quarkus.keycloak.admin.client.common.runtime.KeycloakAdminClientConfig;
import io.quarkus.runtime.RuntimeValue;
import io.quarkus.runtime.annotations.Recorder;
import io.quarkus.tls.TlsConfiguration;
import io.quarkus.tls.TlsConfigurationRegistry;

@Recorder
public class ResteasyReactiveKeycloakAdminClientRecorder {
public class KeycloakAdminRestClientRecorder {

private final RuntimeValue<KeycloakAdminClientConfig> keycloakAdminClientConfigRuntimeValue;

public ResteasyReactiveKeycloakAdminClientRecorder(
public KeycloakAdminRestClientRecorder(
RuntimeValue<KeycloakAdminClientConfig> keycloakAdminClientConfigRuntimeValue) {
this.keycloakAdminClientConfigRuntimeValue = keycloakAdminClientConfigRuntimeValue;
}
Expand All @@ -28,15 +28,15 @@ public void setClientProvider(Supplier<TlsConfigurationRegistry> registrySupplie
var namedTlsConfig = TlsConfiguration.from(registry,
keycloakAdminClientConfigRuntimeValue.getValue().tlsConfigurationName());
if (namedTlsConfig.isPresent()) {
Keycloak.setClientProvider(new ResteasyReactiveClientProvider(namedTlsConfig.get()));
Keycloak.setClientProvider(new KeycloakAdminRestClientProvider(namedTlsConfig.get()));
} else {
final boolean trustAll;
if (registry.getDefault().isPresent()) {
trustAll = registry.getDefault().get().isTrustAll();
} else {
trustAll = false;
}
Keycloak.setClientProvider(new ResteasyReactiveClientProvider(trustAll));
Keycloak.setClientProvider(new KeycloakAdminRestClientProvider(trustAll));
}
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.adminclient.deployment;
package io.quarkus.keycloak.admin.resteasy.client.deployment;

import jakarta.enterprise.context.RequestScoped;

Expand All @@ -23,11 +23,11 @@
import io.quarkus.deployment.builditem.ServiceStartBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveHierarchyIgnoreWarningBuildItem;
import io.quarkus.keycloak.admin.client.common.KeycloakAdminClientInjectionEnabled;
import io.quarkus.keycloak.adminclient.ResteasyKeycloakAdminClientRecorder;
import io.quarkus.keycloak.admin.client.common.deployment.KeycloakAdminClientInjectionEnabled;
import io.quarkus.keycloak.admin.resteasy.client.runtime.KeycloakAdminResteasyClientRecorder;
import io.quarkus.tls.TlsRegistryBuildItem;

public class KeycloakAdminClientProcessor {
public class KeycloakAdminResteasyClientProcessor {

@BuildStep
ReflectiveHierarchyIgnoreWarningBuildItem marker(BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> prod) {
Expand All @@ -49,20 +49,20 @@ ReflectiveClassBuildItem reflect() {

@Record(ExecutionTime.STATIC_INIT)
@BuildStep
void avoidRuntimeInitIssueInClientBuilderWrapper(ResteasyKeycloakAdminClientRecorder recorder) {
void avoidRuntimeInitIssueInClientBuilderWrapper(KeycloakAdminResteasyClientRecorder recorder) {
recorder.avoidRuntimeInitIssueInClientBuilderWrapper();
}

@Record(ExecutionTime.RUNTIME_INIT)
@Produce(ServiceStartBuildItem.class)
@BuildStep
public void integrate(ResteasyKeycloakAdminClientRecorder recorder, TlsRegistryBuildItem tlsRegistryBuildItem) {
public void integrate(KeycloakAdminResteasyClientRecorder recorder, TlsRegistryBuildItem tlsRegistryBuildItem) {
recorder.setClientProvider(tlsRegistryBuildItem.registry());
}

@Record(ExecutionTime.RUNTIME_INIT)
@BuildStep(onlyIf = KeycloakAdminClientInjectionEnabled.class)
public void registerKeycloakAdminClientBeans(ResteasyKeycloakAdminClientRecorder recorder,
public void registerKeycloakAdminClientBeans(KeycloakAdminResteasyClientRecorder recorder,
BuildProducer<SyntheticBeanBuildItem> syntheticBeanBuildItemBuildProducer) {
syntheticBeanBuildItemBuildProducer.produce(SyntheticBeanBuildItem
.configure(Keycloak.class)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.adminclient.deployment.devservices;
package io.quarkus.keycloak.admin.resteasy.client.deployment.devservices;

import java.util.Map;

Expand All @@ -10,7 +10,7 @@
import io.quarkus.devservices.keycloak.KeycloakAdminPageBuildItem;
import io.quarkus.devservices.keycloak.KeycloakDevServicesRequiredBuildItem;
import io.quarkus.devui.spi.page.CardPageBuildItem;
import io.quarkus.keycloak.admin.client.common.KeycloakAdminClientInjectionEnabled;
import io.quarkus.keycloak.admin.client.common.deployment.KeycloakAdminClientInjectionEnabled;

@BuildSteps(onlyIfNot = IsNormal.class, onlyIf = { DevServicesConfig.Enabled.class,
KeycloakAdminClientInjectionEnabled.class })
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.admin.client.reactive;
package io.quarkus.keycloak.admin.resteasy.client.deployment.test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.adminclient.deployment;
package io.quarkus.keycloak.admin.resteasy.client.deployment.test;

import java.io.File;
import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.keycloak.adminclient.deployment;
package io.quarkus.keycloak.admin.resteasy.client.deployment.test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.keycloak.adminclient;
package io.quarkus.keycloak.admin.resteasy.client.runtime;

import static io.quarkus.keycloak.admin.client.common.KeycloakAdminClientConfigUtil.validate;
import static io.quarkus.keycloak.admin.client.common.runtime.KeycloakAdminClientConfigUtil.validate;

import java.util.function.Supplier;

Expand All @@ -22,19 +22,19 @@
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

import io.quarkus.keycloak.admin.client.common.KeycloakAdminClientConfig;
import io.quarkus.keycloak.admin.client.common.runtime.KeycloakAdminClientConfig;
import io.quarkus.resteasy.common.runtime.jackson.QuarkusJacksonSerializer;
import io.quarkus.runtime.RuntimeValue;
import io.quarkus.runtime.annotations.Recorder;
import io.quarkus.tls.TlsConfiguration;
import io.quarkus.tls.TlsConfigurationRegistry;

@Recorder
public class ResteasyKeycloakAdminClientRecorder {
public class KeycloakAdminResteasyClientRecorder {

private final RuntimeValue<KeycloakAdminClientConfig> keycloakAdminClientConfigRuntimeValue;

public ResteasyKeycloakAdminClientRecorder(
public KeycloakAdminResteasyClientRecorder(
RuntimeValue<KeycloakAdminClientConfig> keycloakAdminClientConfigRuntimeValue) {
this.keycloakAdminClientConfigRuntimeValue = keycloakAdminClientConfigRuntimeValue;
}
Expand Down

0 comments on commit 202338f

Please sign in to comment.