doc-architect/doc-architect-core/src/main/java/com/docarchitect/core/scanner/impl/java/KafkaScanner.java [179:232]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public ScanResult scan(ScanContext context) {
        log.info("Scanning Kafka message flows in: {}", context.rootPath());

        List<MessageFlow> messageFlows = new ArrayList<>();
        ScanStatistics.Builder statsBuilder = new ScanStatistics.Builder();

        List<Path> javaFiles = context.findFiles(FILE_PATTERN).toList();
        statsBuilder.filesDiscovered(javaFiles.size());

        log.debug("Found {} total Java files to examine", javaFiles.size());

        if (javaFiles.isEmpty()) {
            log.debug("No Java files found in: {}", context.rootPath());
            return emptyResult();
        }

        int skippedCount = 0;

        for (Path javaFile : javaFiles) {
            if (!shouldScanFile(javaFile)) {
                skippedCount++;
                continue;
            }

            statsBuilder.incrementFilesScanned();

            // Use three-tier parsing with fallback
            FileParseResult<MessageFlow> result = parseWithFallback(
                javaFile,
                cu -> extractMessageFlowsFromAST(cu),
                createFallbackStrategy(),
                statsBuilder
            );

            if (result.isSuccess()) {
                messageFlows.addAll(result.getData());
            }
        }

        ScanStatistics statistics = statsBuilder.build();
        log.info("Found {} Kafka message flows (success rate: {:.1f}%, overall parse rate: {:.1f}%, skipped {} files)",
                 messageFlows.size(), statistics.getSuccessRate(), statistics.getOverallParseRate(), skippedCount);

        return buildSuccessResult(
            List.of(),
            List.of(),
            List.of(),
            messageFlows,
            List.of(),
            List.of(),
            List.of(),
            statistics
        );
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



doc-architect/doc-architect-core/src/main/java/com/docarchitect/core/scanner/impl/java/KafkaStreamsScanner.java [218:271]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public ScanResult scan(ScanContext context) {
        log.info("Scanning Kafka Streams topologies in: {}", context.rootPath());

        List<MessageFlow> messageFlows = new ArrayList<>();
        ScanStatistics.Builder statsBuilder = new ScanStatistics.Builder();

        List<Path> javaFiles = context.findFiles(FILE_PATTERN).toList();
        statsBuilder.filesDiscovered(javaFiles.size());

        log.debug("Found {} total Java files to examine", javaFiles.size());

        if (javaFiles.isEmpty()) {
            log.debug("No Java files found in: {}", context.rootPath());
            return emptyResult();
        }

        int skippedCount = 0;

        for (Path javaFile : javaFiles) {
            if (!shouldScanFile(javaFile)) {
                skippedCount++;
                continue;
            }

            statsBuilder.incrementFilesScanned();

            // Use three-tier parsing with fallback
            FileParseResult<MessageFlow> result = parseWithFallback(
                javaFile,
                cu -> extractMessageFlowsFromAST(cu),
                createFallbackStrategy(),
                statsBuilder
            );

            if (result.isSuccess()) {
                messageFlows.addAll(result.getData());
            }
        }

        ScanStatistics statistics = statsBuilder.build();
        log.info("Found {} Kafka Streams message flows (success rate: {:.1f}%, overall parse rate: {:.1f}%, skipped {} files)",
                 messageFlows.size(), statistics.getSuccessRate(), statistics.getOverallParseRate(), skippedCount);

        return buildSuccessResult(
            List.of(),
            List.of(),
            List.of(),
            messageFlows,
            List.of(),
            List.of(),
            List.of(),
            statistics
        );
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



doc-architect/doc-architect-core/src/main/java/com/docarchitect/core/scanner/impl/java/RabbitMQScanner.java [198:251]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public ScanResult scan(ScanContext context) {
        log.info("Scanning RabbitMQ message flows in: {}", context.rootPath());

        List<MessageFlow> messageFlows = new ArrayList<>();
        ScanStatistics.Builder statsBuilder = new ScanStatistics.Builder();

        List<Path> javaFiles = context.findFiles(FILE_PATTERN).toList();
        statsBuilder.filesDiscovered(javaFiles.size());

        log.debug("Found {} total Java files to examine", javaFiles.size());

        if (javaFiles.isEmpty()) {
            log.debug("No Java files found in: {}", context.rootPath());
            return emptyResult();
        }

        int skippedCount = 0;

        for (Path javaFile : javaFiles) {
            if (!shouldScanFile(javaFile)) {
                skippedCount++;
                continue;
            }

            statsBuilder.incrementFilesScanned();

            // Use three-tier parsing with fallback
            FileParseResult<MessageFlow> result = parseWithFallback(
                javaFile,
                cu -> extractMessageFlowsFromAST(cu),
                createFallbackStrategy(),
                statsBuilder
            );

            if (result.isSuccess()) {
                messageFlows.addAll(result.getData());
            }
        }

        ScanStatistics statistics = statsBuilder.build();
        log.info("Found {} RabbitMQ message flows (success rate: {:.1f}%, overall parse rate: {:.1f}%, skipped {} files)",
                 messageFlows.size(), statistics.getSuccessRate(), statistics.getOverallParseRate(), skippedCount);

        return buildSuccessResult(
            List.of(),
            List.of(),
            List.of(),
            messageFlows,
            List.of(),
            List.of(),
            List.of(),
            statistics
        );
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



