This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git
commit a376ded50db67a1b93593c14073ad089440772db Author: lburgazzoli <[email protected]> AuthorDate: Mon Oct 14 16:43:55 2019 +0200 chore: quarkus fixes for camel-knative --- .../camel/component/knative/KnativeComponent.java | 22 ++++++++++++++++++++-- .../camel/component/knative/KnativeEndpoint.java | 9 +++------ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/camel-knative/camel-knative/src/main/java/org/apache/camel/component/knative/KnativeComponent.java b/camel-knative/camel-knative/src/main/java/org/apache/camel/component/knative/KnativeComponent.java index 90064c4..5529485 100644 --- a/camel-knative/camel-knative/src/main/java/org/apache/camel/component/knative/KnativeComponent.java +++ b/camel-knative/camel-knative/src/main/java/org/apache/camel/component/knative/KnativeComponent.java @@ -34,9 +34,13 @@ import org.apache.camel.support.service.ServiceHelper; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.PropertiesHelper; import org.apache.camel.util.StringHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @Component("knative") public class KnativeComponent extends DefaultComponent { + private static final Logger LOGGER = LoggerFactory.getLogger(KnativeComponent.class); + public static final String CONFIGURATION_ENV_VARIABLE = "CAMEL_KNATIVE_CONFIGURATION"; private KnativeConfiguration configuration; @@ -157,6 +161,8 @@ public class KnativeComponent extends DefaultComponent { @Override protected void doInit() throws Exception { + super.doInit(); + if (transport == null) { this.transport = getCamelContext().getRegistry().lookupByNameAndType(protocol.name(), KnativeTransport.class); @@ -166,14 +172,24 @@ public class KnativeComponent extends DefaultComponent { .getFactoryFinder(Knative.KNATIVE_TRANSPORT_RESOURCE_PATH) .newInstance(protocol.name(), KnativeTransport.class) .orElseThrow(() -> new RuntimeException("Error creating knative transport for protocol: " + protocol.name())); + } + + if (this.transport instanceof CamelContextAware) { + CamelContextAware camelContextAware = (CamelContextAware)this.transport; - CamelContextAware.trySetCamelContext(transport, getCamelContext()); + if (camelContextAware.getCamelContext() == null) { + camelContextAware.setCamelContext(getCamelContext()); + } } } + + LOGGER.info("found knative transport: {} for protocol: {}", transport, protocol.name()); } @Override protected void doStart() throws Exception { + super.doStart(); + if (this.transport != null && managedTransport) { ServiceHelper.startService(this.transport); } @@ -181,6 +197,8 @@ public class KnativeComponent extends DefaultComponent { @Override protected void doStop() throws Exception { + super.doStop(); + if (this.transport != null && managedTransport) { ServiceHelper.stopService(this.transport); } @@ -216,7 +234,7 @@ public class KnativeComponent extends DefaultComponent { conf.setServiceName(name); } - return new KnativeEndpoint(uri, this, Knative.Type.valueOf(type), name, this.transport, conf); + return new KnativeEndpoint(uri, this, Knative.Type.valueOf(type), name, conf); } // ************************ diff --git a/camel-knative/camel-knative/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java b/camel-knative/camel-knative/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java index a71b954..09ae6f7 100644 --- a/camel-knative/camel-knative/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java +++ b/camel-knative/camel-knative/src/main/java/org/apache/camel/component/knative/KnativeEndpoint.java @@ -28,7 +28,6 @@ import org.apache.camel.component.knative.ce.CloudEventProcessor; import org.apache.camel.component.knative.ce.CloudEventProcessors; import org.apache.camel.component.knative.spi.Knative; import org.apache.camel.component.knative.spi.KnativeEnvironment; -import org.apache.camel.component.knative.spi.KnativeTransport; import org.apache.camel.processor.Pipeline; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -52,15 +51,13 @@ public class KnativeEndpoint extends DefaultEndpoint { @UriParam private KnativeConfiguration configuration; - private final KnativeTransport transport; private final CloudEventProcessor cloudEvent; - public KnativeEndpoint(String uri, KnativeComponent component, Knative.Type type, String name, KnativeTransport transport, KnativeConfiguration configuration) { + public KnativeEndpoint(String uri, KnativeComponent component, Knative.Type type, String name, KnativeConfiguration configuration) { super(uri, component); this.type = type; this.name = name; - this.transport = transport; this.configuration = configuration; this.cloudEvent = CloudEventProcessors.fromSpecVersion(configuration.getCloudEventsSpecVersion()); } @@ -75,7 +72,7 @@ public class KnativeEndpoint extends DefaultEndpoint { final KnativeEnvironment.KnativeServiceDefinition service = lookupServiceDefinition(Knative.EndpointKind.sink); final Processor ceProcessor = cloudEvent.producer(this, service); final Processor ceConverter = new KnativeConversionProcessor(configuration.isJsonSerializationEnabled()); - final Producer producer = transport.createProducer(this, service); + final Producer producer = getComponent().getTransport().createProducer(this, service); PropertyBindingSupport.build() .withCamelContext(getCamelContext()) @@ -92,7 +89,7 @@ public class KnativeEndpoint extends DefaultEndpoint { final KnativeEnvironment.KnativeServiceDefinition service = lookupServiceDefinition(Knative.EndpointKind.source); final Processor ceProcessor = cloudEvent.consumer(this, service); final Processor pipeline = Pipeline.newInstance(getCamelContext(), ceProcessor, processor); - final Consumer consumer = transport.createConsumer(this, service, pipeline); + final Consumer consumer = getComponent().getTransport().createConsumer(this, service, pipeline); PropertyBindingSupport.build() .withCamelContext(getCamelContext())
