You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/02/08 08:56:10 UTC
[camel] branch master updated: Add startupstep for xml routes loader
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 28a1169 Add startupstep for xml routes loader
28a1169 is described below
commit 28a1169108ea8f36a6ef17410056cf1a4729842f
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Feb 8 09:55:28 2021 +0100
Add startupstep for xml routes loader
---
.../camel/xml/in/XmlRoutesBuilderLoader.java | 51 ++++++++++++++++------
.../camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java | 51 ++++++++++++++++------
2 files changed, 74 insertions(+), 28 deletions(-)
diff --git a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java b/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java
index 3547736..9c29478 100644
--- a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java
+++ b/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java
@@ -18,12 +18,15 @@ package org.apache.camel.xml.in;
import java.io.InputStream;
+import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.RoutesBuilder;
+import org.apache.camel.StartupStep;
import org.apache.camel.api.management.ManagedAttribute;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.spi.Resource;
import org.apache.camel.spi.RoutesBuilderLoader;
+import org.apache.camel.spi.StartupStepRecorder;
import org.apache.camel.spi.annotations.JdkService;
import org.apache.camel.support.RoutesBuilderLoaderSupport;
@@ -34,6 +37,14 @@ public class XmlRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
public static final String EXTENSION = "xml";
public static final String NAMESPACE = "http://camel.apache.org/schema/spring";
+ private StartupStepRecorder recorder;
+
+ @Override
+ protected void doBuild() throws Exception {
+ super.doBuild();
+ recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder();
+ }
+
@ManagedAttribute(description = "Supported file extension")
@Override
public String getSupportedExtension() {
@@ -45,20 +56,32 @@ public class XmlRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- try (InputStream is = resource.getInputStream()) {
- new ModelParser(is, NAMESPACE)
- .parseRouteTemplatesDefinition()
- .ifPresent(this::setRouteTemplateCollection);
- }
- try (InputStream is = resource.getInputStream()) {
- new ModelParser(is, NAMESPACE)
- .parseRestsDefinition()
- .ifPresent(this::setRestCollection);
- }
- try (InputStream is = resource.getInputStream()) {
- new ModelParser(is, NAMESPACE)
- .parseRoutesDefinition()
- .ifPresent(this::setRouteCollection);
+ // we use configure to load the routes
+
+ StartupStep step = recorder != null
+ ? recorder.beginStep(XmlRoutesBuilderLoader.class, resource.getLocation(),
+ "Loading and Parsing XML routes")
+ : null;
+ try {
+ try (InputStream is = resource.getInputStream()) {
+ new ModelParser(is, NAMESPACE)
+ .parseRouteTemplatesDefinition()
+ .ifPresent(this::setRouteTemplateCollection);
+ }
+ try (InputStream is = resource.getInputStream()) {
+ new ModelParser(is, NAMESPACE)
+ .parseRestsDefinition()
+ .ifPresent(this::setRestCollection);
+ }
+ try (InputStream is = resource.getInputStream()) {
+ new ModelParser(is, NAMESPACE)
+ .parseRoutesDefinition()
+ .ifPresent(this::setRouteCollection);
+ }
+ } finally {
+ if (recorder != null) {
+ recorder.endStep(step);
+ }
}
}
};
diff --git a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java
index bf4f3a8..566a8e7 100644
--- a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java
+++ b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java
@@ -18,7 +18,9 @@ package org.apache.camel.xml.jaxb;
import java.io.InputStream;
+import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.RoutesBuilder;
+import org.apache.camel.StartupStep;
import org.apache.camel.api.management.ManagedAttribute;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.builder.RouteBuilder;
@@ -27,6 +29,7 @@ import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.model.rest.RestsDefinition;
import org.apache.camel.spi.Resource;
import org.apache.camel.spi.RoutesBuilderLoader;
+import org.apache.camel.spi.StartupStepRecorder;
import org.apache.camel.spi.annotations.JdkService;
import org.apache.camel.support.RoutesBuilderLoaderSupport;
@@ -38,6 +41,14 @@ public class JaxbXmlRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
public static final String EXTENSION = "xml";
+ private StartupStepRecorder recorder;
+
+ @Override
+ protected void doBuild() throws Exception {
+ super.doBuild();
+ recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder();
+ }
+
@ManagedAttribute(description = "Supported file extension")
@Override
public String getSupportedExtension() {
@@ -49,24 +60,36 @@ public class JaxbXmlRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- try (InputStream is = resource.getInputStream()) {
- RouteTemplatesDefinition templates = loadRouteTemplatesDefinition(getCamelContext(), is);
- if (templates != null) {
- setRouteTemplateCollection(templates);
+ // we use configure to load the routes
+
+ StartupStep step = recorder != null
+ ? recorder.beginStep(JaxbXmlRoutesBuilderLoader.class, resource.getLocation(),
+ "Loading and Parsing XML routes")
+ : null;
+ try {
+ try (InputStream is = resource.getInputStream()) {
+ RouteTemplatesDefinition templates = loadRouteTemplatesDefinition(getCamelContext(), is);
+ if (templates != null) {
+ setRouteTemplateCollection(templates);
+ }
}
- }
- try (InputStream is = resource.getInputStream()) {
- RestsDefinition rests = loadRestsDefinition(getCamelContext(), is);
- if (rests != null) {
- setRestCollection(rests);
+ try (InputStream is = resource.getInputStream()) {
+ RestsDefinition rests = loadRestsDefinition(getCamelContext(), is);
+ if (rests != null) {
+ setRestCollection(rests);
+ }
}
- }
- try (InputStream is = resource.getInputStream()) {
- RoutesDefinition routes = loadRoutesDefinition(getCamelContext(), is);
- if (routes != null) {
- setRouteCollection(routes);
+ try (InputStream is = resource.getInputStream()) {
+ RoutesDefinition routes = loadRoutesDefinition(getCamelContext(), is);
+ if (routes != null) {
+ setRouteCollection(routes);
+ }
+ }
+ } finally {
+ if (recorder != null) {
+ recorder.endStep(step);
}
}
}