-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
False
-
False
-
Debezium UI should use fast-jar again with Quarkus 2.x.!
Since we were updating to Quarkus 2.x we had to switch from fast-jar to uber-jar because of some Classloader security/loading issue.
Although io.debezium.configserver.service.ConnectorIntegrator is in the same package/module/jar like its implementations (eg PostgresConnectorIntegrator, MysqlConnectorIntegrator, etc) we get some "not a subtype" errors.
For example:
2022-01-26 18:50:00,939 ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-0) HTTP Request to /api/connector-types/mysql failed, error id: e64fd60e-e058-4d13-a73b-038ac2026bc0-5: java.util.ServiceConfigurationError: io.debezium.configserver.service.ConnectorIntegrator: io.debezium.configserver.service.postgres.PostgresConnectorIntegrator not a subtype at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:589) at java.base/java.util.ServiceLoader.loadProvider(ServiceLoader.java:893) at java.base/java.util.ServiceLoader$ModuleServicesLookupIterator.hasNext(ServiceLoader.java:1077) at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1300) at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1385) at java.base/java.lang.Iterable.forEach(Iterable.java:74) at io.debezium.configserver.rest.ConnectorResource.<init>(ConnectorResource.java:64) at io.debezium.configserver.rest.ConnectorResource_Bean.create(Unknown Source) at io.debezium.configserver.rest.ConnectorResource_Bean.create(Unknown Source) at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:96) at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:29) at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:26) at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:26) at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69) at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:26) at io.debezium.configserver.rest.ConnectorResource_Bean.get(Unknown Source) at io.debezium.configserver.rest.ConnectorResource_Bean.get(Unknown Source) at io.quarkus.arc.impl.ArcContainerImpl.beanInstanceHandle(ArcContainerImpl.java:440) at io.quarkus.arc.impl.ArcContainerImpl.beanInstanceHandle(ArcContainerImpl.java:453) at io.quarkus.arc.impl.ArcContainerImpl$1.get(ArcContainerImpl.java:277) at io.quarkus.arc.impl.ArcContainerImpl$1.get(ArcContainerImpl.java:274) at io.quarkus.resteasy.common.runtime.QuarkusConstructorInjector.construct(QuarkusConstructorInjector.java:46) at org.jboss.resteasy.plugins.server.resourcefactory.POJOResourceFactory.createResource(POJOResourceFactory.java:71) at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:401) at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492) at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261) at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161) at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364) at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247) at io.quarkus.resteasy.runtime.standalone.RequestDispatcher.service(RequestDispatcher.java:73) at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:151) at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler$1.run(VertxRequestHandler.java:91) at io.quarkus.vertx.core.runtime.VertxCoreRecorder$13.runWith(VertxCoreRecorder.java:543) at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478) at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29) at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:829)
when collecting the integrators with that code:
Map<String, ConnectorIntegrator> integrators = new HashMap<>(); ServiceLoader.load(ConnectorIntegrator.class) .forEach(integrator -> integrators.put(integrator.getConnectorType().id, integrator));
- is incorporated by
-
DBZ-4109 Upgrade dependencies (Quarkus, etc) of Debezium UI
- Closed
- links to
-
RHEA-2023:120698 Red Hat build of Debezium 2.3.4 release