This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 15924b82693 camel-jbang - Add reset-stats command 15924b82693 is described below commit 15924b8269384904a3fdba8036e7cdf02cdbf679 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Sep 8 15:25:32 2022 +0200 camel-jbang - Add reset-stats command --- .../camel/cli/connector/LocalCliConnector.java | 6 +++ .../dsl/jbang/core/commands/CamelJBangMain.java | 2 + .../commands/action/CamelResetStatsAction.java | 51 ++++++++++++++++++++++ 3 files changed, 59 insertions(+) diff --git a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java index 95ef7ea11ae..9be325e65b1 100644 --- a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java +++ b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java @@ -38,6 +38,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Route; +import org.apache.camel.api.management.ManagedCamelContext; import org.apache.camel.console.DevConsole; import org.apache.camel.spi.CliConnector; import org.apache.camel.spi.CliConnectorFactory; @@ -234,6 +235,11 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C camelContext.addService(reloader); } reloader.onReload("Camel CLI"); + } else if ("reset-stats".equals(action)) { + ManagedCamelContext mcc = camelContext.getExtension(ManagedCamelContext.class); + if (mcc != null) { + mcc.getManagedCamelContext().reset(true); + } } // action done so delete file diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java index 04e60a92f8e..390289c5409 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java @@ -23,6 +23,7 @@ import org.apache.camel.catalog.DefaultCamelCatalog; import org.apache.camel.dsl.jbang.core.commands.action.CamelAction; import org.apache.camel.dsl.jbang.core.commands.action.CamelGCAction; import org.apache.camel.dsl.jbang.core.commands.action.CamelReloadAction; +import org.apache.camel.dsl.jbang.core.commands.action.CamelResetStatsAction; import org.apache.camel.dsl.jbang.core.commands.action.CamelRouteStartAction; import org.apache.camel.dsl.jbang.core.commands.action.CamelRouteStopAction; import org.apache.camel.dsl.jbang.core.commands.process.CamelContextStatus; @@ -58,6 +59,7 @@ public class CamelJBangMain implements Callable<Integer> { .addSubcommand("cmd", new CommandLine(new CamelAction(main)) .addSubcommand("start-route", new CommandLine(new CamelRouteStartAction(main))) .addSubcommand("stop-route", new CommandLine(new CamelRouteStopAction(main))) + .addSubcommand("reset-stats", new CommandLine(new CamelResetStatsAction(main))) .addSubcommand("reload", new CommandLine(new CamelReloadAction(main))) .addSubcommand("gc", new CommandLine(new CamelGCAction(main)))) .addSubcommand("generate", new CommandLine(new CodeGenerator(main)) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelResetStatsAction.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelResetStatsAction.java new file mode 100644 index 00000000000..ff23a705597 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelResetStatsAction.java @@ -0,0 +1,51 @@ +/* + * 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.dsl.jbang.core.commands.action; + +import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; +import org.apache.camel.util.IOHelper; +import org.apache.camel.util.json.JsonObject; +import picocli.CommandLine; + +import java.io.File; +import java.util.List; + +@CommandLine.Command(name = "reset-stats", + description = "Reset performance statistics") +public class CamelResetStatsAction extends ActionBaseCommand { + + @CommandLine.Parameters(description = "Name or pid of running Camel integration. (default selects all)", arity = "0..1") + String name = "*"; + + public CamelResetStatsAction(CamelJBangMain main) { + super(main); + } + + @Override + public Integer call() throws Exception { + List<Long> pids = findPids(name); + for (long pid : pids) { + JsonObject root = new JsonObject(); + root.put("action", "reset-stats"); + File f = getActionFile("" + pid); + IOHelper.writeText(root.toJson(), f); + } + + return 0; + } + +}