use of io.fabric8.watcher.Processor in project fabric8 by jboss-fuse.
the class CamelBackwardsCompatibleSupport method dumpRoutesStatsAsXml.
/**
* This operation is only available from Apache Camel 2.10, and Fuse Camel 2.9 onwards.
*/
public static String dumpRoutesStatsAsXml(CamelFacade facade, String contextId) throws Exception {
StringBuilder sb = new StringBuilder();
sb.append("<camelContextStat").append(String.format(" id=\"%s\"", contextId)).append(">\n");
// gather all the routes for this CamelContext, which requires JMX
List<CamelRouteMBean> routes = facade.getRoutes(contextId);
List<CamelProcessorMBean> processors = facade.getProcessors(contextId);
// loop the routes, and append the processor stats if needed
sb.append(" <routeStats>\n");
for (CamelRouteMBean route : routes) {
sb.append(" <routeStat").append(String.format(" id=\"%s\"", route.getRouteId()));
sb.append(" ").append(dumpStatsAsXmlAttributes(route)).append(">\n");
// add processor details if needed
sb.append(" <processorStats>\n");
for (CamelProcessorMBean processor : processors) {
// the processor must belong to this route
if (route.getRouteId().equals(processor.getRouteId())) {
sb.append(" <processorStat").append(String.format(" id=\"%s\"", processor.getProcessorId()));
sb.append(" ").append(dumpStatsAsXmlAttributes(processor)).append("/>\n");
}
}
sb.append(" </processorStats>\n");
sb.append(" </routeStat>\n");
}
sb.append(" </routeStats>\n");
sb.append("</camelContextStat>");
return sb.toString();
}
use of io.fabric8.watcher.Processor in project fabric8 by fabric8io.
the class SessionListener method enhance.
private KubernetesList enhance(final Session session, Configuration configuration, KubernetesList kubernetesList) {
if (configuration == null || configuration.getProperties() == null || !configuration.getProperties().containsKey(Constants.KUBERNETES_MODEL_PROCESSOR_CLASS)) {
return kubernetesList;
}
String processorClassName = configuration.getProperties().get(Constants.KUBERNETES_MODEL_PROCESSOR_CLASS);
try {
final Object instance = SessionListener.class.getClassLoader().loadClass(processorClassName).newInstance();
KubernetesListBuilder builder = new KubernetesListBuilder(kubernetesList);
((Visitable) builder).accept(new Visitor() {
@Override
public void visit(Object o) {
for (Method m : findMethods(instance, o.getClass())) {
Named named = m.getAnnotation(Named.class);
if (named != null && !Strings.isNullOrBlank(named.value())) {
String objectName = o instanceof ObjectMeta ? getName((ObjectMeta) o) : getName((HasMetadata) o);
// If a name has been explicitly specified check if there is a match
if (!named.value().equals(objectName)) {
session.getLogger().warn("Named method:" + m.getName() + " with name:" + named.value() + " doesn't match: " + objectName + ", ignoring");
return;
}
}
try {
m.invoke(instance, o);
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
session.getLogger().error("Error invoking visitor method:" + m.getName() + " on:" + instance + "with argument:" + o);
}
}
}
});
return builder.build();
} catch (Exception e) {
session.getLogger().warn("Failed to load processor class:" + processorClassName + ". Ignoring");
return kubernetesList;
}
}
Aggregations