Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
9d2ea2b
(chores): reduce cognitive complexity in BrowseDevConsole
orpiske Jan 27, 2026
3ff0154
(chores): reduce cognitive complexity in ReceiveDevConsole
orpiske Jan 27, 2026
76051a3
(chores): reduce cognitive complexity in BeanDevConsole
orpiske Jan 27, 2026
a3a97cc
(chores): reduce cognitive complexity in ConsumerDevConsole
orpiske Jan 27, 2026
1beffac
(chores): reduce cognitive complexity in ProcessorDevConsole
orpiske Jan 27, 2026
275b80a
(chores): reduce cognitive complexity in RouteDevConsole
orpiske Jan 27, 2026
277bddb
(chores): reduce cognitive complexity in SendDevConsole
orpiske Jan 27, 2026
632eae9
(chores): reduce cognitive complexity in RouteGroupDevConsole
orpiske Jan 27, 2026
a1d1880
(chores): reduce cognitive complexity in RestDevConsole
orpiske Jan 27, 2026
876a4b5
(chores): reduce cognitive complexity in RouteDumpDevConsole
orpiske Jan 27, 2026
642445d
(chores): reduce cognitive complexity in ReloadDevConsole
orpiske Jan 27, 2026
7f29c3c
(chores): reduce cognitive complexity in TraceDevConsole
orpiske Jan 27, 2026
0554847
(chores): reduce cognitive complexity in DebugDevConsole
orpiske Jan 27, 2026
705a486
(chores): reduce cognitive complexity in ProducerDevConsole
orpiske Jan 27, 2026
841b3ec
(chores): reduce cognitive complexity in MessageHistoryDevConsole
orpiske Jan 27, 2026
9984e4a
(chores): address PR comment - keep happy path first, avoid negation …
orpiske Jan 27, 2026
bc43dee
(chores): address PR review comments for camel-console
orpiske Jan 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -71,29 +71,10 @@ protected String doCallText(Map<String, Object> options) {
Stream<String> keys = beans.keySet().stream().filter(r -> accept(r, filter)).sorted(String::compareToIgnoreCase);
keys.forEach(k -> {
Object bean = beans.get(k);
if (bean != null) {
boolean include = internal || !bean.getClass().getName().startsWith("org.apache.camel.");
if (include) {
sb.append(String.format(" %s (class: %s)%n", k, bean.getClass().getName()));

Map<String, Object> values = new TreeMap<>();
if (properties) {
try {
bi.getProperties(bean, values, null);
} catch (Throwable e) {
// ignore
}
values.forEach((pk, pv) -> {
if (pv == null) {
if (nulls) {
sb.append(String.format(" %s = null%n", pk));
}
} else {
String t = pv.getClass().getName();
sb.append(String.format(" %s (%s) = %s%n", pk, t, pv));
}
});
}
if (shouldIncludeBean(bean, internal)) {
sb.append(String.format(" %s (class: %s)%n", k, bean.getClass().getName()));
if (properties) {
appendBeanPropertiesText(sb, bi, bean, nulls);
}
}
sb.append("\n");
Expand All @@ -105,6 +86,27 @@ protected String doCallText(Map<String, Object> options) {
return sb.toString();
}

private void appendBeanPropertiesText(StringBuilder sb, BeanIntrospection bi, Object bean, boolean nulls) {
Map<String, Object> values = new TreeMap<>();
try {
bi.getProperties(bean, values, null);
} catch (Throwable e) {
// ignore
}
values.forEach((pk, pv) -> appendPropertyText(sb, pk, pv, nulls));
}

private void appendPropertyText(StringBuilder sb, String pk, Object pv, boolean nulls) {
if (pv == null) {
if (nulls) {
sb.append(String.format(" %s = null%n", pk));
}
} else {
String t = pv.getClass().getName();
sb.append(String.format(" %s (%s) = %s%n", pk, t, pv));
}
}

@Override
protected JsonObject doCallJson(Map<String, Object> options) {
String filter = (String) options.get(FILTER);
Expand All @@ -122,51 +124,9 @@ protected JsonObject doCallJson(Map<String, Object> options) {
Stream<String> keys = beans.keySet().stream().filter(r -> accept(r, filter)).sorted(String::compareToIgnoreCase);
keys.forEach(k -> {
Object bean = beans.get(k);
if (bean != null) {
boolean include = internal || !bean.getClass().getName().startsWith("org.apache.camel.");
if (include) {
Map<String, Object> values = new TreeMap<>();
if (properties) {
try {
bi.getProperties(bean, values, null);
} catch (Throwable e) {
// ignore
}
}
JsonObject jb = new JsonObject();
jb.put("name", k);
jb.put("type", bean.getClass().getName());
jo.put(k, jb);

if (!values.isEmpty()) {
JsonArray arr = new JsonArray();
values.forEach((pk, pv) -> {
Object value = pv;
String type = pv != null ? pv.getClass().getName() : null;
if (type != null) {
value = Jsoner.trySerialize(pv);
if (value == null) {
// cannot serialize so escape
value = Jsoner.escape(pv.toString());
} else {
// okay so use the value as-s
value = pv;
}
}
JsonObject jp = new JsonObject();
jp.put("name", pk);
if (type != null) {
jp.put("type", type);
}
jp.put("value", value);
boolean accept = value != null || nulls;
if (accept) {
arr.add(jp);
}
});
jb.put("properties", arr);
}
}
if (shouldIncludeBean(bean, internal)) {
JsonObject jb = buildBeanJson(k, bean, bi, properties, nulls);
jo.put(k, jb);
}
});
} catch (Exception e) {
Expand All @@ -176,6 +136,66 @@ protected JsonObject doCallJson(Map<String, Object> options) {
return root;
}

private JsonObject buildBeanJson(String name, Object bean, BeanIntrospection bi, boolean properties, boolean nulls) {
JsonObject jb = new JsonObject();
jb.put("name", name);
jb.put("type", bean.getClass().getName());

if (!properties) {
return jb;
}

Map<String, Object> values = new TreeMap<>();
try {
bi.getProperties(bean, values, null);
} catch (Throwable e) {
// ignore
}

if (!values.isEmpty()) {
JsonArray arr = new JsonArray();
values.forEach((pk, pv) -> addPropertyToArray(arr, pk, pv, nulls));
jb.put("properties", arr);
}

return jb;
}

private void addPropertyToArray(JsonArray arr, String pk, Object pv, boolean nulls) {
Object value = resolvePropertyValue(pv);
if (value == null && !nulls) {
return;
}

JsonObject jp = new JsonObject();
jp.put("name", pk);
if (pv != null) {
jp.put("type", pv.getClass().getName());
}
jp.put("value", value);
arr.add(jp);
}

private Object resolvePropertyValue(Object pv) {
if (pv == null) {
return null;
}
Object serialized = Jsoner.trySerialize(pv);
if (serialized == null) {
// cannot serialize so escape
return Jsoner.escape(pv.toString());
}
// okay so use the value as-is
return pv;
}

private static boolean shouldIncludeBean(Object bean, boolean internal) {
if (bean == null) {
return false;
}
return internal || !bean.getClass().getName().startsWith("org.apache.camel.");
}

private static boolean accept(String name, String filter) {
if (filter == null || filter.isBlank()) {
return true;
Expand Down
Loading