}
return context.explainEndpointJson(uri, allOptions);
}
public List<Map<String, String>> listComponents(String camelContextName) throws Exception {
CamelContext context = this.getCamelContext(camelContextName);
if (context == null) {
return null;
}
List<Map<String, String>> answer = new ArrayList<Map<String, String>>();
// find all components
Map<String, Properties> components = context.findComponents();
// gather component detail for each component
for (Map.Entry<String, Properties> entry : components.entrySet()) {
String name = entry.getKey();
String description = null;
// the status can be:
// - loaded = in use
// - classpath = on the classpath
// - release = available from the Apache Camel release
String status = context.hasComponent(name) != null ? "in use" : "on classpath";
String type = null;
String groupId = null;
String artifactId = null;
String version = null;
// load component json data, and parse it to gather the component meta-data
String json = context.getComponentParameterJsonSchema(name);
List<Map<String, String>> rows = JsonSchemaHelper.parseJsonSchema("component", json, false);
for (Map<String, String> row : rows) {
if (row.containsKey("description")) {
description = row.get("description");
} else if (row.containsKey("javaType")) {