in platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractLocalCamelController.java [69:157]
public Map<String, Object> getCamelContextInformation(String name) throws Exception {
Map<String, Object> answer = new LinkedHashMap<>();
CamelContext context = getLocalCamelContext(name);
if (context != null) {
answer.put("name", context.getName());
answer.put("managementName", context.getManagementName());
answer.put("version", context.getVersion());
answer.put("status", context.getStatus().name());
answer.put("uptime", context.getUptime());
answer.put("suspended", context.getStatus().isSuspended());
if (context.getManagementStrategy().getManagementAgent() != null) {
String level = context.getManagementStrategy().getManagementAgent().getStatisticsLevel().name();
answer.put("managementStatisticsLevel", level);
}
answer.put("allowUseOriginalMessage", context.isAllowUseOriginalMessage());
answer.put("messageHistory", context.isMessageHistory());
answer.put("tracing", context.isTracing());
answer.put("logMask", context.isLogMask());
answer.put("shutdownTimeout", context.getShutdownStrategy().getTimeUnit().toSeconds(context.getShutdownStrategy().getTimeout()));
answer.put("classResolver", context.getClassResolver().toString());
answer.put("packageScanClassResolver", context.adapt(ExtendedCamelContext.class).getPackageScanClassResolver().toString());
answer.put("applicationContextClassLoader", context.getApplicationContextClassLoader().toString());
answer.put("headersMapFactory", context.adapt(ExtendedCamelContext.class).getHeadersMapFactory().toString());
for (Map.Entry<String, String> entry : context.getGlobalOptions().entrySet()) {
answer.put("property." + entry.getKey(), entry.getValue());
}
long activeRoutes = 0;
long inactiveRoutes = 0;
List<Route> routeList = context.getRoutes();
for (Route route : routeList) {
if (context.getRouteController().getRouteStatus(route.getId()).isStarted()) {
activeRoutes++;
} else {
inactiveRoutes++;
}
}
answer.put("startedRoutes", activeRoutes);
answer.put("totalRoutes", activeRoutes + inactiveRoutes);
// add type converter details
answer.put("typeConverter.numberOfTypeConverters", context.getTypeConverterRegistry().size());
answer.put("typeConverter.statisticsEnabled", context.getTypeConverterRegistry().getStatistics().isStatisticsEnabled());
answer.put("typeConverter.noopCounter", context.getTypeConverterRegistry().getStatistics().getNoopCounter());
answer.put("typeConverter.attemptCounter", context.getTypeConverterRegistry().getStatistics().getAttemptCounter());
answer.put("typeConverter.hitCounter", context.getTypeConverterRegistry().getStatistics().getHitCounter());
answer.put("typeConverter.missCounter", context.getTypeConverterRegistry().getStatistics().getMissCounter());
answer.put("typeConverter.failedCounter", context.getTypeConverterRegistry().getStatistics().getFailedCounter());
// add async processor await manager details
ExtendedCamelContext ecc = context.adapt(ExtendedCamelContext.class);
answer.put("asyncProcessorAwaitManager.size", ecc.getAsyncProcessorAwaitManager().size());
answer.put("asyncProcessorAwaitManager.statisticsEnabled", ecc.getAsyncProcessorAwaitManager().getStatistics().isStatisticsEnabled());
answer.put("asyncProcessorAwaitManager.threadsBlocked", ecc.getAsyncProcessorAwaitManager().getStatistics().getThreadsBlocked());
answer.put("asyncProcessorAwaitManager.threadsInterrupted", ecc.getAsyncProcessorAwaitManager().getStatistics().getThreadsInterrupted());
answer.put("asyncProcessorAwaitManager.totalDuration", ecc.getAsyncProcessorAwaitManager().getStatistics().getTotalDuration());
answer.put("asyncProcessorAwaitManager.minDuration", ecc.getAsyncProcessorAwaitManager().getStatistics().getMinDuration());
answer.put("asyncProcessorAwaitManager.maxDuration", ecc.getAsyncProcessorAwaitManager().getStatistics().getMaxDuration());
answer.put("asyncProcessorAwaitManager.meanDuration", ecc.getAsyncProcessorAwaitManager().getStatistics().getMeanDuration());
// add stream caching details if enabled
if (context.getStreamCachingStrategy().isEnabled()) {
answer.put("streamCachingEnabled", true);
answer.put("streamCaching.spoolDirectory", context.getStreamCachingStrategy().getSpoolDirectory());
answer.put("streamCaching.spoolCipher", context.getStreamCachingStrategy().getSpoolCipher());
answer.put("streamCaching.spoolThreshold", context.getStreamCachingStrategy().getSpoolThreshold());
answer.put("streamCaching.spoolUsedHeapMemoryThreshold", context.getStreamCachingStrategy().getSpoolUsedHeapMemoryThreshold());
answer.put("streamCaching.spoolUsedHeapMemoryLimit", context.getStreamCachingStrategy().getSpoolUsedHeapMemoryLimit());
answer.put("streamCaching.anySpoolRules", context.getStreamCachingStrategy().isAnySpoolRules());
answer.put("streamCaching.bufferSize", context.getStreamCachingStrategy().getBufferSize());
answer.put("streamCaching.removeSpoolDirectoryWhenStopping", context.getStreamCachingStrategy().isRemoveSpoolDirectoryWhenStopping());
answer.put("streamCaching.statisticsEnabled", context.getStreamCachingStrategy().getStatistics().isStatisticsEnabled());
if (context.getStreamCachingStrategy().getStatistics().isStatisticsEnabled()) {
answer.put("streamCaching.cacheMemoryCounter", context.getStreamCachingStrategy().getStatistics().getCacheMemoryCounter());
answer.put("streamCaching.cacheMemorySize", context.getStreamCachingStrategy().getStatistics().getCacheMemorySize());
answer.put("streamCaching.cacheMemoryAverageSize", context.getStreamCachingStrategy().getStatistics().getCacheMemoryAverageSize());
answer.put("streamCaching.cacheSpoolCounter", context.getStreamCachingStrategy().getStatistics().getCacheSpoolCounter());
answer.put("streamCaching.cacheSpoolSize", context.getStreamCachingStrategy().getStatistics().getCacheSpoolSize());
answer.put("streamCaching.cacheSpoolAverageSize", context.getStreamCachingStrategy().getStatistics().getCacheSpoolAverageSize());
}
} else {
answer.put("streamCachingEnabled", false);
}
}
return answer;
}