Skip to content

Commit

Permalink
Remove usage of Vertx.currentContext() (#1055)
Browse files Browse the repository at this point in the history
Fix errors like:

```
\"io.vertx.core.Vertx.currentContext()\" is null\n\tat dev.knative.eventing.kafka.broker.core.security.KubernetesAuthProvider.getCredentials(KubernetesAuthProvider.java:38)
```

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
  • Loading branch information
pierDipi committed Apr 23, 2024
1 parent d88f7fc commit fe66f7d
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,16 @@
import dev.knative.eventing.kafka.broker.contract.DataPlaneContract;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.vertx.core.Future;
import io.vertx.core.Vertx;

/**
* AuthProvider provides auth credentials.
*/
@FunctionalInterface
public interface AuthProvider {

static AuthProvider kubernetes() {
return new KubernetesAuthProvider(new DefaultKubernetesClient());
static AuthProvider kubernetes(final Vertx vertx) {
return new KubernetesAuthProvider(vertx, new DefaultKubernetesClient());
}

static AuthProvider noAuth() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,16 @@

class KubernetesAuthProvider implements AuthProvider {

private final Vertx vertx;
private final KubernetesClient kubernetesClient;

KubernetesAuthProvider(final KubernetesClient client) {
KubernetesAuthProvider(final Vertx vertx, final KubernetesClient client) {
this.vertx = vertx;
this.kubernetesClient = client;
}

private Future<Credentials> getCredentials(final DataPlaneContract.Reference secretReference) {
return Vertx.currentContext().executeBlocking(p -> {
return this.vertx.executeBlocking(p -> {
try {
final Secret secret = getSecretFromKubernetes(secretReference);
final var credentials = new KubernetesCredentials(secret);
Expand All @@ -52,7 +54,7 @@ private Future<Credentials> getCredentials(final DataPlaneContract.Reference sec
}

private Future<Credentials> getCredentials(final DataPlaneContract.MultiSecretReference secretReferences) {
return Vertx.currentContext().executeBlocking(p -> {
return this.vertx.executeBlocking(p -> {
try {
final var credentials = new KubernetesCredentials(secretDataOf(secretReferences));
final var error = CredentialsValidator.validate(credentials);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ public class KubernetesAuthProviderTest {
private static final String userPasswordSecretKey = "password";

@BeforeEach
public void setUp() {
provider = new KubernetesAuthProvider(client);
public void setUp(final Vertx vertx) {
provider = new KubernetesAuthProvider(vertx, client);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ public static void start(
consumerConfig,
webClientOptions,
producerConfig,
AuthProvider.kubernetes(),
AuthProvider.kubernetes(vertx),
Metrics.getRegistry(),
reactiveConsumerFactory,
reactiveProducerFactory),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public Verticle get() {
httpServerOptions,
httpsServerOptions,
v -> new IngressProducerReconcilableStore(
AuthProvider.kubernetes(),
AuthProvider.kubernetes(v),
producerConfigs,
properties -> kafkaProducerFactory.create(v, properties)),
this.ingressRequestHandler,
Expand Down

0 comments on commit fe66f7d

Please sign in to comment.