From 286e5d5a9e62e3cb8dd72690f58c51d7dc50bf0d Mon Sep 17 00:00:00 2001 From: Marco Carletti Date: Tue, 15 Oct 2024 12:30:21 +0200 Subject: [PATCH] CAMEL-21348: Adds jolokia example --- README.adoc | 4 +- jolokia/README.adoc | 53 +++++ jolokia/docs/add-connection.png | Bin 0 -> 45617 bytes jolokia/docs/route-monitor.png | Bin 0 -> 65157 bytes jolokia/pom.xml | 105 +++++++++ .../apache/camel/example/MySpringBean.java | 38 ++++ .../example/MySpringBootApplication.java | 32 +++ .../camel/example/MySpringBootRouter.java | 40 ++++ .../src/main/resources/META-INF/LICENSE.txt | 203 ++++++++++++++++++ .../src/main/resources/META-INF/NOTICE.txt | 11 + .../src/main/resources/application.properties | 63 ++++++ pom.xml | 1 + 12 files changed, 549 insertions(+), 1 deletion(-) create mode 100644 jolokia/README.adoc create mode 100644 jolokia/docs/add-connection.png create mode 100644 jolokia/docs/route-monitor.png create mode 100644 jolokia/pom.xml create mode 100644 jolokia/src/main/java/org/apache/camel/example/MySpringBean.java create mode 100644 jolokia/src/main/java/org/apache/camel/example/MySpringBootApplication.java create mode 100644 jolokia/src/main/java/org/apache/camel/example/MySpringBootRouter.java create mode 100644 jolokia/src/main/resources/META-INF/LICENSE.txt create mode 100644 jolokia/src/main/resources/META-INF/NOTICE.txt create mode 100644 jolokia/src/main/resources/application.properties diff --git a/README.adoc b/README.adoc index 9c988d67c..fecc37ff2 100644 --- a/README.adoc +++ b/README.adoc @@ -27,7 +27,7 @@ readme's instructions. === Examples // examples: START -Number of Examples: 60 (0 deprecated) +Number of Examples: 61 (0 deprecated) [width="100%",cols="4,2,4",options="header"] |=== @@ -109,6 +109,8 @@ Number of Examples: 60 (0 deprecated) | link:health-checks/readme.adoc[Health Checks] (health-checks) | Management and Monitoring | An example how to use custom health-checks +| link:jolokia/README.adoc[Jolokia] (jolokia) | Management and Monitoring | An example that uses Jolokia to monitor and to manage Camel Routes + | link:metrics/README.adoc[Metrics] (metrics) | Management and Monitoring | An example showing how to work with Camel and Spring Boot and report metrics to Graphite | link:observation/README.adoc[Micrometer Observation] (observation) | Management and Monitoring | An example showing how to trace incoming and outgoing messages from Camel with Micrometer Observation diff --git a/jolokia/README.adoc b/jolokia/README.adoc new file mode 100644 index 000000000..e88e6be45 --- /dev/null +++ b/jolokia/README.adoc @@ -0,0 +1,53 @@ +== Jolokia Example + +This example shows how Camel can be monitored and managed using https://jolokia.org[Jolokia] and https://hawt.io[Hawtio] + +=== How to run + +You can run this example using + + mvn spring-boot:run + +=== Run Hawtio + +Hawtio is a lightweight and modular Web console for managing Java applications. +It can be installed/used in more ways, see https://hawt.io/docs/get-started.html[Get Started Guide] + +In the example I am suggesting the jbang way to install it + + jbang app install hawtio@hawtio/hawtio + hawtio --port 8090 + +=== Connect to the application + +Open Hawtio UI at http://localhost:8090/hawtio/connect/remote[] and click on `Add connection` button filling the properties as in the picture + +- Name: `as you prefer [eg camel]` +- Scheme: `http` +- Host: `localhost` +- Port: `8778` +- Path: `/jolokia/` + +image::docs/add-connection.png[] + +click on `Add` button, this action will create a connection in the list of the connections, +then connect on it clicking on the button `Connect` + +then it is possible to monitor and to manage routes + +image::docs/route-monitor.png[] + +=== Configure Jolokia endpoint + +The Jolokia autoconfiguration is an alternative to the Jolokia agent, +more information about the usage and the configuration can be found on https://github.com/apache/camel-spring-boot/blob/main/components-starter/camel-jolokia-starter/src/main/docs/jolokia.adoc[component guide] + +=== Help and contributions + +If you hit any problem using Camel or have some feedback, then please +https://camel.apache.org/community/support/[let us know]. + +We also love contributors, so +https://camel.apache.org/community/contributing/[get involved] :-) + +The Camel riders! diff --git a/jolokia/docs/add-connection.png b/jolokia/docs/add-connection.png new file mode 100644 index 0000000000000000000000000000000000000000..c76f6da7c3a53952288b09f9dd47f9317997aa9a GIT binary patch literal 45617 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 literal 0 HcmV?d00001 diff --git a/jolokia/docs/route-monitor.png b/jolokia/docs/route-monitor.png new file mode 100644 index 0000000000000000000000000000000000000000..3270312949c3ea7b79e8356b21960264153e40c2 GIT binary patch literal 65157 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 + + + + 4.0.0 + + + examples + org.apache.camel.springboot.example + 4.9.0-SNAPSHOT + + + camel-example-spring-boot-jolokia + Camel SB Examples :: Jolokia + An example that uses Jolokia to monitor and to manage Camel Routes + jar + + + UTF-8 + Management and Monitoring + + + + + + + org.apache.camel.springboot + camel-spring-boot-bom + ${project.version} + pom + import + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot-version} + pom + import + + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + + org.apache.camel.springboot + camel-spring-boot-starter + + + org.apache.camel.springboot + camel-stream-starter + + + org.apache.camel.springboot + camel-jolokia-starter + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot-version} + + + + repackage + + + + + + + diff --git a/jolokia/src/main/java/org/apache/camel/example/MySpringBean.java b/jolokia/src/main/java/org/apache/camel/example/MySpringBean.java new file mode 100644 index 000000000..368df83e9 --- /dev/null +++ b/jolokia/src/main/java/org/apache/camel/example/MySpringBean.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.example; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * A bean that returns a message when you call the {@link #saySomething()} method. + *

+ * Uses @Component("myBean") to register this bean with the name myBean + * that we use in the Camel route to lookup this bean. + */ +@Component("myBean") +public class MySpringBean { + + @Value("${greeting}") + private String say; + + public String saySomething() { + return say; + } + +} diff --git a/jolokia/src/main/java/org/apache/camel/example/MySpringBootApplication.java b/jolokia/src/main/java/org/apache/camel/example/MySpringBootApplication.java new file mode 100644 index 000000000..ca087ed68 --- /dev/null +++ b/jolokia/src/main/java/org/apache/camel/example/MySpringBootApplication.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MySpringBootApplication { + + /** + * A main method to start this application. + */ + public static void main(String[] args) { + SpringApplication.run(MySpringBootApplication.class, args); + } + +} diff --git a/jolokia/src/main/java/org/apache/camel/example/MySpringBootRouter.java b/jolokia/src/main/java/org/apache/camel/example/MySpringBootRouter.java new file mode 100644 index 000000000..72df5c868 --- /dev/null +++ b/jolokia/src/main/java/org/apache/camel/example/MySpringBootRouter.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.example; + +import org.apache.camel.builder.RouteBuilder; +import org.springframework.stereotype.Component; + +/** + * A simple Camel route that triggers from a timer and calls a bean and prints to system out. + *

+ * Use @Component to make Camel auto detect this route when starting. + */ +@Component +public class MySpringBootRouter extends RouteBuilder { + + @Override + public void configure() { + from("timer:hello?period={{timer.period}}").routeId("hello") + .transform().method("myBean", "saySomething") + .filter(simple("${body} contains 'foo'")) + .to("log:foo") + .end() + .to("stream:out"); + } + +} diff --git a/jolokia/src/main/resources/META-INF/LICENSE.txt b/jolokia/src/main/resources/META-INF/LICENSE.txt new file mode 100644 index 000000000..6b0b1270f --- /dev/null +++ b/jolokia/src/main/resources/META-INF/LICENSE.txt @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/jolokia/src/main/resources/META-INF/NOTICE.txt b/jolokia/src/main/resources/META-INF/NOTICE.txt new file mode 100644 index 000000000..2e215bf2e --- /dev/null +++ b/jolokia/src/main/resources/META-INF/NOTICE.txt @@ -0,0 +1,11 @@ + ========================================================================= + == NOTICE file corresponding to the section 4 d of == + == the Apache License, Version 2.0, == + == in this case for the Apache Camel distribution. == + ========================================================================= + + This product includes software developed by + The Apache Software Foundation (http://www.apache.org/). + + Please read the different LICENSE files present in the licenses directory of + this distribution. diff --git a/jolokia/src/main/resources/application.properties b/jolokia/src/main/resources/application.properties new file mode 100644 index 000000000..7d69d7969 --- /dev/null +++ b/jolokia/src/main/resources/application.properties @@ -0,0 +1,63 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- + +# the name of Camel +camel.springboot.name = CamelJolokia + +# what to say +greeting = Hello World + +# how often to trigger the timer +timer.period = 2000 + +# to automatic shutdown the JVM after a period of time +#camel.springboot.duration-max-seconds=60 +#camel.springboot.duration-max-messages=100 + +# add for example: &repeatCount=5 to the timer endpoint to make Camel idle +#camel.springboot.duration-max-idle-seconds=15 + +# expose actuator endpoint via HTTP +management.endpoints.web.exposure.include=info,health,camelroutes + +# turn on actuator health check +management.endpoint.health.enabled = true + +# allow to obtain basic information about camel routes (read only mode) +management.endpoint.camelroutes.enabled = true +management.endpoint.camelroutes.read-only = true + +# to configure logging levels +#logging.level.org.springframework = INFO +#logging.level.org.apache.camel.spring.boot = INFO +#logging.level.org.apache.camel.impl = DEBUG +#logging.level.sample.camel = DEBUG +#logging.level.org.jolokia = TRACE +#logging.level.org.apache.camel.component.jolokia = TRACE + +#to disable the autoconfiguration, this configuration doesn't involve the actuator setup +#camel.component.jolokia.enabled=false + +#to enable inflight monitoring +#camel.springboot.inflight-repository-browse-enabled=true + +#config in https://jolokia.org/reference/html/manual/spring.html#_jolokiaagent +#camel.component.jolokia.systemPropertiesMode=override + +#config in https://jolokia.org/reference/html/manual/agents.html#jvm-agent +#camel.component.jolokia.serverConfig.discoveryEnabled=true + diff --git a/pom.xml b/pom.xml index 09c0d6c81..21b5682c7 100644 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,7 @@ http-ssl infinispan jira + jolokia kafka-avro kafka-offsetrepository kamelet-chucknorris