feat: support iteration wrapper nodes and filter overlay by selected iteration
Server: - Add split_depth and loop_depth columns (V9 migration) - Persist splitDepth/loopDepth with reflection fallback for older agent versions UI: - Detect iterations via wrapper processorTypes (loopIteration, splitIteration, multicastBranch) - Filter overlay by selected iteration at the wrapper level - Skip non-selected iteration wrappers entirely (wrapper + children) - Don't add synthetic wrappers to overlay (no diagram node correspondence) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -132,7 +132,9 @@ public class IngestionService {
|
||||
p.getLoopIndex(), p.getLoopSize(),
|
||||
p.getSplitIndex(), p.getSplitSize(),
|
||||
p.getMulticastIndex(),
|
||||
p.getResolvedEndpointUri()
|
||||
p.getResolvedEndpointUri(),
|
||||
getDepthSafe(p, "splitDepth"),
|
||||
getDepthSafe(p, "loopDepth")
|
||||
));
|
||||
if (p.getChildren() != null) {
|
||||
flat.addAll(flattenProcessors(
|
||||
@@ -143,6 +145,16 @@ public class IngestionService {
|
||||
return flat;
|
||||
}
|
||||
|
||||
/** Safely call getSplitDepth()/getLoopDepth() — returns 0 if not available in this cameleer3-common version. */
|
||||
private static int getDepthSafe(ProcessorExecution p, String field) {
|
||||
try {
|
||||
var method = p.getClass().getMethod("get" + Character.toUpperCase(field.charAt(0)) + field.substring(1));
|
||||
return (int) method.invoke(p);
|
||||
} catch (Exception e) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
private String truncateBody(String body) {
|
||||
if (body == null) return null;
|
||||
if (body.length() > bodySizeLimit) return body.substring(0, bodySizeLimit);
|
||||
|
||||
@@ -39,6 +39,8 @@ public interface ExecutionStore {
|
||||
Integer loopIndex, Integer loopSize,
|
||||
Integer splitIndex, Integer splitSize,
|
||||
Integer multicastIndex,
|
||||
String resolvedEndpointUri
|
||||
String resolvedEndpointUri,
|
||||
int splitDepth,
|
||||
int loopDepth
|
||||
) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user