-
Notifications
You must be signed in to change notification settings - Fork 224
Closed
Description
In order to share similar functionality between controllers, following controller class structure was designed:
public abstract class AbstractPipelineRunController<T extends AbstractPipelineRun> implements ResourceController<T> {}
@Controller public class ClusterPipelineRunController extends AbstractPipelineRunController<ClusterPipelineRunResource> {}
@Controller public class PipelineRunController extends AbstractPipelineRunController<PipelineRunResource> {}
And for model classes:
public abstract class AbstractPipelineRun extends CustomResource<RunSpec, RunStatus> {}
public class PipelineRunResource extends AbstractPipelineRun implements Namespaced {}
public class ClusterPipelineRunResource extends AbstractPipelineRun {}
Unfortunately such hierarchy results in IllegalArgumentException
. It was tested with 1.7.1 release as well as master.
Below is a stacktrace from master.
Listening for transport dt_socket at address: 5005
Registered com.redhat.cpaas.v1alpha1.pipeline.AbstractPipelineRun.RunSpec
Registered com.redhat.cpaas.v1alpha1.pipeline.AbstractPipelineRun.RunStatus
2021-02-19 17:25:33,232 INFO [org.jbo.threads] (main) JBoss Threads version 3.2.0.Final
2021-02-19 17:25:34,069 INFO [io.jav.qua.ext.dep.QuarkusExtensionProcessor] (build-14) Processed 'com.redhat.cpaas.k8s.controllers.PipelineRunController' controller named 'pipelineruncontroller' for 'pipelineruns.cpaas.redhat.com' CR (version 'cpaas.redhat.com/v1alpha1')
2021-02-19 17:25:34,087 ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[error]: Build step io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor#createConfigurationServiceAndOperator threw an exception: java.lang.IllegalArgumentException
at io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor.createControllerConfiguration(QuarkusExtensionProcessor.java:127)
at io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor.lambda$createConfigurationServiceAndOperator$0(QuarkusExtensionProcessor.java:78)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1603)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor.createConfigurationServiceAndOperator(QuarkusExtensionProcessor.java:79)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:920)
at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
at java.base/java.lang.Thread.run(Thread.java:834)
at org.jboss.threads.JBossThread.run(JBossThread.java:501)
at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:308)
at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:182)
at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:59)
at io.quarkus.deployment.dev.IsolatedDevModeMain.firstStart(IsolatedDevModeMain.java:78)
at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:372)
at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:55)
at io.quarkus.bootstrap.app.CuratedApplication.runInCl(CuratedApplication.java:128)
at io.quarkus.bootstrap.app.CuratedApplication.runInAugmentClassLoader(CuratedApplication.java:81)
at io.quarkus.deployment.dev.DevModeMain.start(DevModeMain.java:144)
at io.quarkus.deployment.dev.DevModeMain.main(DevModeMain.java:63)
Caused by: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[error]: Build step io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor#createConfigurationServiceAndOperator threw an exception: java.lang.IllegalArgumentException
at io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor.createControllerConfiguration(QuarkusExtensionProcessor.java:127)
at io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor.lambda$createConfigurationServiceAndOperator$0(QuarkusExtensionProcessor.java:78)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1603)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor.createConfigurationServiceAndOperator(QuarkusExtensionProcessor.java:79)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:920)
at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
at java.base/java.lang.Thread.run(Thread.java:834)
at org.jboss.threads.JBossThread.run(JBossThread.java:501)
at io.quarkus.builder.Execution.run(Execution.java:116)
at io.quarkus.builder.BuildExecutionBuilder.execute(BuildExecutionBuilder.java:79)
at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:153)
at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:306)
... 9 more
Caused by: java.lang.IllegalArgumentException
at io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor.createControllerConfiguration(QuarkusExtensionProcessor.java:127)
at io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor.lambda$createConfigurationServiceAndOperator$0(QuarkusExtensionProcessor.java:78)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1603)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at io.javaoperatorsdk.quarkus.extension.deployment.QuarkusExtensionProcessor.createConfigurationServiceAndOperator(QuarkusExtensionProcessor.java:79)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:920)
at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
at java.base/java.lang.Thread.run(Thread.java:834)
at org.jboss.threads.JBossThread.run(JBossThread.java:501)
/CC @metacosm
Metadata
Metadata
Assignees
Labels
No labels