public Object execute()

in shell/src/main/java/org/apache/camel/karaf/shell/ContextInflight.java [55:91]


    public Object execute() throws Exception {
        List<CamelContext> camelContexts = getCamelContext(name);

        ShellTable table = new ShellTable();
        table.column("ExchangeId");
        table.column("From Route");
        table.column("Context");
        table.column("Route");
        table.column("Node");
        table.column("Elapsed (ms)");
        table.column("Duration (ms)");

        for (CamelContext camelContext : camelContexts) {
            ManagementAgent agent = camelContext.getManagementStrategy().getManagementAgent();
            if (agent != null) {
                MBeanServer mBeanServer = agent.getMBeanServer();
                ObjectName on = new ObjectName(agent.getMBeanObjectDomainName() + ":type=services,name=DefaultInflightRepository,context=" + camelContext.getManagementName());
                if (mBeanServer.isRegistered(on)) {
                    TabularData list = (TabularData) mBeanServer.invoke(on, "browse", new Object[]{route, limit, sortByLongestDuration}, new String[]{"java.lang.String", "int", "boolean"});
                    Collection<CompositeData> values = (Collection<CompositeData>) list.values();
                    for (CompositeData data : values) {
                        Map<String, Object> row = new LinkedHashMap<>();
                        Object exchangeId = data.get("exchangeId");
                        Object fromRouteId = data.get("fromRouteId");
                        Object routeId = data.get("routeId");
                        Object nodeId = data.get("nodeId");
                        Object elapsed = data.get("elapsed");
                        Object duration = data.get("duration");
                        table.addRow().addContent(exchangeId, fromRouteId, camelContext.getName(), routeId, nodeId, elapsed, duration);
                    }
                }
            }
        }

        table.print(System.out);
        return null;
    }