Skip to content

Commit

Permalink
Add xml-jaxb extension back to management extension
Browse files Browse the repository at this point in the history
Fixes #6050
  • Loading branch information
jamesnetherton committed Apr 29, 2024
1 parent 3d0dc4c commit 6de8ca9
Show file tree
Hide file tree
Showing 11 changed files with 210 additions and 28 deletions.
4 changes: 4 additions & 0 deletions extensions/management/deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xml-jaxb-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-management</artifactId>
Expand Down
4 changes: 4 additions & 0 deletions extensions/management/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xml-io-dsl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xml-jaxb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-management</artifactId>
Expand Down
6 changes: 0 additions & 6 deletions extensions/soap/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,6 @@
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-soap</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jaxb</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>jakarta.xml.ws</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
import javax.management.ObjectName;

import jakarta.inject.Inject;
import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.PATCH;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
Expand Down Expand Up @@ -81,6 +83,23 @@ public String invokeRoute(@QueryParam("endpointUri") String endpointUri) {
return template.requestBody(endpointUri, null, String.class);
}

@PATCH
@Path("/route")
public void updateRoute(@QueryParam("routeId") String routeId, String xml) throws Exception {
String mbeanName = "org.apache.camel:context=%s,type=routes,name=\"%s\"".formatted(getContextName(), routeId);
ObjectInstance mbean = getMBean(mbeanName);
getMBeanServer().invoke(mbean.getObjectName(), "updateRouteFromXml",
new Object[] { xml },
new String[] { String.class.getName() });
}

@DELETE
@Path("/route")
public void removeRoute(@QueryParam("routeId") String routeId) throws Exception {
// No need for JMX in this case as we're just cleaning up for a test case
camelContext.removeRoute(routeId);
}

private ObjectInstance getMBean(String name) throws MalformedObjectNameException {
ObjectName objectName = new ObjectName(name);
Set<ObjectInstance> mbeans = getMBeanServer().queryMBeans(objectName, null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@
## limitations under the License.
## ---------------------------------------------------------------------------
quarkus.native.monitoring=jmxserver

# Required to update routes via JMX
camel.main.jmxUpdateRouteEnabled = true
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,58 @@ public void testDumpRoutesAsXml() {
.post("/management/invoke")
.then()
.statusCode(200)
.body(containsString("<from id=\"from1\" uri=\"direct:start\"/>"));
.body(containsString("uri=\"direct:start\""));
}

@Test
public void testUpdateRoute() {
// Modify the hello route
String updatedRouteXml = """
<route id="hello" xmlns="http://camel.apache.org/schema/spring">
<from uri="direct:updated"/>
<log message="Updated hello route"/>
</route>
""";

RestAssured.given()
.queryParam("routeId", "hello")
.body(updatedRouteXml)
.patch("/management/route")
.then()
.statusCode(204);

RestAssured.given()
.queryParam("name", "org.apache.camel:type=context,*")
.queryParam("operation", "dumpRoutesAsXml")
.post("/management/invoke")
.then()
.statusCode(200)
.body(containsString("uri=\"direct:updated\""));

// Restore the original hello route
String originalRouteXml = """
<route id="hello" xmlns="http://camel.apache.org/schema/spring">
<from uri="direct:start"/>
<setBody>
<constant>Hello World</constant>
</setBody>
</route>
""";

RestAssured.given()
.queryParam("routeId", "hello")
.body(originalRouteXml)
.patch("/management/route")
.then()
.statusCode(204);

RestAssured.given()
.queryParam("name", "org.apache.camel:type=context,*")
.queryParam("operation", "dumpRoutesAsXml")
.post("/management/invoke")
.then()
.statusCode(200)
.body(containsString("uri=\"direct:start\""));
}

@Test
Expand Down
1 change: 0 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@
<java-json-tools.json-patch.version>${json-patch-version}</java-json-tools.json-patch.version><!-- A replacement for com.github.fge:json-patch -->
<jodatime.version>${jodatime2-version}</jodatime.version><!-- Mess in transitive dependencies of Splunk -->
<jolokia.version>1.7.2</jolokia.version><!-- For camel-k -->
<jaxb-core.version>${jaxb-core-version}</jaxb-core.version>
<jaxen.version>1.2.0</jaxen.version>
<javassist.version>${javassist-version}</javassist.version><!-- debezium -->
<jetty.version>${jetty-version}</jetty.version>
Expand Down
37 changes: 32 additions & 5 deletions poms/bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1521,6 +1521,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-jaxb</artifactId>
<version>${camel.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
Expand Down Expand Up @@ -2324,6 +2330,10 @@
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
Expand Down Expand Up @@ -2423,6 +2433,16 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-soap</artifactId>
<version>${camel.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jaxb</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
Expand Down Expand Up @@ -2515,6 +2535,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-swift</artifactId>
<version>${camel.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
Expand Down Expand Up @@ -2735,6 +2761,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-xml-jaxb</artifactId>
<version>${camel.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
Expand Down Expand Up @@ -6518,11 +6550,6 @@
<artifactId>retrofit</artifactId>
<version>${retrofit.version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>${jaxb-core.version}</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
Expand Down
37 changes: 32 additions & 5 deletions poms/bom/src/main/generated/flattened-full-pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1458,6 +1458,12 @@
<groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-jaxb</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.5.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>*</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
Expand Down Expand Up @@ -2261,6 +2267,10 @@
<groupId>org.codehaus.mojo</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>animal-sniffer-annotations</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</exclusion>
<exclusion>
<groupId>com.sun.xml.bind</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>*</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</exclusion>
</exclusions>
</dependency>
<dependency>
Expand Down Expand Up @@ -2360,6 +2370,16 @@
<groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-soap</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.5.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>*</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</exclusion>
<exclusion>
<groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-jaxb</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
Expand Down Expand Up @@ -2452,6 +2472,12 @@
<groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-swift</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.5.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>*</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
Expand Down Expand Up @@ -2672,6 +2698,12 @@
<groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-xml-jaxb</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.5.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>*</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
Expand Down Expand Up @@ -6440,11 +6472,6 @@
<artifactId>retrofit</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>2.9.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>jaxb-core</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.0.5</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
<dependency>
<groupId>commons-beanutils</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>commons-beanutils</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
Expand Down
37 changes: 32 additions & 5 deletions poms/bom/src/main/generated/flattened-reduced-pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1458,6 +1458,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-jaxb</artifactId>
<version>4.5.0</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
Expand Down Expand Up @@ -2261,6 +2267,10 @@
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
Expand Down Expand Up @@ -2360,6 +2370,16 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-soap</artifactId>
<version>4.5.0</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jaxb</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
Expand Down Expand Up @@ -2452,6 +2472,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-swift</artifactId>
<version>4.5.0</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
Expand Down Expand Up @@ -2672,6 +2698,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-xml-jaxb</artifactId>
<version>4.5.0</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
Expand Down Expand Up @@ -6425,11 +6457,6 @@
<artifactId>retrofit</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>4.0.5</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
Expand Down
Loading

0 comments on commit 6de8ca9

Please sign in to comment.