You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2025/10/14 07:49:21 UTC

(camel) 01/07: CAMEL-22502: Replaced System.out with SLF4J logger

This is an automated email from the ASF dual-hosted git repository.

pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit b3beba95eb372235e42b886e6a8987f8ef970b54
Author: Mikołaj Diakowski <mi...@interia.pl>
AuthorDate: Thu Oct 9 14:56:03 2025 +0200

    CAMEL-22502: Replaced System.out with SLF4J logger
---
 .../src/main/java/__name__Producer.java            |   2 +-
 .../htmlxlsx/process/CoverageResultsProcessor.java |  11 +-
 .../camel/component/as2/api/AS2MessageTest.java    |   4 +-
 .../component/aws/xray/CustomComponentTest.java    |   8 +-
 .../component/debezium/DebeziumConsumerTest.java   |   5 +-
 .../integration/DigitalOceanComponentIT.java       |   8 +-
 .../camel/component/exec/ExecJava8IssueTest.java   |   6 +-
 .../github/consumer/CommitConsumerLastTest.java    |   2 +-
 .../camel/component/hl7/HL7ValidateTest.java       |   5 +-
 .../camel/component/iec60870/ConnectionTest.java   |   6 +-
 .../ConcurrentConsumerLoadManualTest.java          |   2 +-
 .../org/apache/camel/component/jasypt/Main.java    |  25 +-
 .../org/apache/camel/component/jmx/XmlFixture.java |   9 +-
 .../keycloak/security/KeycloakSecurityIT.java      |   6 +-
 .../server/core/integ5/DSAnnotationProcessor.java  |   2 +-
 .../server/core/integ5/DSAnnotationProcessor.java  |   2 +-
 .../camel/service/lra/LRASagaRoutesTest.java       |  10 +-
 .../mllp/MllpTcpServerConsumerTransactionTest.java |  20 +-
 .../test/oauth/AbstractOAuthCodeFlowTest.java      |  12 +-
 .../apache/camel/test/oauth/SSLCertTrustTest.java  |   8 +-
 .../component/salesforce/LoginConfigHelper.java    | 109 ++--
 .../camel/component/splunk/ProducerTest.java       |   5 +-
 .../camel/component/splunk/RawProducerTest.java    |   5 +-
 .../org/apache/camel/component/xj/XJTestUtils.java |   5 +-
 .../ValidatorIncludeEncodingRouteTest.java         |   6 +-
 .../apache/camel/main/MainCommandLineSupport.java  |  13 +-
 .../java/org/apache/camel/xml/io/MXParser.java     | 669 ++-------------------
 .../java/org/apache/camel/xml/in/ParserTest.java   |  49 +-
 .../dsl/jbang/core/commands/bind/PipeProvider.java |   7 +-
 .../camel/dsl/jbang/core/common/Printer.java       |  14 +-
 .../core/commands/kubernetes/KubernetesHelper.java |   9 +-
 .../java/org/apache/camel/main/KameletMain.java    |   6 +-
 .../common/services/ContainerTestService.java      |   2 +-
 .../generator/openapi/RestDslYamlGenerator.java    |   6 +-
 34 files changed, 270 insertions(+), 788 deletions(-)

diff --git a/archetypes/camel-archetype-component/src/main/resources/archetype-resources/src/main/java/__name__Producer.java b/archetypes/camel-archetype-component/src/main/resources/archetype-resources/src/main/java/__name__Producer.java
index 098b60305f10..2c2892bf605a 100644
--- a/archetypes/camel-archetype-component/src/main/resources/archetype-resources/src/main/java/__name__Producer.java
+++ b/archetypes/camel-archetype-component/src/main/resources/archetype-resources/src/main/java/__name__Producer.java
@@ -31,7 +31,7 @@ public class ${name}Producer extends DefaultProducer {
     }
 
     public void process(Exchange exchange) throws Exception {
-        System.out.println(exchange.getIn().getBody());
+        LOG.info(exchange.getIn().getBody().toString());
     }
 
 }
diff --git a/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/htmlxlsx/process/CoverageResultsProcessor.java b/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/htmlxlsx/process/CoverageResultsProcessor.java
index 4273ba7b674e..e6a922840e3a 100644
--- a/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/htmlxlsx/process/CoverageResultsProcessor.java
+++ b/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/htmlxlsx/process/CoverageResultsProcessor.java
@@ -39,9 +39,13 @@ import org.apache.camel.maven.htmlxlsx.model.RouteStatistic;
 import org.apache.camel.maven.htmlxlsx.model.RouteTotalsStatistic;
 import org.apache.camel.maven.htmlxlsx.model.TestResult;
 import org.apache.maven.project.MavenProject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CoverageResultsProcessor {
 
+    private static final Logger LOG = LoggerFactory.getLogger(CoverageResultsProcessor.class);
+
     private static final String DETAILS_FILE = "/details.html";
 
     private static final String INDEX_FILE = "/index.html";
@@ -224,10 +228,9 @@ public class CoverageResultsProcessor {
                     }
                 } catch (Exception t) {
                     // this is an edge case that needs to be identified. Log some useful debugging information.
-                    System.out.println(t.getClass().toString());
-                    System.out.printf("routeID: %s%n", routeId);
-                    System.out.printf("route: %s%n", route);
-                    System.out.printf("mappedRoute: %s%n", mappedRoute != null ? mappedRoute.toString() : "null");
+                    LOG.error("Error processing route coverage for routeId: {}", routeId, t);
+                    LOG.error("Route: {}", route);
+                    LOG.error("MappedRoute: {}", mappedRoute != null ? mappedRoute.toString() : "null");
                 }
             });
         });
diff --git a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2MessageTest.java b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2MessageTest.java
index b221c6240acd..7e68bd233fe1 100644
--- a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2MessageTest.java
+++ b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2MessageTest.java
@@ -111,7 +111,7 @@ public class AS2MessageTest extends AS2MessageTestBase {
                     ediEntity = HttpMessageUtils.extractEdiPayload(request, new HttpMessageUtils.DecrpytingAndSigningInfo(
                             testServer.getValidateSigningCertificateChain(), testServer.getDecryptingPrivateKey()));
                 } catch (Exception e) {
-                    throw new HttpException("Failed to parse AS2 Message Entity", e);
+                    throw new HttpException("Failed to parse AS2Message Entity", e);
                 }
             }
         });
@@ -515,7 +515,7 @@ public class AS2MessageTest extends AS2MessageTestBase {
         // Send MDN
         HttpCoreContext httpContext = mdnManager.send(mdn, mdn.getMainMessageContentType(), RECIPIENT_DELIVERY_ADDRESS);
         HttpRequest mndRequest = httpContext.getRequest();
-        Arrays.stream(request.getHeaders(AS2Header.CONTENT_DISPOSITION)).forEach(System.out::println);
+        Arrays.stream(request.getHeaders(AS2Header.CONTENT_DISPOSITION)).forEach(h -> LOG.debug("{}", h));
         DispositionNotificationMultipartReportEntity reportEntity
                 = HttpMessageUtils.getEntity(mndRequest, DispositionNotificationMultipartReportEntity.class);
         assertNotNull(reportEntity, "Request does not contain report");
diff --git a/components/camel-aws/camel-aws-xray/src/test/java/org/apache/camel/component/aws/xray/CustomComponentTest.java b/components/camel-aws/camel-aws-xray/src/test/java/org/apache/camel/component/aws/xray/CustomComponentTest.java
index 5d1b1c77d48d..d9905f5283e6 100644
--- a/components/camel-aws/camel-aws-xray/src/test/java/org/apache/camel/component/aws/xray/CustomComponentTest.java
+++ b/components/camel-aws/camel-aws-xray/src/test/java/org/apache/camel/component/aws/xray/CustomComponentTest.java
@@ -26,6 +26,8 @@ import org.apache.camel.component.aws.xray.bean.ProcessingCamelBean;
 import org.apache.camel.component.aws.xray.component.CommonEndpoints;
 import org.apache.camel.spi.InterceptStrategy;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.component.aws.xray.TestDataBuilder.createSegment;
 import static org.apache.camel.component.aws.xray.TestDataBuilder.createSubsegment;
@@ -53,6 +55,8 @@ import static org.hamcrest.Matchers.greaterThan;
  */
 public class CustomComponentTest extends CamelAwsXRayTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(CustomComponentTest.class);
+
     private static final String START = "seda:start";
     private static final String DELIVERY = "seda:delivery";
     private static final String IN_QUEUE = "seda:inqueue";
@@ -144,8 +148,8 @@ public class CustomComponentTest extends CamelAwsXRayTestSupport {
                 from("seda:backingTask").routeId("backingTask")
                         .onException(Exception.class)
                             .redeliveryDelay(100L)
-                            .onRedelivery((Exchange exchange) -> System.err.println(">> Retrying due to "
-                                    + exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class).getLocalizedMessage()))
+                            .onRedelivery((Exchange exchange) -> LOG.warn(">> Retrying due to: {}",
+                                    exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class).getLocalizedMessage()))
                             .logExhausted(true)
                             .handled(true)
                             .logStackTrace(true)
diff --git a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/test/java/org/apache/camel/component/debezium/DebeziumConsumerTest.java b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/test/java/org/apache/camel/component/debezium/DebeziumConsumerTest.java
index 80f47c0d5472..ebd9947418fa 100644
--- a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/test/java/org/apache/camel/component/debezium/DebeziumConsumerTest.java
+++ b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/test/java/org/apache/camel/component/debezium/DebeziumConsumerTest.java
@@ -37,9 +37,12 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DebeziumConsumerTest extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(DebeziumConsumerTest.class);
     private static final int NUMBER_OF_LINES = 5;
     private static final String DEFAULT_DATA_TESTING_FOLDER = "target/data";
     private static final Path TEST_FILE_PATH = createTestingPath("camel-debezium-test-file-input.txt").toAbsolutePath();
@@ -167,7 +170,7 @@ public class DebeziumConsumerTest extends CamelTestSupport {
         try {
             IoUtil.delete(path);
         } catch (IOException e) {
-            System.err.printf("Unable to delete %s%n", path.toAbsolutePath());
+            LOG.error("Unable to delete {}", path.toAbsolutePath(), e);
         }
     }
 
diff --git a/components/camel-digitalocean/src/test/java/org/apache/camel/component/digitalocean/integration/DigitalOceanComponentIT.java b/components/camel-digitalocean/src/test/java/org/apache/camel/component/digitalocean/integration/DigitalOceanComponentIT.java
index 71f8402f3b09..8525c57df845 100644
--- a/components/camel-digitalocean/src/test/java/org/apache/camel/component/digitalocean/integration/DigitalOceanComponentIT.java
+++ b/components/camel-digitalocean/src/test/java/org/apache/camel/component/digitalocean/integration/DigitalOceanComponentIT.java
@@ -35,6 +35,8 @@ import org.apache.camel.component.digitalocean.constants.DigitalOceanOperations;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.EnabledIf;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.test.junit5.TestSupport.assertCollectionSize;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -46,6 +48,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
            disabledReason = "Must be manually tested. Provide your own oAuthToken on test-options.properties")
 public class DigitalOceanComponentIT extends DigitalOceanTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(DigitalOceanComponentIT.class);
+
     @EndpointInject("mock:result")
     protected MockEndpoint mockResultEndpoint;
 
@@ -324,7 +328,7 @@ public class DigitalOceanComponentIT extends DigitalOceanTestSupport {
 
         MockEndpoint.assertIsSatisfied(context);
         List<Size> sizes = (List<Size>) exchange.getMessage().getBody();
-        System.out.println(sizes);
+        LOG.debug("Sizes: {}", sizes);
         assertNotEquals(1, sizes.size());
     }
 
@@ -336,7 +340,7 @@ public class DigitalOceanComponentIT extends DigitalOceanTestSupport {
 
         MockEndpoint.assertIsSatisfied(context);
         List<Region> regions = (List<Region>) exchange.getMessage().getBody();
-        System.out.println(regions);
+        LOG.debug("Regions: {}", regions);
         assertNotEquals(1, regions.size());
     }
 
diff --git a/components/camel-exec/src/test/java/org/apache/camel/component/exec/ExecJava8IssueTest.java b/components/camel-exec/src/test/java/org/apache/camel/component/exec/ExecJava8IssueTest.java
index b7b499de1d5d..30bdfa790ec5 100644
--- a/components/camel-exec/src/test/java/org/apache/camel/component/exec/ExecJava8IssueTest.java
+++ b/components/camel-exec/src/test/java/org/apache/camel/component/exec/ExecJava8IssueTest.java
@@ -33,6 +33,8 @@ import org.apache.commons.io.FileUtils;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -43,6 +45,8 @@ import static org.junit.jupiter.api.Assertions.fail;
  */
 public class ExecJava8IssueTest {
 
+    private static final Logger LOG = LoggerFactory.getLogger(ExecJava8IssueTest.class);
+
     private File tempDir;
     private final String tempDirName = name();
     private final String tempFileName = name();
@@ -64,7 +68,7 @@ public class ExecJava8IssueTest {
     public void test() throws Exception {
 
         if (!OS.isFamilyUnix()) {
-            System.err.println("The test 'CamelExecTest' does not support the following OS : " + System.getProperty("os.name"));
+            LOG.warn("The test 'CamelExecTest' does not support the following OS : {}", System.getProperty("os.name"));
             return;
         }
 
diff --git a/components/camel-github/src/test/java/org/apache/camel/component/github/consumer/CommitConsumerLastTest.java b/components/camel-github/src/test/java/org/apache/camel/component/github/consumer/CommitConsumerLastTest.java
index fc933ba6f654..b3c77bda78fb 100644
--- a/components/camel-github/src/test/java/org/apache/camel/component/github/consumer/CommitConsumerLastTest.java
+++ b/components/camel-github/src/test/java/org/apache/camel/component/github/consumer/CommitConsumerLastTest.java
@@ -74,7 +74,7 @@ public class CommitConsumerLastTest extends GitHubComponentTestBase {
             String author = exchange.getMessage().getHeader(GitHubConstants.GITHUB_COMMIT_AUTHOR, String.class);
             String sha = exchange.getMessage().getHeader(GitHubConstants.GITHUB_COMMIT_SHA, String.class);
             if (log.isDebugEnabled()) {
-                System.out.println(sha);
+                log.debug("Commit SHA: {}", sha);
                 log.debug("Got commit with author: {}: SHA {}", author, sha);
             }
         }
diff --git a/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7ValidateTest.java b/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7ValidateTest.java
index f8c195cb122e..a9e4a28e8dff 100644
--- a/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7ValidateTest.java
+++ b/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7ValidateTest.java
@@ -36,6 +36,8 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -43,6 +45,7 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 public class HL7ValidateTest extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(HL7ValidateTest.class);
     private HL7DataFormat hl7;
 
     @Test
@@ -98,7 +101,7 @@ public class HL7ValidateTest extends CamelTestSupport {
         } catch (CamelExecutionException e) {
             assertIsInstanceOf(HL7Exception.class, e.getCause());
             assertIsInstanceOf(ValidationException.class, e.getCause().getCause());
-            System.out.println(e.getCause().getCause().getMessage());
+            LOG.error("Validation failed", e.getCause().getCause());
             assertTrue(e.getCause().getCause().getMessage().startsWith("Validation failed:"),
                     "Should be a validation error message");
         }
diff --git a/components/camel-iec60870/src/test/java/org/apache/camel/component/iec60870/ConnectionTest.java b/components/camel-iec60870/src/test/java/org/apache/camel/component/iec60870/ConnectionTest.java
index b6636e1fe0af..9f5315187c15 100644
--- a/components/camel-iec60870/src/test/java/org/apache/camel/component/iec60870/ConnectionTest.java
+++ b/components/camel-iec60870/src/test/java/org/apache/camel/component/iec60870/ConnectionTest.java
@@ -31,6 +31,8 @@ import org.apache.camel.test.junit5.CamelTestSupport;
 import org.eclipse.neoscada.protocol.iec60870.asdu.types.Value;
 import org.eclipse.neoscada.protocol.iec60870.server.data.model.WriteModel.Request;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -39,6 +41,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class ConnectionTest extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(ConnectionTest.class);
+
     private static final String DIRECT_SEND_S_1 = "direct:sendServer1";
 
     private static final String DIRECT_SEND_C_1 = "direct:sendClient1";
@@ -133,7 +137,7 @@ public class ConnectionTest extends CamelTestSupport {
         // assert
 
         MockEndpoint.assertIsSatisfied(context, 2_000, TimeUnit.MILLISECONDS);
-        System.out.println(testServer1Endpoint.getExchanges().get(0).getIn().getBody());
+        LOG.debug("Received body: {}", testServer1Endpoint.getExchanges().get(0).getIn().getBody());
 
     }
 
diff --git a/components/camel-ironmq/src/test/java/org/apache/camel/component/ironmq/integrationtest/ConcurrentConsumerLoadManualTest.java b/components/camel-ironmq/src/test/java/org/apache/camel/component/ironmq/integrationtest/ConcurrentConsumerLoadManualTest.java
index 015065613012..69cd9d6f6730 100644
--- a/components/camel-ironmq/src/test/java/org/apache/camel/component/ironmq/integrationtest/ConcurrentConsumerLoadManualTest.java
+++ b/components/camel-ironmq/src/test/java/org/apache/camel/component/ironmq/integrationtest/ConcurrentConsumerLoadManualTest.java
@@ -63,7 +63,7 @@ public class ConcurrentConsumerLoadManualTest extends CamelTestSupport {
             list.add(payloadToSend);
             if (i % 100 == 0) {
                 noOfBlocks++;
-                System.out.println("sending blok " + noOfBlocks);
+                LOGGER.info("sending block {}", noOfBlocks);
                 template.sendBody(sedaEndpoint, list.toArray(new String[0]));
                 list.clear();
             }
diff --git a/components/camel-jasypt/src/main/java/org/apache/camel/component/jasypt/Main.java b/components/camel-jasypt/src/main/java/org/apache/camel/component/jasypt/Main.java
index 85e7d39fbeed..ba5b9a627ea7 100644
--- a/components/camel-jasypt/src/main/java/org/apache/camel/component/jasypt/Main.java
+++ b/components/camel-jasypt/src/main/java/org/apache/camel/component/jasypt/Main.java
@@ -24,9 +24,13 @@ import java.util.List;
 import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
 import org.jasypt.iv.RandomIvGenerator;
 import org.jasypt.salt.RandomSaltGenerator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class Main {
 
+    private static final Logger LOG = LoggerFactory.getLogger(Main.class);
+
     private final StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
     private final List<Option> options = new ArrayList<>();
     private String command;
@@ -85,7 +89,7 @@ public class Main {
         @Override
         protected void doProcess(String arg, LinkedList<String> remainingArgs) {
             if (remainingArgs.isEmpty()) {
-                System.err.println("Expected fileName for ");
+                LOG.error("Expected parameter for option: {}", arg);
                 showOptions();
             } else {
                 String parameter = remainingArgs.removeFirst();
@@ -157,13 +161,10 @@ public class Main {
     }
 
     private void showOptions() {
-        System.out.println("Apache Camel Jasypt takes the following options:");
-        System.out.println();
+        LOG.info("Apache Camel Jasypt takes the following options:");
         for (Option option : options) {
-            System.out.println(option.getInformation());
+            LOG.info(option.getInformation());
         }
-        System.out.println();
-        System.out.println();
     }
 
     private boolean parseArguments(String[] arguments) {
@@ -181,8 +182,7 @@ public class Main {
                 }
             }
             if (!handled) {
-                System.out.println("Error: Unknown option: " + arg);
-                System.out.println();
+                LOG.error("Error: Unknown option: {}", arg);
                 valid = false;
                 break;
             }
@@ -198,20 +198,17 @@ public class Main {
         }
 
         if (command == null) {
-            System.out.println("Error: Command is empty");
-            System.out.println();
+            LOG.error("Error: Command is empty");
             showOptions();
             return;
         }
         if (password == null) {
-            System.out.println("Error: Password is empty");
-            System.out.println();
+            LOG.error("Error: Password is empty");
             showOptions();
             return;
         }
         if (input == null) {
-            System.out.println("Error: Input is empty");
-            System.out.println();
+            LOG.error("Error: Input is empty");
             showOptions();
             return;
         }
diff --git a/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/XmlFixture.java b/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/XmlFixture.java
index 60d0d0631fca..a217ba8990f6 100644
--- a/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/XmlFixture.java
+++ b/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/XmlFixture.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.jmx;
 
 import java.io.File;
+import java.io.StringWriter;
 
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Source;
@@ -26,11 +27,15 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xmlunit.assertj3.XmlAssert;
 import org.xmlunit.builder.Input;
 
 public final class XmlFixture {
 
+    private static final Logger LOG = LoggerFactory.getLogger(XmlFixture.class);
+
     private XmlFixture() {
     }
 
@@ -54,7 +59,9 @@ public final class XmlFixture {
         TransformerFactory tf = TransformerFactory.newInstance();
         Transformer transformer = tf.newTransformer();
         transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-        transformer.transform(aActual, new StreamResult(System.out));
+        StringWriter sw = new StringWriter();
+        transformer.transform(aActual, new StreamResult(sw));
+        LOG.debug(sw.toString());
     }
 
     public static Source stripTimestamp(Source aSource) throws Exception {
diff --git a/components/camel-keycloak/src/test/java/org/apache/camel/component/keycloak/security/KeycloakSecurityIT.java b/components/camel-keycloak/src/test/java/org/apache/camel/component/keycloak/security/KeycloakSecurityIT.java
index ea315ba2e0d3..2c7fe42f9e50 100644
--- a/components/camel-keycloak/src/test/java/org/apache/camel/component/keycloak/security/KeycloakSecurityIT.java
+++ b/components/camel-keycloak/src/test/java/org/apache/camel/component/keycloak/security/KeycloakSecurityIT.java
@@ -40,6 +40,8 @@ import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.EnabledIfSystemProperties;
 import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.jupiter.api.Assertions.*;
 
@@ -64,6 +66,8 @@ import static org.junit.jupiter.api.Assertions.*;
 })
 public class KeycloakSecurityIT extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(KeycloakSecurityIT.class);
+
     private static String keycloakUrl;
     private static String realm;
     private static String clientId;
@@ -355,7 +359,7 @@ public class KeycloakSecurityIT extends CamelTestSupport {
             java.util.Set<String> permissions = KeycloakSecurityHelper.extractPermissions(token);
 
             // Log the permissions found for debugging
-            System.out.println("Permissions found in token: " + permissions);
+            LOG.info("Permissions found in token: {}", permissions);
 
             // Permissions might be empty in a basic setup, which is expected
             assertNotNull(permissions);
diff --git a/components/camel-ldap/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java b/components/camel-ldap/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
index fb226a2c62ec..c7fc656489cc 100644
--- a/components/camel-ldap/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
+++ b/components/camel-ldap/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
@@ -410,7 +410,7 @@ public final class DSAnnotationProcessor {
                 .getAnnotation(LoadSchema.class);
 
         if (loadSchema != null) {
-            System.out.println(loadSchema);
+            LOG.debug("Found LoadSchema annotation: {}", loadSchema);
         }
     }
 
diff --git a/components/camel-ldif/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java b/components/camel-ldif/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
index fb226a2c62ec..c7fc656489cc 100644
--- a/components/camel-ldif/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
+++ b/components/camel-ldif/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
@@ -410,7 +410,7 @@ public final class DSAnnotationProcessor {
                 .getAnnotation(LoadSchema.class);
 
         if (loadSchema != null) {
-            System.out.println(loadSchema);
+            LOG.debug("Found LoadSchema annotation: {}", loadSchema);
         }
     }
 
diff --git a/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRASagaRoutesTest.java b/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRASagaRoutesTest.java
index ae9ecfd74160..c9762505cf6e 100644
--- a/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRASagaRoutesTest.java
+++ b/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRASagaRoutesTest.java
@@ -23,9 +23,13 @@ import java.util.Map;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class LRASagaRoutesTest {
 
+    private static final Logger LOG = LoggerFactory.getLogger(LRASagaRoutesTest.class);
+
     private Method getParseQueryMethod() throws NoSuchMethodException {
         Method method = LRASagaRoutes.class.getDeclaredMethod("parseQuery", String.class);
         method.setAccessible(true);
@@ -40,7 +44,7 @@ public class LRASagaRoutesTest {
                 .invoke(new LRASagaRoutes(null),
                         "Camel-Saga-Compensate=direct://saga1_participant1_compensate&Camel-Saga-Complete=direct://saga1_participant1_complete");
 
-        System.out.println(testResult.toString());
+        LOG.debug("Parsed query: {}", testResult);
 
         Assertions.assertNotNull(testResult, "pared query must not be null");
         Assertions.assertEquals(2, testResult.size(), "query parameter count must be two");
@@ -61,7 +65,7 @@ public class LRASagaRoutesTest {
         Map<String, String> testResult = (Map<String, String>) getParseQueryMethod()
                 .invoke(new LRASagaRoutes(null), "key1=value1&key2");
 
-        System.out.println(testResult.toString());
+        LOG.debug("Parsed query: {}", testResult);
 
         Assertions.assertNotNull(testResult, "pared query must not be null");
         Assertions.assertEquals(2, testResult.size(), "query parameter count must be two");
@@ -83,7 +87,7 @@ public class LRASagaRoutesTest {
                 .invoke(new LRASagaRoutes(null),
                         "Camel-Saga-Compensate=direct%3A%2F%2Fsaga1_participant1_compensate&Camel-Saga-Complete=direct%3A%2F%2Fsaga1_participant1_complete");
 
-        System.out.println(testResult.toString());
+        LOG.debug("Parsed query: {}", testResult);
 
         Assertions.assertNotNull(testResult, "pared query must not be null");
         Assertions.assertEquals(2, testResult.size(), "query parameter count must be two");
diff --git a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerTransactionTest.java b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerTransactionTest.java
index 46f474e99dd4..b8c79d538642 100644
--- a/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerTransactionTest.java
+++ b/components/camel-mllp/src/test/java/org/apache/camel/component/mllp/MllpTcpServerConsumerTransactionTest.java
@@ -18,14 +18,11 @@ package org.apache.camel.component.mllp;
 
 import java.util.concurrent.TimeUnit;
 
-import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
-import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.component.sjms.SjmsComponent;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.infra.artemis.services.ArtemisService;
@@ -36,10 +33,14 @@ import org.apache.camel.test.mllp.Hl7TestMessageGenerator;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @Disabled("This test hangs")
 public class MllpTcpServerConsumerTransactionTest extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(MllpTcpServerConsumerTransactionTest.class);
+
     @RegisterExtension
     public static ArtemisService service = ArtemisServiceFactory.createVMService();
 
@@ -65,16 +66,7 @@ public class MllpTcpServerConsumerTransactionTest extends CamelTestSupport {
         return context;
     }
 
-    @BindToRegistry("target")
-    public SjmsComponent addTargetComponent() {
-
-        SjmsComponent target = new SjmsComponent();
-        target.setConnectionFactory(new ActiveMQConnectionFactory(service.serviceAddress()));
-
-        return target;
-    }
-
-    @Override
+	@Override
     protected RouteBuilder createRouteBuilder() {
 
         mllpClient.setMllpHost("localhost");
@@ -106,7 +98,7 @@ public class MllpTcpServerConsumerTransactionTest extends CamelTestSupport {
 
                 from("target://test-queue")
                         .routeId("jms-consumer")
-                        .process(exchange -> System.out.println(exchange.getIn().getBody()))
+                        .process(exchange -> LOG.info("Body: {}", exchange.getIn().getBody()))
                         .log(LoggingLevel.INFO, routeId, "Test JMS Consumer received message")
                         .to(result);
 
diff --git a/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/AbstractOAuthCodeFlowTest.java b/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/AbstractOAuthCodeFlowTest.java
index 96ea77f3813f..3100bee09df2 100644
--- a/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/AbstractOAuthCodeFlowTest.java
+++ b/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/AbstractOAuthCodeFlowTest.java
@@ -20,12 +20,16 @@ import org.apache.camel.CamelContext;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Assumptions;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Test OIDC CodeFlow for a simple WebApp deployed on platform-http
  */
 abstract class AbstractOAuthCodeFlowTest extends AbstractKeycloakTest {
 
+    private static final Logger LOG = LoggerFactory.getLogger(AbstractOAuthCodeFlowTest.class);
+
     @Test
     void testCodeFlowAuth() throws Exception {
 
@@ -42,8 +46,8 @@ abstract class AbstractOAuthCodeFlowTest extends AbstractKeycloakTest {
             Assertions.assertEquals(1, keycloak.realm(KEYCLOAK_REALM).clients().findByClientId(TEST_CLIENT_ID).size());
             Assertions.assertEquals(1, keycloak.realm(KEYCLOAK_REALM).users().search("alice").size());
 
-            System.out.println("✅ Keycloak realm, client, and user available!");
-            System.out.println("✅ Open: " + APP_BASE_URL);
+            LOG.info("✅ Keycloak realm, client, and user available!");
+            LOG.info("✅ Open: {}", APP_BASE_URL);
 
             // Open WebApp in Browser (works on macOS)
             // Runtime.getRuntime().exec("open " + APP_BASE_URL);
@@ -54,11 +58,11 @@ abstract class AbstractOAuthCodeFlowTest extends AbstractKeycloakTest {
             for (int i = maxLoopCount; i > 0; i--) {
                 var options = context.getGlobalOptions();
                 if ("ok".equals(options.get("OAuthLogout"))) {
-                    System.out.println("✅ OAuthLogout - ok");
+                    LOG.info("✅ OAuthLogout - ok");
                     i = 0;
                 }
                 if (i % 4 == 0) {
-                    System.out.printf("Waiting on logout: %d/%d - %s%n", maxLoopCount - i, maxLoopCount,
+                    LOG.info("Waiting on logout: {}/{} - {}", maxLoopCount - i, maxLoopCount,
                             APP_BASE_URL + "logout");
                 }
                 Thread.sleep(500L);
diff --git a/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/SSLCertTrustTest.java b/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/SSLCertTrustTest.java
index 0a401caab9a4..d2b00ca4768b 100644
--- a/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/SSLCertTrustTest.java
+++ b/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/SSLCertTrustTest.java
@@ -31,9 +31,13 @@ import javax.net.ssl.TrustManagerFactory;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Assumptions;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 class SSLCertTrustTest extends AbstractKeycloakTest {
 
+    private static final Logger LOG = LoggerFactory.getLogger(SSLCertTrustTest.class);
+
     @Test
     void testCheckClusterCertificateTrust() throws Exception {
 
@@ -57,11 +61,11 @@ class SSLCertTrustTest extends AbstractKeycloakTest {
                 xtm.checkServerTrusted(new X509Certificate[] { cert }, "RSA");
             }
         } catch (CertificateException ex) {
-            System.err.println("Untrusted, because of: " + ex);
+            LOG.error("Untrusted, because of: ", ex);
             return;
         }
 
-        System.out.println("Trusted");
+        LOG.info("Trusted");
     }
 
     @Test
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LoginConfigHelper.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LoginConfigHelper.java
index 97f0332e7402..cf148a1636e4 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LoginConfigHelper.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LoginConfigHelper.java
@@ -23,11 +23,14 @@ import java.util.ResourceBundle;
 
 import org.apache.camel.support.jsse.KeyStoreParameters;
 import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.util.ObjectHelper.isNotEmpty;
 
 public final class LoginConfigHelper {
 
+    private static final Logger LOG = LoggerFactory.getLogger(LoginConfigHelper.class);
     private static final LoginConfigHelper INSTANCE = new LoginConfigHelper();
 
     private final Map<String, String> configuration;
@@ -85,59 +88,59 @@ public final class LoginConfigHelper {
         try {
             loginConfig.validate();
         } catch (final IllegalArgumentException e) {
-            System.out.println("To run integration tests Salesforce Authentication information is");
-            System.out.println("needed.");
-            System.out.println("You need to specify the configuration for running tests by either");
-            System.out.println("specifying environment variables, Maven properties or create a Java");
-            System.out.println("properties file at:");
-            System.out.println();
-            System.out.println("camel/components/camel-salesforce/test-salesforce-login.properties");
-            System.out.println();
-            System.out.println("With authentication information to access a Salesforce instance.");
-            System.out.println("You can use:");
-            System.out.println();
-            System.out.println("camel/components/camel-salesforce/test-salesforce-login.sample.properties");
-            System.out.println();
-            System.out.println("as reference. A free Salesforce developer account can be obtained at:");
-            System.out.println();
-            System.out.println("https://developer.salesforce.com");
-            System.out.println();
-            System.out.println("Properties that you need to set:");
-            System.out.println();
-            System.out.println("| Maven or properties file     | Environment variable         | Use    |");
-            System.out.println("|------------------------------+------------------------------+--------|");
-            System.out.println("| salesforce.client.id         | SALESFORCE_CLIENT_ID         | ALL    |");
-            System.out.println("| salesforce.client.secret     | SALESFORCE_CLIENT_SECRET     | UP, RT |");
-            System.out.println("| salesforce.username          | SALESFORCE_USERNAME          | UP, JWT|");
-            System.out.println("| salesforce.password          | SALESFORCE_PASSWORD          | UP     |");
-            System.out.println("| salesforce.refreshToken      | SALESFORCE_REFRESH_TOKEN     | RT     |");
-            System.out.println("| salesforce.keystore.path     | SALESFORCE_KEYSTORE_PATH     | JWT    |");
-            System.out.println("| salesforce.keystore.type     | SALESFORCE_KEYSTORE_TYPE     | JWT    |");
-            System.out.println("| salesforce.keystore.password | SALESFORCE_KEYSTORE_PASSWORD | JWT    |");
-            System.out.println("| salesforce.login.url         | SALESFORCE_LOGIN_URL         | ALL    |");
-            System.out.println();
-            System.out.println("* ALL - required always");
-            System.out.println("* UP  - when using username and password authentication");
-            System.out.println("* RT  - when using refresh token flow");
-            System.out.println("* JWT - when using JWT flow");
-            System.out.println();
-            System.out.println("You can force authentication type to be one of USERNAME_PASSWORD,");
-            System.out.println("REFRESH_TOKEN or JWT by setting `salesforce.auth.type` (or ");
-            System.out.println("`SALESFORCE_AUTH_TYPE` for environment variables).");
-            System.out.println();
-            System.out.println("Examples:");
-            System.out.println();
-            System.out.println("Using environment:");
-            System.out.println();
-            System.out.println("$ export SALESFORCE_CLIENT_ID=...");
-            System.out.println("$ export SALESFORCE_CLIENT_SECRET=...");
-            System.out.println("$ export ...others...");
-            System.out.println();
-            System.out.println("or using Maven properties:");
-            System.out.println();
-            System.out.println("$ mvn -Pintegration -Dsalesforce.client.id=... \\");
-            System.out.println("  -Dsalesforce.client.secret=... ...");
-            System.out.println();
+            LOG.info("To run integration tests Salesforce Authentication information is");
+            LOG.info("needed.");
+            LOG.info("You need to specify the configuration for running tests by either");
+            LOG.info("specifying environment variables, Maven properties or create a Java");
+            LOG.info("properties file at:");
+            LOG.info("");
+            LOG.info("camel/components/camel-salesforce/test-salesforce-login.properties");
+            LOG.info("");
+            LOG.info("With authentication information to access a Salesforce instance.");
+            LOG.info("You can use:");
+            LOG.info("");
+            LOG.info("camel/components/camel-salesforce/test-salesforce-login.sample.properties");
+            LOG.info("");
+            LOG.info("as reference. A free Salesforce developer account can be obtained at:");
+            LOG.info("");
+            LOG.info("https://developer.salesforce.com");
+            LOG.info("");
+            LOG.info("Properties that you need to set:");
+            LOG.info("");
+            LOG.info("| Maven or properties file     | Environment variable         | Use    |");
+            LOG.info("|------------------------------+------------------------------+--------|");
+            LOG.info("| salesforce.client.id         | SALESFORCE_CLIENT_ID         | ALL    |");
+            LOG.info("| salesforce.client.secret     | SALESFORCE_CLIENT_SECRET     | UP, RT |");
+            LOG.info("| salesforce.username          | SALESFORCE_USERNAME          | UP, JWT|");
+            LOG.info("| salesforce.password          | SALESFORCE_PASSWORD          | UP     |");
+            LOG.info("| salesforce.refreshToken      | SALESFORCE_REFRESH_TOKEN     | RT     |");
+            LOG.info("| salesforce.keystore.path     | SALESFORCE_KEYSTORE_PATH     | JWT    |");
+            LOG.info("| salesforce.keystore.type     | SALESFORCE_KEYSTORE_TYPE     | JWT    |");
+            LOG.info("| salesforce.keystore.password | SALESFORCE_KEYSTORE_PASSWORD | JWT    |");
+            LOG.info("| salesforce.login.url         | SALESFORCE_LOGIN_URL         | ALL    |");
+            LOG.info("");
+            LOG.info("* ALL - required always");
+            LOG.info("* UP  - when using username and password authentication");
+            LOG.info("* RT  - when using refresh token flow");
+            LOG.info("* JWT - when using JWT flow");
+            LOG.info("");
+            LOG.info("You can force authentication type to be one of USERNAME_PASSWORD,");
+            LOG.info("REFRESH_TOKEN or JWT by setting `salesforce.auth.type` (or ");
+            LOG.info("`SALESFORCE_AUTH_TYPE` for environment variables).");
+            LOG.info("");
+            LOG.info("Examples:");
+            LOG.info("");
+            LOG.info("Using environment:");
+            LOG.info("");
+            LOG.info("$ export SALESFORCE_CLIENT_ID=...");
+            LOG.info("$ export SALESFORCE_CLIENT_SECRET=...");
+            LOG.info("$ export ...others...");
+            LOG.info("");
+            LOG.info("or using Maven properties:");
+            LOG.info("");
+            LOG.info("$ mvn -Pintegration -Dsalesforce.client.id=... \\");
+            LOG.info("  -Dsalesforce.client.secret=... ...");
+            LOG.info("");
         }
     }
 
diff --git a/components/camel-splunk/src/test/java/org/apache/camel/component/splunk/ProducerTest.java b/components/camel-splunk/src/test/java/org/apache/camel/component/splunk/ProducerTest.java
index e49a029ce949..7903f5a272e9 100644
--- a/components/camel-splunk/src/test/java/org/apache/camel/component/splunk/ProducerTest.java
+++ b/components/camel-splunk/src/test/java/org/apache/camel/component/splunk/ProducerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.splunk;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
 import com.splunk.Args;
@@ -70,6 +71,8 @@ public class ProducerTest extends SplunkMockTestSupport {
     @Mock
     private InputCollection inputCollection;
 
+    private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
     @BeforeEach
     public void setup() throws IOException {
         when(service.getIndexes()).thenReturn(indexColl);
@@ -79,7 +82,7 @@ public class ProducerTest extends SplunkMockTestSupport {
         when(inputCollection.get(anyString())).thenReturn(input);
         when(indexColl.get(anyString())).thenReturn(index);
         when(index.attach(isA(Args.class))).thenReturn(socket);
-        when(socket.getOutputStream()).thenReturn(System.out);
+        when(socket.getOutputStream()).thenReturn(baos);
     }
 
     @Test
diff --git a/components/camel-splunk/src/test/java/org/apache/camel/component/splunk/RawProducerTest.java b/components/camel-splunk/src/test/java/org/apache/camel/component/splunk/RawProducerTest.java
index 0be23ab82fbb..eea8290725c5 100644
--- a/components/camel-splunk/src/test/java/org/apache/camel/component/splunk/RawProducerTest.java
+++ b/components/camel-splunk/src/test/java/org/apache/camel/component/splunk/RawProducerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.splunk;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
 import com.splunk.Args;
@@ -61,6 +62,8 @@ public class RawProducerTest extends SplunkMockTestSupport {
     @Mock
     private InputCollection inputCollection;
 
+    private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
     @BeforeEach
     public void setup() throws IOException {
         when(service.getIndexes()).thenReturn(indexColl);
@@ -70,7 +73,7 @@ public class RawProducerTest extends SplunkMockTestSupport {
         when(inputCollection.get(anyString())).thenReturn(input);
         when(indexColl.get(anyString())).thenReturn(index);
         when(index.attach(isA(Args.class))).thenReturn(socket);
-        when(socket.getOutputStream()).thenReturn(System.out);
+        when(socket.getOutputStream()).thenReturn(baos);
     }
 
     @Test
diff --git a/components/camel-xj/src/test/java/org/apache/camel/component/xj/XJTestUtils.java b/components/camel-xj/src/test/java/org/apache/camel/component/xj/XJTestUtils.java
index 09fcdfb29ecc..7ec4c2630851 100644
--- a/components/camel-xj/src/test/java/org/apache/camel/component/xj/XJTestUtils.java
+++ b/components/camel-xj/src/test/java/org/apache/camel/component/xj/XJTestUtils.java
@@ -43,11 +43,14 @@ import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.core.JsonParser;
 import org.apache.commons.io.IOUtils;
 import org.skyscreamer.jsonassert.JSONAssert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xmlunit.assertj3.XmlAssert;
 import org.xmlunit.builder.Input;
 
 final class XJTestUtils {
 
+    private static final Logger LOG = LoggerFactory.getLogger(XJTestUtils.class);
     private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance();
     private static final Map<String, Templates> XSL_TEMPLATES = Collections.synchronizedMap(new HashMap<>());
     private static final JsonFactory JSON_FACTORY = new JsonFactory();
@@ -118,7 +121,7 @@ final class XJTestUtils {
             transformer.transform(new StreamSource(inputFile), stAXResult);
         } catch (Exception e) {
             String result = byteArrayOutputStream.toString(StandardCharsets.UTF_8.name());
-            System.out.println(result);
+            LOG.error("Transformation failed, partial result: {}", result, e);
             throw e;
         }
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/validator/ValidatorIncludeEncodingRouteTest.java b/core/camel-core/src/test/java/org/apache/camel/component/validator/ValidatorIncludeEncodingRouteTest.java
index 3aec71d2af91..1f74f72e2825 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/validator/ValidatorIncludeEncodingRouteTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/validator/ValidatorIncludeEncodingRouteTest.java
@@ -23,12 +23,16 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  *
  */
 public class ValidatorIncludeEncodingRouteTest extends ContextTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(ValidatorIncludeEncodingRouteTest.class);
+
     protected MockEndpoint validEndpoint;
     protected MockEndpoint finallyEndpoint;
     protected MockEndpoint invalidEndpoint;
@@ -66,7 +70,7 @@ public class ValidatorIncludeEncodingRouteTest extends ContextTestSupport {
                         .process(new Processor() {
                             @Override
                             public void process(Exchange exchange) {
-                                System.err.println("helo " + exchange.getException());
+                                LOG.error("helo", exchange.getException());
                             }
                         }).to("mock:invalid").doFinally().to("mock:finally").end();
             }
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainCommandLineSupport.java b/core/camel-main/src/main/java/org/apache/camel/main/MainCommandLineSupport.java
index 104dc0d17040..15462e4daccc 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainCommandLineSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainCommandLineSupport.java
@@ -29,12 +29,15 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.spi.LoadablePropertiesSource;
 import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.util.OrderedProperties;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Support for command line arguments to Camel main.
  */
 public abstract class MainCommandLineSupport extends MainSupport {
 
+    protected static final Logger LOG = LoggerFactory.getLogger(MainCommandLineSupport.class);
     protected final List<Option> options = new ArrayList<>();
     protected Properties argumentProperties;
     private volatile boolean initOptionsDone;
@@ -188,7 +191,7 @@ public abstract class MainCommandLineSupport extends MainSupport {
         showOptionsHeader();
 
         for (Option option : options) {
-            System.out.println(option.getInformation());
+            LOG.info(option.getInformation());
         }
     }
 
@@ -211,8 +214,7 @@ public abstract class MainCommandLineSupport extends MainSupport {
                 }
             }
             if (!handled) {
-                System.out.println("Unknown option: " + arg);
-                System.out.println();
+                LOG.error("Unknown option: {}", arg);
                 valid = false;
                 break;
             }
@@ -295,8 +297,7 @@ public abstract class MainCommandLineSupport extends MainSupport {
      * Displays the header message for the command line options.
      */
     public void showOptionsHeader() {
-        System.out.println("Apache Camel Runner takes the following options");
-        System.out.println();
+        LOG.info("Apache Camel Runner takes the following options");
     }
 
     public abstract static class Option {
@@ -348,7 +349,7 @@ public abstract class MainCommandLineSupport extends MainSupport {
         @Override
         protected void doProcess(String arg, LinkedList<String> remainingArgs) {
             if (remainingArgs.isEmpty()) {
-                System.err.println("Expected fileName for ");
+                LOG.error("Expected parameter for option: {}", arg);
                 showOptions();
                 completed();
             } else {
diff --git a/core/camel-xml-io/src/main/java/org/apache/camel/xml/io/MXParser.java b/core/camel-xml-io/src/main/java/org/apache/camel/xml/io/MXParser.java
index f19457d9ae88..da4bab61bc5d 100644
--- a/core/camel-xml-io/src/main/java/org/apache/camel/xml/io/MXParser.java
+++ b/core/camel-xml-io/src/main/java/org/apache/camel/xml/io/MXParser.java
@@ -33,6 +33,8 @@ import java.io.InputStreamReader;
 import java.io.Reader;
 
 import org.apache.camel.xml.io.util.XmlStreamReader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 // https://github.com/codelibs/xpp3/blob/master/src/main/java/org/xmlpull/mxp1/MXParser.java
 
@@ -49,6 +51,7 @@ import org.apache.camel.xml.io.util.XmlStreamReader;
  * @author <a href="http://www.extreme.indiana.edu/~aslom/">Aleksander Slominski</a>
  */
 public class MXParser implements XmlPullParser {
+    private static final Logger LOG = LoggerFactory.getLogger(MXParser.class);
     // NOTE: no interning of those strings --> by Java lang spec they MUST be
     // already interned
     protected static final String XML_URI = "http://www.w3.org/XML/1998/namespace";
@@ -73,7 +76,7 @@ public class MXParser implements XmlPullParser {
     protected boolean allStringsInterned;
 
     protected void resetStringCache() {
-        // System.out.println("resetStringCache() minimum called");
+        // LOG.trace("resetStringCache() minimum called");
     }
 
     protected String newString(char[] cbuf, int off, int len) {
@@ -84,8 +87,6 @@ public class MXParser implements XmlPullParser {
         return (new String(cbuf, off, len)).intern();
     }
 
-    private static final boolean TRACE_SIZING = false;
-
     // NOTE: features are not resettable and typically defaults to false ...
     protected boolean processNamespaces;
     protected boolean roundtripSupported;
@@ -121,9 +122,7 @@ public class MXParser implements XmlPullParser {
             // we add at least one extra slot ...
             final int newSize = (depth >= 7 ? 2 * depth : 8) + 2; // = lucky 7 +
                                                                  // 1 //25
-            if (TRACE_SIZING) {
-                System.err.println("TRACE_SIZING elStackSize " + elStackSize + " ==> " + newSize);
-            }
+            LOG.trace("elStackSize {} ==> {}", elStackSize, newSize);
             final boolean needsCopying = elStackSize > 0;
             String[] arr;
             // reuse arr local variable slot
@@ -167,23 +166,6 @@ public class MXParser implements XmlPullParser {
                 System.arraycopy(elRawName, 0, carr, 0, elStackSize);
             }
             elRawName = carr;
-            // arr = new String[newSize];
-            // if(needsCopying) System.arraycopy(elLocalName, 0, arr, 0,
-            // elStackSize);
-            // elLocalName = arr;
-            // arr = new String[newSize];
-            // if(needsCopying) System.arraycopy(elDefaultNs, 0, arr, 0,
-            // elStackSize);
-            // elDefaultNs = arr;
-            // int[] iarr = new int[newSize];
-            // if(needsCopying) System.arraycopy(elNsStackPos, 0, iarr, 0,
-            // elStackSize);
-            // for (int i = elStackSize; i < iarr.length; i++)
-            // {
-            // iarr[i] = (i > 0) ? -1 : 0;
-            // }
-            // elNsStackPos = iarr;
-            // assert depth < elName.length;
         }
     }
 
@@ -206,9 +188,7 @@ public class MXParser implements XmlPullParser {
         final int attrPosSize = attributeName != null ? attributeName.length : 0;
         if (size >= attrPosSize) {
             final int newSize = size > 7 ? 2 * size : 8; // = lucky 7 + 1 //25
-            if (TRACE_SIZING) {
-                System.err.println("TRACE_SIZING attrPosSize " + attrPosSize + " ==> " + newSize);
-            }
+            LOG.trace("attrPosSize {} ==> {}", attrPosSize, newSize);
             final boolean needsCopying = attrPosSize > 0;
             String[] arr;
 
@@ -238,7 +218,6 @@ public class MXParser implements XmlPullParser {
                     System.arraycopy(attributeNameHash, 0, iarr, 0, attrPosSize);
                 attributeNameHash = iarr;
             }
-            // //assert attrUri.length > size
         }
     }
 
@@ -252,9 +231,7 @@ public class MXParser implements XmlPullParser {
         final int namespaceSize = namespacePrefix != null ? namespacePrefix.length : 0;
         if (size >= namespaceSize) {
             final int newSize = size > 7 ? 2 * size : 8; // = lucky 7 + 1 //25
-            if (TRACE_SIZING) {
-                System.err.println("TRACE_SIZING namespaceSize " + namespaceSize + " ==> " + newSize);
-            }
+            LOG.trace("namespaceSize {} ==> {}", namespaceSize, newSize);
             final String[] newNamespacePrefix = new String[newSize];
             final String[] newNamespaceUri = new String[newSize];
             if (namespacePrefix != null) {
@@ -271,8 +248,6 @@ public class MXParser implements XmlPullParser {
                 }
                 namespacePrefixHash = newNamespacePrefixHash;
             }
-            // prefixesSize = newSize;
-            // //assert nsPrefixes.length > size && nsPrefixes.length == newSize
         }
     }
 
@@ -283,23 +258,12 @@ public class MXParser implements XmlPullParser {
     protected static int fastHash(char[] ch, int off, int len) {
         if (len == 0)
             return 0;
-        // assert len >0
         int hash = ch[off]; // hash at beginning
-        // try {
         hash = (hash << 7) + ch[off + len - 1]; // hash at the end
-        // } catch(ArrayIndexOutOfBoundsException aie) {
-        // aie.printStackTrace(); //should never happen ...
-        // throw new RuntimeException("this is violation of pre-condition");
-        // }
         if (len > 16)
             hash = (hash << 7) + ch[off + (len / 4)]; // 1/4 from beginning
         if (len > 8)
             hash = (hash << 7) + ch[off + (len / 2)]; // 1/2 of string size ...
-        // notice that hash is at most done 3 times <<7 so shifted by 21 bits 8
-        // bit value
-        // so max result == 29 bits so it is quite just below 31 bits for long
-        // (2^32) ...
-        // assert hash >= 0;
         return hash;
     }
 
@@ -317,10 +281,7 @@ public class MXParser implements XmlPullParser {
         final int entitySize = entityReplacementBuf != null ? entityReplacementBuf.length : 0;
         if (entityEnd >= entitySize) {
             final int newSize = entityEnd > 7 ? 2 * entityEnd : 8; // = lucky 7
-                                                                  // + 1 //25
-            if (TRACE_SIZING) {
-                System.err.println("TRACE_SIZING entitySize " + entitySize + " ==> " + newSize);
-            }
+            LOG.trace("entitySize {} ==> {}", entitySize, newSize);
             final String[] newEntityName = new String[newSize];
             final char[][] newEntityNameBuf = new char[newSize][];
             final String[] newEntityReplacement = new String[newSize];
@@ -353,12 +314,9 @@ public class MXParser implements XmlPullParser {
     protected String inputEncoding;
 
     protected int bufLoadFactor = 95; // 99%
-    // protected int bufHardLimit; // only matters when expanding
 
     protected char[] buf = new char[Runtime.getRuntime().freeMemory() > 1000000L ? READ_CHUNK_SIZE : 256];
     protected int bufSoftLimit = (bufLoadFactor * buf.length) / 100; // desirable
-                                                                    // size of
-                                                                    // buffer
     protected boolean preventBufferCompaction;
 
     protected int bufAbsoluteStart; // this is buf
@@ -372,9 +330,6 @@ public class MXParser implements XmlPullParser {
     protected int pcStart;
     protected int pcEnd;
 
-    // parsing state
-    // protected boolean needsMore;
-    // protected boolean seenMarkup;
     protected boolean usePC;
 
     protected boolean seenStartTag;
@@ -384,7 +339,6 @@ public class MXParser implements XmlPullParser {
     protected boolean seenMarkup;
     protected boolean seenDocdecl;
 
-    // transient variable set during each call to next/Token()
     protected boolean tokenize;
     protected String text;
     protected String entityRefName;
@@ -394,7 +348,6 @@ public class MXParser implements XmlPullParser {
     protected String xmlDeclContent;
 
     protected void reset() {
-        // System.out.println("reset() called");
         location = null;
         startLineNumber = 1;
         lineNumber = 1;
@@ -441,13 +394,6 @@ public class MXParser implements XmlPullParser {
     public MXParser() {
     }
 
-    /**
-     * Method setFeature
-     *
-     * @param  name                   a String
-     * @param  state                  a boolean
-     * @throws XmlPullParserException
-     */
     public void setFeature(String name, boolean state) throws XmlPullParserException {
         if (name == null)
             throw new IllegalArgumentException("feature name should not be null");
@@ -455,11 +401,6 @@ public class MXParser implements XmlPullParser {
             if (eventType != START_DOCUMENT)
                 throw new XmlPullParserException("namespace processing feature can only be changed before parsing", this, null);
             processNamespaces = state;
-            // } else if(FEATURE_REPORT_NAMESPACE_ATTRIBUTES.equals(name)) {
-            // if(type != START_DOCUMENT) throw new XmlPullParserException(
-            // "namespace reporting feature can only be changed before parsing",
-            // this, null);
-            // reportNsAttribs = state;
         } else if (FEATURE_NAMES_INTERNED.equals(name)) {
             if (state) {
                 throw new XmlPullParserException("interning names in this implementation is not supported");
@@ -468,37 +409,23 @@ public class MXParser implements XmlPullParser {
             if (state) {
                 throw new XmlPullParserException("processing DOCDECL is not supported");
             }
-            // } else if(REPORT_DOCDECL.equals(name)) {
-            // paramNotifyDoctype = state;
         } else if (FEATURE_XML_ROUNDTRIP.equals(name)) {
-            // if(state == false) {
-            // throw new XmlPullParserException(
-            // "roundtrip feature can not be switched off");
-            // }
             roundtripSupported = state;
         } else {
             throw new XmlPullParserException("unsupported feature " + name);
         }
     }
 
-    /**
-     * Unknown properties are <strong>always</strong> returned as false
-     */
     public boolean getFeature(String name) {
         if (name == null)
             throw new IllegalArgumentException("feature name should not be null");
         if (FEATURE_PROCESS_NAMESPACES.equals(name)) {
             return processNamespaces;
-            // } else if(FEATURE_REPORT_NAMESPACE_ATTRIBUTES.equals(name)) {
-            // return reportNsAttribs;
         } else if (FEATURE_NAMES_INTERNED.equals(name)) {
             return false;
         } else if (FEATURE_PROCESS_DOCDECL.equals(name)) {
             return false;
-            // } else if(REPORT_DOCDECL.equals(name)) {
-            // return paramNotifyDoctype;
         } else if (FEATURE_XML_ROUNDTRIP.equals(name)) {
-            // return true;
             return roundtripSupported;
         }
         return false;
@@ -559,13 +486,7 @@ public class MXParser implements XmlPullParser {
     }
 
     public void defineEntityReplacementText(String entityName, String replacementText) throws XmlPullParserException {
-        // throw new XmlPullParserException("not allowed");
-
-        // protected char[] entityReplacement[];
         ensureEntityCapacity();
-
-        // this is to make sure that if interning works we will take advantage
-        // of it ...
         this.entityName[entityEnd] = newString(entityName.toCharArray(), 0, entityName.length());
         entityNameBuf[entityEnd] = entityName.toCharArray();
 
@@ -575,26 +496,18 @@ public class MXParser implements XmlPullParser {
             entityNameHash[entityEnd] = fastHash(entityNameBuf[entityEnd], 0, entityNameBuf[entityEnd].length);
         }
         ++entityEnd;
-        // TODO disallow < or & in entity replacement text (or ]]>???)
-        // TOOD keepEntityNormalizedForAttributeValue cached as well ...
     }
 
     public int getNamespaceCount(int depth) throws XmlPullParserException {
         if (!processNamespaces || depth == 0) {
             return 0;
         }
-        // int maxDepth = eventType == END_TAG ? this.depth + 1 : this.depth;
-        // if(depth < 0 || depth > maxDepth) throw new IllegalArgumentException(
         if (depth < 0 || depth > this.depth)
             throw new IllegalArgumentException("allowed namespace depth 0.." + this.depth + " not " + depth);
         return elNamespaceCount[depth];
     }
 
     public String getNamespacePrefix(int pos) throws XmlPullParserException {
-
-        // int end = eventType == END_TAG ? elNamespaceCount[ depth + 1 ] :
-        // namespaceEnd;
-        // if(pos < end) {
         if (pos < namespaceEnd) {
             return namespacePrefix[pos];
         } else {
@@ -603,9 +516,6 @@ public class MXParser implements XmlPullParser {
     }
 
     public String getNamespaceUri(int pos) throws XmlPullParserException {
-        // int end = eventType == END_TAG ? elNamespaceCount[ depth + 1 ] :
-        // namespaceEnd;
-        // if(pos < end) {
         if (pos < namespaceEnd) {
             return namespaceUri[pos];
         } else {
@@ -613,10 +523,7 @@ public class MXParser implements XmlPullParser {
         }
     }
 
-    public String getNamespace(String prefix)
-    // throws XmlPullParserException
-    {
-        // int count = namespaceCount[ depth ];
+    public String getNamespace(String prefix) {
         if (prefix != null) {
             for (int i = namespaceEnd - 1; i >= 0; i--) {
                 if (prefix.equals(namespacePrefix[i])) {
@@ -630,8 +537,7 @@ public class MXParser implements XmlPullParser {
             }
         } else {
             for (int i = namespaceEnd - 1; i >= 0; i--) {
-                if (namespacePrefix[i] == null) { // "") { //null ) { //TODO
-                                                 // check FIXME Alek
+                if (namespacePrefix[i] == null) {
                     return namespaceUri[i];
                 }
             }
@@ -645,8 +551,6 @@ public class MXParser implements XmlPullParser {
     }
 
     private static int findFragment(int bufMinPos, char[] b, int start, int end) {
-        // System.err.println("bufStart="+bufStart+" b="+printable(new String(b,
-        // start, end - start))+" start="+start+" end="+end);
         if (start < bufMinPos) {
             start = bufMinPos;
             if (start > end)
@@ -667,23 +571,16 @@ public class MXParser implements XmlPullParser {
         return i;
     }
 
-    /**
-     * Return string describing current position of parsers as text 'STATE [seen %s...] @line:column'.
-     */
     public String getPositionDescription() {
         String fragment = null;
         if (posStart <= pos) {
             final int start = findFragment(0, buf, posStart, pos);
-            // System.err.println("start="+start);
             if (start < pos) {
                 fragment = new String(buf, start, pos - start);
             }
             if (bufAbsoluteStart > 0 || start > 0)
                 fragment = "..." + fragment;
         }
-        // return " at line "+tokenizerPosRow
-        // +" and column "+(tokenizerPosCol-1)
-        // +(fragment != null ? " seen "+printable(fragment)+"..." : "");
         return " " + TYPES[eventType] + (fragment != null ? " seen " + printable(fragment) + "..." : "") + " "
                + (location != null ? location : "") + "@" + getLineNumber() + ":"
                + getColumnNumber();
@@ -724,12 +621,7 @@ public class MXParser implements XmlPullParser {
 
     public String getText() {
         if (eventType == START_DOCUMENT || eventType == END_DOCUMENT) {
-            // throw new XmlPullParserException("no content available to read");
-            // if(roundtripSupported) {
-            // text = new String(buf, posStart, posEnd - posStart);
-            // } else {
             return null;
-            // }
         } else if (eventType == ENTITY_REF) {
             return text;
         }
@@ -762,52 +654,24 @@ public class MXParser implements XmlPullParser {
             holderForStartAndLength[1] = posEnd - posStart;
             return buf;
         } else if (eventType == START_DOCUMENT || eventType == END_DOCUMENT) {
-            // throw new XmlPullParserException("no content available to read");
             holderForStartAndLength[0] = holderForStartAndLength[1] = -1;
             return null;
         } else {
             throw new IllegalArgumentException("unknown text eventType: " + eventType);
         }
-        // String s = getText();
-        // char[] cb = null;
-        // if(s!= null) {
-        // cb = s.toCharArray();
-        // holderForStartAndLength[0] = 0;
-        // holderForStartAndLength[1] = s.length();
-        // } else {
-        // }
-        // return cb;
     }
 
     public String getNamespace() {
         if (eventType == START_TAG) {
-            // return processNamespaces ? elUri[ depth - 1 ] : NO_NAMESPACE;
             return processNamespaces ? elUri[depth] : NO_NAMESPACE;
         } else if (eventType == END_TAG) {
             return processNamespaces ? elUri[depth] : NO_NAMESPACE;
         }
         return null;
-        // String prefix = elPrefix[ maxDepth ];
-        // if(prefix != null) {
-        // for( int i = namespaceEnd -1; i >= 0; i--) {
-        // if( prefix.equals( namespacePrefix[ i ] ) ) {
-        // return namespaceUri[ i ];
-        // }
-        // }
-        // } else {
-        // for( int i = namespaceEnd -1; i >= 0; i--) {
-        // if( namespacePrefix[ i ] == null ) {
-        // return namespaceUri[ i ];
-        // }
-        // }
-        //
-        // }
-        // return "";
     }
 
     public String getName() {
         if (eventType == START_TAG) {
-            // return elName[ depth - 1 ] ;
             return elName[depth];
         } else if (eventType == END_TAG) {
             return elName[depth];
@@ -828,15 +692,11 @@ public class MXParser implements XmlPullParser {
 
     public String getPrefix() {
         if (eventType == START_TAG) {
-            // return elPrefix[ depth - 1 ] ;
             return elPrefix[depth];
         } else if (eventType == END_TAG) {
             return elPrefix[depth];
         }
         return null;
-        // if(eventType != START_TAG && eventType != END_TAG) return null;
-        // int maxDepth = eventType == END_TAG ? depth : depth - 1;
-        // return elPrefix[ maxDepth ];
     }
 
     public boolean isEmptyElementTag() throws XmlPullParserException {
@@ -909,7 +769,6 @@ public class MXParser implements XmlPullParser {
         if (name == null) {
             throw new IllegalArgumentException("attribute name can not be null");
         }
-        // TODO make check if namespace is interned!!! etc. for names!!!
         if (processNamespaces) {
             if (namespace == null) {
                 namespace = "";
@@ -917,9 +776,6 @@ public class MXParser implements XmlPullParser {
 
             for (int i = 0; i < attributeCount; ++i) {
                 if ((namespace == attributeUri[i] || namespace.equals(attributeUri[i]))
-                        // (namespace != null && namespace.equals(attributeUri[ i
-                        // ]))
-                        // taking advantage of String.intern()
                         && name.equals(attributeName[i])) {
                     return attributeValue[i];
                 }
@@ -968,10 +824,6 @@ public class MXParser implements XmlPullParser {
         }
     }
 
-    /**
-     * Skip sub tree that is currently parser positioned on. <br>
-     * NOTE: parser must be on START_TAG and when function returns parser will be positioned on corresponding END_TAG
-     */
     public void skipSubTree() throws XmlPullParserException, IOException {
         require(START_TAG, null, null);
         int level = 1;
@@ -985,35 +837,7 @@ public class MXParser implements XmlPullParser {
         }
     }
 
-    // public String readText() throws XmlPullParserException, IOException
-    // {
-    // if (getEventType() != TEXT) return "";
-    // String result = getText();
-    // next();
-    // return result;
-    // }
-
     public String nextText() throws XmlPullParserException, IOException {
-        // String result = null;
-        // boolean onStartTag = false;
-        // if(eventType == START_TAG) {
-        // onStartTag = true;
-        // next();
-        // }
-        // if(eventType == TEXT) {
-        // result = getText();
-        // next();
-        // } else if(onStartTag && eventType == END_TAG) {
-        // result = "";
-        // } else {
-        // throw new XmlPullParserException(
-        // "parser must be on START_TAG or TEXT to read text", this, null);
-        // }
-        // if(eventType != END_TAG) {
-        // throw new XmlPullParserException(
-        // "event TEXT it must be immediately followed by END_TAG", this, null);
-        // }
-        // return result;
         if (getEventType() != START_TAG) {
             throw new XmlPullParserException("parser must be on START_TAG to read next text", this, null);
         }
@@ -1070,7 +894,6 @@ public class MXParser implements XmlPullParser {
             return eventType = END_TAG;
         }
 
-        // [1] document ::= prolog element Misc*
         if (depth > 0) {
 
             if (seenStartTag) {
@@ -1082,9 +905,6 @@ public class MXParser implements XmlPullParser {
                 return eventType = parseEndTag();
             }
 
-            // ASSUMPTION: we are _on_ first character of content or markup!!!!
-            // [43] content ::= CharData? ((element | Reference | CDSect | PI |
-            // Comment) CharData?)*
             char ch;
             if (seenMarkup) { // we have read ahead ...
                 seenMarkup = false;
@@ -1095,22 +915,15 @@ public class MXParser implements XmlPullParser {
             } else {
                 ch = more();
             }
-            posStart = pos - 1; // VERY IMPORTANT: this is correct start of
-                               // event!!!
+            posStart = pos - 1;
 
-            // when true there is some potential event TEXT to return - keep
-            // gathering
             boolean hadCharData = false;
 
-            // when true TEXT data is not continual (like <![CDATA[text]]>) and
-            // requires PC merging
             boolean needsMerging = false;
 
             MAIN_LOOP: while (true) {
-                // work on MARKUP
                 if (ch == '<') {
                     if (hadCharData) {
-                        // posEnd = pos - 1;
                         if (tokenize) {
                             seenMarkup = true;
                             return eventType = TEXT;
@@ -1120,15 +933,12 @@ public class MXParser implements XmlPullParser {
                     if (ch == '/') {
                         if (!tokenize && hadCharData) {
                             seenEndTag = true;
-                            // posEnd = pos - 2;
                             return eventType = TEXT;
                         }
                         return eventType = parseEndTag();
                     } else if (ch == '!') {
                         ch = more();
                         if (ch == '-') {
-                            // note: if(tokenize == false) posStart/End is NOT
-                            // changed!!!!
                             parseComment();
                             if (tokenize)
                                 return eventType = COMMENT;
@@ -1138,11 +948,6 @@ public class MXParser implements XmlPullParser {
                                 posStart = pos; // completely ignore comment
                             }
                         } else if (ch == '[') {
-                            // posEnd = pos - 3;
-                            // must remember previous posStart/End as it merges
-                            // with content of CDATA
-                            // int oldStart = posStart + bufAbsoluteStart;
-                            // int oldEnd = posEnd + bufAbsoluteStart;
                             parseCDSect(hadCharData);
                             if (tokenize)
                                 return eventType = CDSECT;
@@ -1150,54 +955,12 @@ public class MXParser implements XmlPullParser {
                             final int cdEnd = posEnd;
                             final int cdLen = cdEnd - cdStart;
 
-                            if (cdLen > 0) { // was there anything inside CDATA
-                                            // section?
+                            if (cdLen > 0) {
                                 hadCharData = true;
                                 if (!usePC) {
                                     needsMerging = true;
                                 }
                             }
-
-                            // posStart = oldStart;
-                            // posEnd = oldEnd;
-                            // if(cdLen > 0) { // was there anything inside
-                            // CDATA section?
-                            // if(hadCharData) {
-                            // // do merging if there was anything in CDSect!!!!
-                            // // if(!usePC) {
-                            // // // posEnd is correct already!!!
-                            // // if(posEnd > posStart) {
-                            // // joinPC();
-                            // // } else {
-                            // // usePC = true;
-                            // // pcStart = pcEnd = 0;
-                            // // }
-                            // // }
-                            // // if(pcEnd + cdLen >= pc.length) ensurePC(pcEnd
-                            // + cdLen);
-                            // // // copy [cdStart..cdEnd) into PC
-                            // // System.arraycopy(buf, cdStart, pc, pcEnd,
-                            // cdLen);
-                            // // pcEnd += cdLen;
-                            // if(!usePC) {
-                            // needsMerging = true;
-                            // posStart = cdStart;
-                            // posEnd = cdEnd;
-                            // }
-                            // } else {
-                            // if(!usePC) {
-                            // needsMerging = true;
-                            // posStart = cdStart;
-                            // posEnd = cdEnd;
-                            // hadCharData = true;
-                            // }
-                            // }
-                            // //hadCharData = true;
-                            // } else {
-                            // if( !usePC && hadCharData ) {
-                            // needsMerging = true;
-                            // }
-                            // }
                         } else {
                             throw new XmlPullParserException("unexpected character in markup " + printable(ch), this, null);
                         }
@@ -1214,18 +977,13 @@ public class MXParser implements XmlPullParser {
                     } else if (isNameStartChar(ch)) {
                         if (!tokenize && hadCharData) {
                             seenStartTag = true;
-                            // posEnd = pos - 2;
                             return eventType = TEXT;
                         }
                         return eventType = parseStartTag();
                     } else {
                         throw new XmlPullParserException("unexpected character in markup " + printable(ch), this, null);
                     }
-                    // do content compaction if it makes sense!!!!
-
                 } else if (ch == '&') {
-                    // work on ENTITTY
-                    // posEnd = pos - 1;
                     if (tokenize && hadCharData) {
                         seenAmpersand = true;
                         return eventType = TEXT;
@@ -1235,7 +993,6 @@ public class MXParser implements XmlPullParser {
                     final char[] resolvedEntity = parseEntityRef();
                     if (tokenize)
                         return eventType = ENTITY_REF;
-                    // check if replacement text can be resolved !!!
                     if (resolvedEntity == null) {
                         if (entityRefName == null) {
                             entityRefName = newString(buf, posStart, posEnd - posStart);
@@ -1243,8 +1000,6 @@ public class MXParser implements XmlPullParser {
                         throw new XmlPullParserException(
                                 "could not resolve entity named '" + printable(entityRefName) + "'", this, null);
                     }
-                    // int entStart = posStart;
-                    // int entEnd = posEnd;
                     posStart = oldStart - bufAbsoluteStart;
                     posEnd = oldEnd - bufAbsoluteStart;
                     if (!usePC) {
@@ -1256,9 +1011,6 @@ public class MXParser implements XmlPullParser {
                             pcStart = pcEnd = 0;
                         }
                     }
-                    // assert usePC == true;
-                    // write into PC replacement text - do merge for replacement
-                    // text!!!!
                     for (int i = 0; i < resolvedEntity.length; i++) {
                         if (pcEnd >= pc.length)
                             ensurePC(pcEnd);
@@ -1266,30 +1018,21 @@ public class MXParser implements XmlPullParser {
 
                     }
                     hadCharData = true;
-                    // assert needsMerging == false;
                 } else {
 
                     if (needsMerging) {
-                        // assert usePC == false;
-                        joinPC(); // posEnd is already set correctly!!!
-                        // posStart = pos - 1;
+                        joinPC();
                         needsMerging = false;
                     }
 
-                    // no MARKUP not ENTITIES so work on character data ...
-
-                    // [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
-
                     hadCharData = true;
 
                     boolean normalizedCR = false;
                     final boolean normalizeInput = !tokenize || !roundtripSupported;
-                    // use loop locality here!!!!
                     boolean seenBracket = false;
                     boolean seenBracketBracket = false;
                     do {
 
-                        // check that ]]> does not show in
                         if (ch == ']') {
                             if (seenBracket) {
                                 seenBracketBracket = true;
@@ -1302,14 +1045,11 @@ public class MXParser implements XmlPullParser {
                             if (seenBracket) {
                                 seenBracketBracket = seenBracket = false;
                             }
-                            // assert seenTwoBrackets == seenBracket == false;
                         }
                         if (normalizeInput) {
-                            // deal with normalization issues ...
                             if (ch == '\r') {
                                 normalizedCR = true;
                                 posEnd = pos - 1;
-                                // posEnd is already is set
                                 if (!usePC) {
                                     if (posEnd > posStart) {
                                         joinPC();
@@ -1318,13 +1058,10 @@ public class MXParser implements XmlPullParser {
                                         pcStart = pcEnd = 0;
                                     }
                                 }
-                                // assert usePC == true;
                                 if (pcEnd >= pc.length)
                                     ensurePC(pcEnd);
                                 pc[pcEnd++] = '\n';
                             } else if (ch == '\n') {
-                                // if(!usePC) { joinPC(); } else { if(pcEnd >=
-                                // pc.length) ensurePC(); }
                                 if (!normalizedCR && usePC) {
                                     if (pcEnd >= pc.length)
                                         ensurePC(pcEnd);
@@ -1344,11 +1081,10 @@ public class MXParser implements XmlPullParser {
                         ch = more();
                     } while (ch != '<' && ch != '&');
                     posEnd = pos - 1;
-                    continue MAIN_LOOP; // skip ch = more() from below - we are
-                                       // alreayd ahead ...
+                    continue MAIN_LOOP;
                 }
                 ch = more();
-            } // endless while(true)
+            }
         } else {
             if (seenRoot) {
                 return parseEpilog();
@@ -1359,9 +1095,6 @@ public class MXParser implements XmlPullParser {
     }
 
     protected int parseProlog() throws XmlPullParserException, IOException {
-        // [2] prolog: ::= XMLDecl? Misc* (doctypedecl Misc*)? and look for [39]
-        // element
-
         char ch;
         if (seenMarkup) {
             ch = buf[pos - 1];
@@ -1370,16 +1103,12 @@ public class MXParser implements XmlPullParser {
         }
 
         if (eventType == START_DOCUMENT) {
-            // bootstrap parsing with getting first character input!
-            // deal with BOM
-            // detect BOM and drop it (Unicode int Order Mark)
             if (ch == '\uFFFE') {
                 throw new XmlPullParserException(
                         "first character in input was UNICODE noncharacter (0xFFFE)" + "- input requires int swapping", this,
                         null);
             }
             if (ch == '\uFEFF') {
-                // skipping UNICODE int Order Mark (so called BOM)
                 ch = more();
             }
         }
@@ -1389,10 +1118,6 @@ public class MXParser implements XmlPullParser {
         final boolean normalizeIgnorableWS = tokenize && !roundtripSupported;
         boolean normalizedCR = false;
         while (true) {
-            // deal with Misc
-            // [27] Misc ::= Comment | PI | S
-            // deal with docdecl --> mark it!
-            // else parseStartTag seen <[^/]
             if (ch == '<') {
                 if (gotS && tokenize) {
                     posEnd = pos - 1;
@@ -1401,14 +1126,11 @@ public class MXParser implements XmlPullParser {
                 }
                 ch = more();
                 if (ch == '?') {
-                    // check if it is 'xml'
-                    // deal with XMLDecl
-                    if (parsePI()) { // make sure to skip XMLDecl
+                    if (parsePI()) {
                         if (tokenize) {
                             return eventType = PROCESSING_INSTRUCTION;
                         }
                     } else {
-                        // skip over - continue tokenizing
                         posStart = pos;
                         gotS = false;
                     }
@@ -1443,9 +1165,6 @@ public class MXParser implements XmlPullParser {
                 if (normalizeIgnorableWS) {
                     if (ch == '\r') {
                         normalizedCR = true;
-                        // posEnd = pos -1;
-                        // joinPC();
-                        // posEnd is already is set
                         if (!usePC) {
                             posEnd = pos - 1;
                             if (posEnd > posStart) {
@@ -1455,7 +1174,6 @@ public class MXParser implements XmlPullParser {
                                 pcStart = pcEnd = 0;
                             }
                         }
-                        // assert usePC == true;
                         if (pcEnd >= pc.length)
                             ensurePC(pcEnd);
                         pc[pcEnd++] = '\n';
@@ -1494,7 +1212,6 @@ public class MXParser implements XmlPullParser {
         final boolean normalizeIgnorableWS = tokenize && !roundtripSupported;
         boolean normalizedCR = false;
         try {
-            // epilog: Misc*
             char ch;
             if (seenMarkup) {
                 ch = buf[pos - 1];
@@ -1505,8 +1222,6 @@ public class MXParser implements XmlPullParser {
             posStart = pos - 1;
             if (!reachedEnd) {
                 while (true) {
-                    // deal with Misc
-                    // [27] Misc ::= Comment | PI | S
                     if (ch == '<') {
                         if (gotS && tokenize) {
                             posEnd = pos - 1;
@@ -1518,8 +1233,6 @@ public class MXParser implements XmlPullParser {
                             break;
                         }
                         if (ch == '?') {
-                            // check if it is 'xml'
-                            // deal with XMLDecl
                             parsePI();
                             if (tokenize)
                                 return eventType = PROCESSING_INSTRUCTION;
@@ -1555,9 +1268,6 @@ public class MXParser implements XmlPullParser {
                         if (normalizeIgnorableWS) {
                             if (ch == '\r') {
                                 normalizedCR = true;
-                                // posEnd = pos -1;
-                                // joinPC();
-                                // posEnd is alreadys set
                                 if (!usePC) {
                                     posEnd = pos - 1;
                                     if (posEnd > posStart) {
@@ -1567,7 +1277,6 @@ public class MXParser implements XmlPullParser {
                                         pcStart = pcEnd = 0;
                                     }
                                 }
-                                // assert usePC == true;
                                 if (pcEnd >= pc.length)
                                     ensurePC(pcEnd);
                                 pc[pcEnd++] = '\n';
@@ -1599,9 +1308,6 @@ public class MXParser implements XmlPullParser {
                 }
             }
 
-            // throw Exception("unexpected content in epilog
-            // catch EOFException return END_DOCUEMENT
-            // try {
         } catch (EOFException ex) {
             reachedEnd = true;
         }
@@ -1613,8 +1319,6 @@ public class MXParser implements XmlPullParser {
     }
 
     public int parseEndTag() throws XmlPullParserException, IOException {
-        // ASSUMPTION ch is past "</"
-        // [42] ETag ::= '</' Name S? '>'
         char ch = more();
         if (!isNameStartChar(ch)) {
             throw new XmlPullParserException("expected name start and not " + printable(ch), this, null);
@@ -1625,19 +1329,10 @@ public class MXParser implements XmlPullParser {
             ch = more();
         } while (isNameChar(ch));
 
-        // now we go one level down -- do checks
-        // --depth; //FIXME
-
-        // check that end tag name is the same as start tag
-        // String name = new String(buf, nameStart - bufAbsoluteStart,
-        // (pos - 1) - (nameStart - bufAbsoluteStart));
-        // int last = pos - 1;
         int off = nameStart - bufAbsoluteStart;
-        // final int len = last - off;
         final int len = (pos - 1) - off;
         final char[] cbuf = elRawName[depth];
         if (elRawNameEnd[depth] != len) {
-            // construct strings for exception
             final String startname = new String(cbuf, 0, elRawNameEnd[depth]);
             final String endname = new String(buf, off, len);
             throw new XmlPullParserException(
@@ -1647,7 +1342,6 @@ public class MXParser implements XmlPullParser {
         }
         for (int i = 0; i < len; i++) {
             if (buf[off++] != cbuf[i]) {
-                // construct strings for exception
                 final String startname = new String(cbuf, 0, len);
                 final String endname = new String(buf, off - i - 1, len);
                 throw new XmlPullParserException(
@@ -1666,27 +1360,20 @@ public class MXParser implements XmlPullParser {
                     "expected > to finish end tag not " + printable(ch) + " from line " + elRawNameLine[depth], this, null);
         }
 
-        // namespaceEnd = elNamespaceCount[ depth ]; //FIXME
-
         posEnd = pos;
         pastEndTag = true;
         return eventType = END_TAG;
     }
 
     public int parseStartTag() throws XmlPullParserException, IOException {
-        // remember starting line number
         startLineNumber = lineNumber;
 
-        // ASSUMPTION ch is past <T
-        // [40] STag ::= '<' Name (S Attribute)* S? '>'
-        // [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
         ++depth; // FIXME
 
         posStart = pos - 2;
 
         emptyElementTag = false;
         attributeCount = 0;
-        // retrieve name
         final int nameStart = pos - 1 + bufAbsoluteStart;
         int colonPos = -1;
         char ch = buf[pos - 1];
@@ -1705,11 +1392,8 @@ public class MXParser implements XmlPullParser {
             }
         }
 
-        // retrieve name
         ensureElementsCapacity();
 
-        // TODO check for efficient interning and then use elRawNameInterned!!!!
-
         int elLen = (pos - 1) - (nameStart - bufAbsoluteStart);
         if (elRawName[depth] == null || elRawName[depth].length < elLen) {
             elRawName[depth] = new char[2 * elLen];
@@ -1718,13 +1402,11 @@ public class MXParser implements XmlPullParser {
         elRawNameEnd[depth] = elLen;
         elRawNameLine[depth] = lineNumber;
 
-        // work on prefixes and namespace URI
         String prefix = null;
         if (processNamespaces) {
             if (colonPos != -1) {
                 prefix = elPrefix[depth] = newString(buf, nameStart - bufAbsoluteStart, colonPos - nameStart);
                 elName[depth] = newString(buf, colonPos + 1 - bufAbsoluteStart,
-                        // (pos -1) - (colonPos + 1));
                         pos - 2 - (colonPos - bufAbsoluteStart));
             } else {
                 elPrefix[depth] = null;
@@ -1757,10 +1439,8 @@ public class MXParser implements XmlPullParser {
             } else {
                 throw new XmlPullParserException("start tag unexpected character " + printable(ch), this, null);
             }
-            // ch = more(); // skip space
         }
 
-        // now when namespaces were declared we can resolve them
         if (processNamespaces) {
             String uri = getNamespace(prefix);
             if (uri == null) {
@@ -1775,12 +1455,6 @@ public class MXParser implements XmlPullParser {
             }
             elUri[depth] = uri;
 
-            // String uri = getNamespace(prefix);
-            // if(uri == null && prefix == null) { // no prefix and no uri =>
-            // use default namespace
-            // uri = "";
-            // }
-            // resolve attribute namespaces
             for (int i = 0; i < attributeCount; i++) {
                 final String attrPrefix = attributePrefix[i];
                 if (attrPrefix != null) {
@@ -1796,11 +1470,6 @@ public class MXParser implements XmlPullParser {
                 }
             }
 
-            // TODO
-            // [ WFC: Unique Att Spec ]
-            // check attribute uniqueness constraint for attributes that has
-            // namespace!!!
-
             for (int i = 1; i < attributeCount; i++) {
                 for (int j = 0; j < i; j++) {
                     if (attributeUri[j] == attributeUri[i]
@@ -1809,7 +1478,6 @@ public class MXParser implements XmlPullParser {
                                             && attributeName[j].equals(attributeName[i])))
 
                     ) {
-                        // prepare data for nice error message?
                         String attr1 = attributeName[j];
                         if (attributeUri[j] != null)
                             attr1 = attributeUri[j] + ":" + attr1;
@@ -1823,8 +1491,6 @@ public class MXParser implements XmlPullParser {
 
         } else { // ! processNamespaces
 
-            // [ WFC: Unique Att Spec ]
-            // check raw attribute uniqueness constraint!!!
             for (int i = 1; i < attributeCount; i++) {
                 for (int j = 0; j < i; j++) {
                     if ((allStringsInterned && attributeName[j].equals(attributeName[i])
@@ -1832,7 +1498,6 @@ public class MXParser implements XmlPullParser {
                                     && attributeName[j].equals(attributeName[i])))
 
                     ) {
-                        // prepare data for nice error message?
                         final String attr1 = attributeName[j];
                         final String attr2 = attributeName[i];
                         throw new XmlPullParserException("duplicated attributes " + attr1 + " and " + attr2, this, null);
@@ -1847,10 +1512,6 @@ public class MXParser implements XmlPullParser {
     }
 
     protected char parseAttribute() throws XmlPullParserException, IOException {
-        // parse attribute
-        // [41] Attribute ::= Name Eq AttValue
-        // [WFC: No External Entity References]
-        // [WFC: No < in Attribute Values]
         final int prevPosStart = posStart + bufAbsoluteStart;
         final int nameStart = pos - 1 + bufAbsoluteStart;
         int colonPos = -1;
@@ -1883,7 +1544,6 @@ public class MXParser implements XmlPullParser {
                         if (ch != ':')
                             throw new XmlPullParserException(
                                     "after xmlns in attribute name must be colon" + " when namespaces are enabled", this, null);
-                        // colonPos = pos - 1 + bufAbsoluteStart;
                     }
                 }
                 if (ch == ':') {
@@ -1898,35 +1558,26 @@ public class MXParser implements XmlPullParser {
 
         ensureAttributesCapacity(attributeCount);
 
-        // --- start processing attributes
         String name = null;
         String prefix = null;
-        // work on prefixes and namespace URI
         if (processNamespaces) {
             if (xmlnsPos < 4)
                 startsWithXmlns = false;
             if (startsWithXmlns) {
                 if (colonPos != -1) {
-                    // prefix = attributePrefix[ attributeCount ] = null;
                     final int nameLen = pos - 2 - (colonPos - bufAbsoluteStart);
                     if (nameLen == 0) {
                         throw new XmlPullParserException(
                                 "namespace prefix is required after xmlns: " + " when namespaces are enabled", this, null);
                     }
-                    name = // attributeName[ attributeCount ] =
-                            newString(buf, colonPos - bufAbsoluteStart + 1, nameLen);
-                    // pos - 1 - (colonPos + 1 - bufAbsoluteStart)
+                    name = newString(buf, colonPos - bufAbsoluteStart + 1, nameLen);
                 }
             } else {
                 if (colonPos != -1) {
                     int prefixLen = colonPos - nameStart;
                     prefix = attributePrefix[attributeCount] = newString(buf, nameStart - bufAbsoluteStart, prefixLen);
-                    // colonPos - (nameStart - bufAbsoluteStart));
                     int nameLen = pos - 2 - (colonPos - bufAbsoluteStart);
                     name = attributeName[attributeCount] = newString(buf, colonPos - bufAbsoluteStart + 1, nameLen);
-                    // pos - 1 - (colonPos + 1 - bufAbsoluteStart));
-
-                    // name.substring(0, colonPos-nameStart);
                 } else {
                     prefix = attributePrefix[attributeCount] = null;
                     name = attributeName[attributeCount]
@@ -1938,35 +1589,27 @@ public class MXParser implements XmlPullParser {
             }
 
         } else {
-            // retrieve name
             name = attributeName[attributeCount]
                     = newString(buf, nameStart - bufAbsoluteStart, pos - 1 - (nameStart - bufAbsoluteStart));
-            //// assert name != null;
             if (!allStringsInterned) {
                 attributeNameHash[attributeCount] = name.hashCode();
             }
         }
 
-        // [25] Eq ::= S? '=' S?
         while (isS(ch)) {
             ch = more();
-        } // skip additional spaces
+        }
         if (ch != '=')
             throw new XmlPullParserException("expected = after attribute name", this, null);
         ch = more();
         while (isS(ch)) {
             ch = more();
-        } // skip additional spaces
+        }
 
-        // [10] AttValue ::= '"' ([^<&"] | Reference)* '"'
-        // | "'" ([^<&'] | Reference)* "'"
         final char delimit = ch;
         if (delimit != '"' && delimit != '\'')
             throw new XmlPullParserException(
                     "attribute value must start with quotation or apostrophe not " + printable(delimit), this, null);
-        // parse until delimit or < and resolve Reference
-        // [67] Reference ::= EntityRef | CharRef
-        // int valueStart = pos + bufAbsoluteStart;
 
         boolean normalizedCR = false;
         usePC = false;
@@ -1982,22 +1625,18 @@ public class MXParser implements XmlPullParser {
                 throw new XmlPullParserException("markup not allowed inside attribute value - illegal < ", this, null);
             }
             if (ch == '&') {
-                // extractEntityRef
                 posEnd = pos - 1;
                 if (!usePC) {
                     final boolean hadCharData = posEnd > posStart;
                     if (hadCharData) {
-                        // posEnd is already set correctly!!!
                         joinPC();
                     } else {
                         usePC = true;
                         pcStart = pcEnd = 0;
                     }
                 }
-                // assert usePC == true;
 
                 final char[] resolvedEntity = parseEntityRef();
-                // check if replacement text can be resolved !!!
                 if (resolvedEntity == null) {
                     if (entityRefName == null) {
                         entityRefName = newString(buf, posStart, posEnd - posStart);
@@ -2005,18 +1644,12 @@ public class MXParser implements XmlPullParser {
                     throw new XmlPullParserException(
                             "could not resolve entity named '" + printable(entityRefName) + "'", this, null);
                 }
-                // write into PC replacement text - do merge for replacement
-                // text!!!!
                 for (int i = 0; i < resolvedEntity.length; i++) {
                     if (pcEnd >= pc.length)
                         ensurePC(pcEnd);
                     pc[pcEnd++] = resolvedEntity[i];
                 }
             } else if (ch == '\t' || ch == '\n' || ch == '\r') {
-                // do attribute value normalization
-                // as described in http://www.w3.org/TR/REC-xml#AVNormalize
-                // TODO add test for it form spec ...
-                // handle EOL normalization ...
                 if (!usePC) {
                     posEnd = pos - 1;
                     if (posEnd > posStart) {
@@ -2026,7 +1659,6 @@ public class MXParser implements XmlPullParser {
                         pcEnd = pcStart = 0;
                     }
                 }
-                // assert usePC == true;
                 if (pcEnd >= pc.length)
                     ensurePC(pcEnd);
                 if (ch != '\n' || !normalizedCR) {
@@ -2057,22 +1689,18 @@ public class MXParser implements XmlPullParser {
                     throw new XmlPullParserException(
                             "non-default namespace can not be declared to be empty string", this, null);
                 }
-                // declare new namespace
                 namespacePrefix[namespaceEnd] = name;
                 if (!allStringsInterned) {
                     prefixHash = namespacePrefixHash[namespaceEnd] = name.hashCode();
                 }
             } else {
-                // declare new default namespace ...
-                namespacePrefix[namespaceEnd] = null; // ""; //null; //TODO
-                                                     // check FIXME Alek
+                namespacePrefix[namespaceEnd] = null;
                 if (!allStringsInterned) {
                     prefixHash = namespacePrefixHash[namespaceEnd] = -1;
                 }
             }
             namespaceUri[namespaceEnd] = ns;
 
-            // detect duplicate namespace declarations!!!
             final int startNs = elNamespaceCount[depth - 1];
             for (int i = namespaceEnd - 1; i >= startNs; --i) {
                 if (((allStringsInterned || name == null) && namespacePrefix[i] == name)
@@ -2100,20 +1728,13 @@ public class MXParser implements XmlPullParser {
     protected char[] charRefOneCharBuf = new char[1];
 
     protected char[] parseEntityRef() throws XmlPullParserException, IOException {
-        // entity reference
-        // http://www.w3.org/TR/2000/REC-xml-20001006#NT-Reference
-        // [67] Reference ::= EntityRef | CharRef
-
-        // ASSUMPTION just after &
         entityRefName = null;
         posStart = pos;
         char ch = more();
         if (ch == '#') {
-            // parse character reference
             char charRef = 0;
             ch = more();
             if (ch == 'x') {
-                // encoded in hex
                 while (true) {
                     ch = more();
                     if (ch >= '0' && ch <= '9') {
@@ -2130,7 +1751,6 @@ public class MXParser implements XmlPullParser {
                     }
                 }
             } else {
-                // encoded in decimal
                 while (true) {
                     if (ch >= '0' && ch <= '9') {
                         charRef = (char) (charRef * 10 + (ch - '0'));
@@ -2150,8 +1770,6 @@ public class MXParser implements XmlPullParser {
             }
             return charRefOneCharBuf;
         } else {
-            // [68] EntityRef ::= '&' Name ';'
-            // scan name until ;
             if (!isNameStartChar(ch)) {
                 throw new XmlPullParserException(
                         "entity reference names can not start with character '" + printable(ch) + "'", this, null);
@@ -2167,7 +1785,6 @@ public class MXParser implements XmlPullParser {
                 }
             }
             posEnd = pos - 1;
-            // determine what name maps to
             final int len = posEnd - posStart;
             if (len == 2 && buf[posStart] == 'l' && buf[posStart + 1] == 't') {
                 if (tokenize) {
@@ -2175,10 +1792,6 @@ public class MXParser implements XmlPullParser {
                 }
                 charRefOneCharBuf[0] = '<';
                 return charRefOneCharBuf;
-                // if(paramPC || isParserTokenizing) {
-                // if(pcEnd >= pc.length) ensurePC();
-                // pc[pcEnd++] = '<';
-                // }
             } else if (len == 3 && buf[posStart] == 'a' && buf[posStart + 1] == 'm' && buf[posStart + 2] == 'p') {
                 if (tokenize) {
                     text = "&";
@@ -2235,7 +1848,6 @@ public class MXParser implements XmlPullParser {
         } else {
             entityRefName = newString(buf, posStart, posEnd - posStart);
             for (int i = entityEnd - 1; i >= 0; --i) {
-                // take advantage that interning for newStirng is enforced
                 if (entityRefName == entityName[i]) {
                     if (tokenize)
                         text = entityReplacement[i];
@@ -2247,9 +1859,6 @@ public class MXParser implements XmlPullParser {
     }
 
     protected void parseComment() throws XmlPullParserException, IOException {
-        // implements XML 1.0 Section 2.5 Comments
-
-        // ASSUMPTION: seen <!-
         char ch = more();
         if (ch != '-')
             throw new XmlPullParserException("expected <!-- for comment start", this, null);
@@ -2265,7 +1874,6 @@ public class MXParser implements XmlPullParser {
             boolean seenDash = false;
             boolean seenDashDash = false;
             while (true) {
-                // scan until it hits -->
                 ch = more();
                 if (seenDashDash && ch != '>') {
                     throw new XmlPullParserException(
@@ -2291,9 +1899,6 @@ public class MXParser implements XmlPullParser {
                 if (normalizeIgnorableWS) {
                     if (ch == '\r') {
                         normalizedCR = true;
-                        // posEnd = pos -1;
-                        // joinPC();
-                        // posEnd is already set
                         if (!usePC) {
                             posEnd = pos - 1;
                             if (posEnd > posStart) {
@@ -2303,7 +1908,6 @@ public class MXParser implements XmlPullParser {
                                 pcStart = pcEnd = 0;
                             }
                         }
-                        // assert usePC == true;
                         if (pcEnd >= pc.length)
                             ensurePC(pcEnd);
                         pc[pcEnd++] = '\n';
@@ -2326,7 +1930,6 @@ public class MXParser implements XmlPullParser {
             }
 
         } catch (EOFException ex) {
-            // detect EOF and create meaningful error ...
             throw new XmlPullParserException(
                     "comment started on line " + curLine + " and column " + curColumn + " was not closed", this, ex);
         }
@@ -2339,11 +1942,6 @@ public class MXParser implements XmlPullParser {
     }
 
     protected boolean parsePI() throws XmlPullParserException, IOException {
-        // implements XML 1.0 Section 2.6 Processing Instructions
-
-        // [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
-        // [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))
-        // ASSUMPTION: seen <?
         if (tokenize)
             posStart = pos;
         final int curLine = lineNumber;
@@ -2361,9 +1959,6 @@ public class MXParser implements XmlPullParser {
                         "processing instruction PITarget must be exactly after <? and not white space character", this, null);
             }
             while (true) {
-                // scan until it hits ?>
-                // ch = more();
-
                 if (ch == '?') {
                     seenQ = true;
                 } else if (ch == '>') {
@@ -2375,15 +1970,11 @@ public class MXParser implements XmlPullParser {
                     if (piTargetEnd == -1 && isS(ch)) {
                         piTargetEnd = pos - 1 + bufAbsoluteStart;
 
-                        // [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm')
-                        // ('L' | 'l'))
                         if ((piTargetEnd - piTargetStart) == 3) {
                             if ((buf[piTargetStart] == 'x' || buf[piTargetStart] == 'X')
                                     && (buf[piTargetStart + 1] == 'm' || buf[piTargetStart + 1] == 'M')
                                     && (buf[piTargetStart + 2] == 'l' || buf[piTargetStart + 2] == 'L')) {
-                                if (piTargetStart > 3) { // <?xml is allowed as
-                                                        // first characters in
-                                                        // input ...
+                                if (piTargetStart > 3) {
                                     throw new XmlPullParserException(
                                             "processing instruction can not have PITarget with reserveld xml name", this, null);
                                 } else {
@@ -2407,9 +1998,6 @@ public class MXParser implements XmlPullParser {
                 if (normalizeIgnorableWS) {
                     if (ch == '\r') {
                         normalizedCR = true;
-                        // posEnd = pos -1;
-                        // joinPC();
-                        // posEnd is already set
                         if (!usePC) {
                             posEnd = pos - 1;
                             if (posEnd > posStart) {
@@ -2419,7 +2007,6 @@ public class MXParser implements XmlPullParser {
                                 pcStart = pcEnd = 0;
                             }
                         }
-                        // assert usePC == true;
                         if (pcEnd >= pc.length)
                             ensurePC(pcEnd);
                         pc[pcEnd++] = '\n';
@@ -2442,15 +2029,12 @@ public class MXParser implements XmlPullParser {
                 ch = more();
             }
         } catch (EOFException ex) {
-            // detect EOF and create meaningful error ...
             throw new XmlPullParserException(
                     "processing instruction started on line " + curLine + " and column " + curColumn + " was not closed", this,
                     ex);
         }
         if (piTargetEnd == -1) {
             piTargetEnd = pos - 2 + bufAbsoluteStart;
-            // throw new XmlPullParserException(
-            // "processing instruction must have PITarget name", this, null);
         }
         piTargetStart -= bufAbsoluteStart;
         piTargetEnd -= bufAbsoluteStart;
@@ -2463,13 +2047,6 @@ public class MXParser implements XmlPullParser {
         return true;
     }
 
-    // protected final static char[] VERSION = {'v','e','r','s','i','o','n'};
-    // protected final static char[] NCODING = {'n','c','o','d','i','n','g'};
-    // protected final static char[] TANDALONE =
-    // {'t','a','n','d','a','l','o','n','e'};
-    // protected final static char[] YES = {'y','e','s'};
-    // protected final static char[] NO = {'n','o'};
-
     protected static final char[] VERSION = "version".toCharArray();
     protected static final char[] NCODING = "ncoding".toCharArray();
     protected static final char[] TANDALONE = "tandalone".toCharArray();
@@ -2477,20 +2054,11 @@ public class MXParser implements XmlPullParser {
     protected static final char[] NO = "no".toCharArray();
 
     protected void parseXmlDecl(char ch) throws XmlPullParserException, IOException {
-        // [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
-
-        // first make sure that relative positions will stay OK
         preventBufferCompaction = true;
-        bufStart = 0; // necessary to keep pos unchanged during expansion!
-
-        // --- parse VersionInfo
+        bufStart = 0;
 
-        // [24] VersionInfo ::= S 'version' Eq ("'" VersionNum "'" | '"'
-        // VersionNum '"')
-        // parse is positioned just on first S past <?xml
         ch = skipS(ch);
         ch = requireInput(ch, VERSION);
-        // [25] Eq ::= S? '=' S?
         ch = skipS(ch);
         if (ch != '=') {
             throw new XmlPullParserException("expected equals sign (=) after version and not " + printable(ch), this, null);
@@ -2502,11 +2070,8 @@ public class MXParser implements XmlPullParser {
                     "expected apostrophe (') or quotation mark (\") after version and not " + printable(ch), this, null);
         }
         final char quotChar = ch;
-        // int versionStart = pos + bufAbsoluteStart; // required if
-        // preventBufferCompaction==false
         final int versionStart = pos;
         ch = more();
-        // [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+
         while (ch != quotChar) {
             if ((ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z') && (ch < '0' || ch > '9') && ch != '_' && ch != '.'
                     && ch != ':' && ch != '-') {
@@ -2517,13 +2082,10 @@ public class MXParser implements XmlPullParser {
         }
         final int versionEnd = pos - 1;
         parseXmlDeclWithVersion(versionStart, versionEnd);
-        preventBufferCompaction = false; // alow again buffer commpaction - pos
-                                        // MAY chnage
+        preventBufferCompaction = false;
     }
-    // protected String xmlDeclVersion;
 
     protected void parseXmlDeclWithVersion(int versionStart, int versionEnd) throws XmlPullParserException, IOException {
-        // check version is "1.0"
         if ((versionEnd - versionStart != 3) || buf[versionStart] != '1' || buf[versionStart + 1] != '.'
                 || buf[versionStart + 2] != '0') {
             throw new XmlPullParserException(
@@ -2534,8 +2096,6 @@ public class MXParser implements XmlPullParser {
         }
         xmlDeclVersion = newString(buf, versionStart, versionEnd - versionStart);
 
-        // [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' | "'" EncName
-        // "'" )
         char ch = more();
         ch = skipS(ch);
         if (ch == 'e') {
@@ -2555,7 +2115,6 @@ public class MXParser implements XmlPullParser {
             final char quotChar = ch;
             final int encodingStart = pos;
             ch = more();
-            // [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
             if ((ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z')) {
                 throw new XmlPullParserException(
                         "<?xml encoding name expected to start with [A-Za-z]" + " not " + printable(ch), this, null);
@@ -2572,14 +2131,11 @@ public class MXParser implements XmlPullParser {
             }
             final int encodingEnd = pos - 1;
 
-            // TODO reconcile with setInput encodingName
             inputEncoding = newString(buf, encodingStart, encodingEnd - encodingStart);
             ch = more();
         }
 
         ch = skipS(ch);
-        // [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"'
-        // ('yes' | 'no') '"'))
         if (ch == 's') {
             ch = more();
             ch = requireInput(ch, TANDALONE);
@@ -2599,11 +2155,9 @@ public class MXParser implements XmlPullParser {
             ch = more();
             if (ch == 'y') {
                 ch = requireInput(ch, YES);
-                // Boolean standalone = new Boolean(true);
                 xmlDeclStandalone = Boolean.TRUE;
             } else if (ch == 'n') {
                 ch = requireInput(ch, NO);
-                // Boolean standalone = new Boolean(false);
                 xmlDeclStandalone = Boolean.FALSE;
             } else {
                 throw new XmlPullParserException(
@@ -2624,29 +2178,9 @@ public class MXParser implements XmlPullParser {
         if (ch != '>') {
             throw new XmlPullParserException("expected ?> as last part of <?xml not " + printable(ch), this, null);
         }
-
-        // NOTE: this code is broken as for some types of input streams (URLConnection ...)
-        // it is not possible to do more than once new InputStreamReader(inputStream)
-        // as it somehow detects it and closes undelrying inout stram (b.....d!)
-        // In future one will need better low level byte-by-byte reading of prolog and then doing InputStream ...
-        // for more details see http://www.extreme.indiana.edu/bugzilla/show_bug.cgi?id=135
-        // //reset input stream
-        //        if ((this.inputEncoding != oldEncoding) && (this.inputStream != null)) {
-        //            if ((this.inputEncoding != null) && (!this.inputEncoding.equalsIgnoreCase(oldEncoding))) {
-        //                //              //there is need to reparse input to set location OK
-        //                //              reset();
-        //                this.reader = new InputStreamReader(this.inputStream, this.inputEncoding);
-        //                //              //skip <?xml
-        //                //              for (int i = 0; i < 5; i++){
-        //                //                  ch=more();
-        //                //              }
-        //                //              parseXmlDecl(ch);
-        //            }
-        //        }
     }
 
     protected void parseDocdecl() throws XmlPullParserException, IOException {
-        // ASSUMPTION: seen <!D
         char ch = more();
         if (ch != 'O')
             throw new XmlPullParserException("expected <!DOCTYPE", this, null);
@@ -2666,10 +2200,7 @@ public class MXParser implements XmlPullParser {
         if (ch != 'E')
             throw new XmlPullParserException("expected <!DOCTYPE", this, null);
         posStart = pos;
-        // do simple and crude scanning for end of doctype
 
-        // [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('['
-        // (markupdecl | DeclSep)* ']' S?)? '>'
         int bracketLevel = 0;
         final boolean normalizeIgnorableWS = tokenize && !roundtripSupported;
         boolean normalizedCR = false;
@@ -2684,9 +2215,6 @@ public class MXParser implements XmlPullParser {
             if (normalizeIgnorableWS) {
                 if (ch == '\r') {
                     normalizedCR = true;
-                    // posEnd = pos -1;
-                    // joinPC();
-                    // posEnd is alreadys set
                     if (!usePC) {
                         posEnd = pos - 1;
                         if (posEnd > posStart) {
@@ -2696,7 +2224,6 @@ public class MXParser implements XmlPullParser {
                             pcStart = pcEnd = 0;
                         }
                     }
-                    // assert usePC == true;
                     if (pcEnd >= pc.length)
                         ensurePC(pcEnd);
                     pc[pcEnd++] = '\n';
@@ -2722,14 +2249,6 @@ public class MXParser implements XmlPullParser {
     }
 
     protected void parseCDSect(boolean hadCharData) throws XmlPullParserException, IOException {
-        // implements XML 1.0 Section 2.7 CDATA Sections
-
-        // [18] CDSect ::= CDStart CData CDEnd
-        // [19] CDStart ::= '<![CDATA['
-        // [20] CData ::= (Char* - (Char* ']]>' Char*))
-        // [21] CDEnd ::= ']]>'
-
-        // ASSUMPTION: seen <![
         char ch = more();
         if (ch != 'C')
             throw new XmlPullParserException("expected <[CDATA[ for comment start", this, null);
@@ -2749,7 +2268,6 @@ public class MXParser implements XmlPullParser {
         if (ch != '[')
             throw new XmlPullParserException("expected <![CDATA[ for comment start", this, null);
 
-        // if(tokenize) {
         final int cdStart = pos + bufAbsoluteStart;
         final int curLine = lineNumber;
         final int curColumn = columnNumber;
@@ -2758,7 +2276,6 @@ public class MXParser implements XmlPullParser {
             if (normalizeInput) {
                 if (hadCharData) {
                     if (!usePC) {
-                        // posEnd is correct already!!!
                         if (posEnd > posStart) {
                             joinPC();
                         } else {
@@ -2772,14 +2289,12 @@ public class MXParser implements XmlPullParser {
             boolean seenBracketBracket = false;
             boolean normalizedCR = false;
             while (true) {
-                // scan until it hits "]]>"
                 ch = more();
                 if (ch == ']') {
                     if (!seenBracket) {
                         seenBracket = true;
                     } else {
                         seenBracketBracket = true;
-                        // seenBracket = false;
                     }
                 } else if (ch == '>') {
                     if (seenBracket && seenBracketBracket) {
@@ -2794,11 +2309,10 @@ public class MXParser implements XmlPullParser {
                     }
                 }
                 if (normalizeInput) {
-                    // deal with normalization issues ...
                     if (ch == '\r') {
                         normalizedCR = true;
                         posStart = cdStart - bufAbsoluteStart;
-                        posEnd = pos - 1; // posEnd is alreadys set
+                        posEnd = pos - 1;
                         if (!usePC) {
                             if (posEnd > posStart) {
                                 joinPC();
@@ -2807,7 +2321,6 @@ public class MXParser implements XmlPullParser {
                                 pcStart = pcEnd = 0;
                             }
                         }
-                        // assert usePC == true;
                         if (pcEnd >= pc.length)
                             ensurePC(pcEnd);
                         pc[pcEnd++] = '\n';
@@ -2829,7 +2342,6 @@ public class MXParser implements XmlPullParser {
                 }
             }
         } catch (EOFException ex) {
-            // detect EOF and create meaningful error ...
             throw new XmlPullParserException(
                     "CDATA section started on line " + curLine + " and column " + curColumn + " was not closed", this, ex);
         }
@@ -2846,45 +2358,32 @@ public class MXParser implements XmlPullParser {
         if (reader == null)
             throw new XmlPullParserException("reader must be set before parsing is started");
 
-        // see if we are in compaction area
         if (bufEnd > bufSoftLimit) {
 
-            // expand buffer it makes sense!!!!
             boolean compact;
             if (preventBufferCompaction) {
                 compact = false;
             } else {
                 compact = bufStart > bufSoftLimit;
                 if (!compact) {
-                    // freeSpace
-                    // if at least half of buffer can be reclaimed --> worthwhile effort!!!
-                    // else less than half buffer available for compacting --> expand instead!!!
                     if (bufStart >= buf.length / 2) {
                         compact = true;
                     }
                 }
             }
 
-            // if buffer almost full then compact it
             if (compact) {
-                // TODO: look on trashing
-                // //assert bufStart > 0
                 System.arraycopy(buf, bufStart, buf, 0, bufEnd - bufStart);
-                if (TRACE_SIZING)
-                    System.out.println("TRACE_SIZING fillBuf() compacting " + bufStart + " bufEnd=" + bufEnd + " pos=" + pos
-                                       + " posStart=" + posStart + " posEnd=" + posEnd
-                                       + " buf first 100 chars:"
-                                       + new String(buf, bufStart, Math.min(bufEnd - bufStart, 100)));
+                LOG.trace("fillBuf() compacting {} bufEnd={} pos={} posStart={} posEnd={} buf first 100 chars:{}",
+                        bufStart, bufEnd, pos, posStart, posEnd, new String(buf, bufStart, Math.min(bufEnd - bufStart, 100)));
 
             } else {
                 final int newSize = 2 * buf.length;
                 final char[] newBuf = new char[newSize];
-                if (TRACE_SIZING)
-                    System.out.println("TRACE_SIZING fillBuf() " + buf.length + " => " + newSize);
+                LOG.trace("fillBuf() {} => {}", buf.length, newSize);
                 System.arraycopy(buf, bufStart, newBuf, 0, bufEnd - bufStart);
                 buf = newBuf;
                 if (bufLoadFactor > 0) {
-                    // bufSoftLimit = ( bufLoadFactor * buf.length ) /100;
                     bufSoftLimit = (int) ((((long) bufLoadFactor) * buf.length) / 100);
                 }
 
@@ -2895,19 +2394,15 @@ public class MXParser implements XmlPullParser {
             posEnd -= bufStart;
             bufAbsoluteStart += bufStart;
             bufStart = 0;
-            if (TRACE_SIZING)
-                System.out.println("TRACE_SIZING fillBuf() after bufEnd=" + bufEnd + " pos=" + pos + " posStart=" + posStart
-                                   + " posEnd=" + posEnd + " buf first 100 chars:"
-                                   + new String(buf, 0, bufEnd < 100 ? bufEnd : 100));
+            LOG.trace("fillBuf() after bufEnd={} pos={} posStart={} posEnd={} buf first 100 chars:{}",
+                    bufEnd, pos, posStart, posEnd, new String(buf, 0, bufEnd < 100 ? bufEnd : 100));
         }
-        // at least one character must be read or error
         final int len = buf.length - bufEnd > READ_CHUNK_SIZE ? READ_CHUNK_SIZE : buf.length - bufEnd;
         final int ret = reader.read(buf, bufEnd, len);
         if (ret > 0) {
             bufEnd += ret;
-            if (TRACE_SIZING)
-                System.out.println("TRACE_SIZING fillBuf() after filling in buffer" + " buf first 100 chars:"
-                                   + new String(buf, 0, bufEnd < 100 ? bufEnd : 100));
+            LOG.trace("fillBuf() after filling in buffer buf first 100 chars:{}",
+                    new String(buf, 0, bufEnd < 100 ? bufEnd : 100));
 
             return;
         }
@@ -2915,19 +2410,15 @@ public class MXParser implements XmlPullParser {
             if (bufAbsoluteStart == 0 && pos == 0) {
                 throw new EOFException("input contained no data");
             } else {
-                if (seenRoot && depth == 0) { // inside parsing epilog!!!
+                if (seenRoot && depth == 0) {
                     reachedEnd = true;
                     return;
                 } else {
                     StringBuilder expectedTagStack = new StringBuilder();
                     if (depth > 0) {
-                        // final char[] cbuf = elRawName[depth];
-                        // final String startname = new String(cbuf, 0,
-                        // elRawNameEnd[depth]);
                         expectedTagStack.append(" - expected end tag");
                         if (depth > 1) {
-                            expectedTagStack.append("s"); // more than one end
-                                                         // tag
+                            expectedTagStack.append("s");
                         }
                         expectedTagStack.append(" ");
                         for (int i = depth; i > 0; i--) {
@@ -2937,8 +2428,7 @@ public class MXParser implements XmlPullParser {
                         expectedTagStack.append(" to close");
                         for (int i = depth; i > 0; i--) {
                             if (i != depth) {
-                                expectedTagStack.append(" and"); // more than
-                                                                // one end tag
+                                expectedTagStack.append(" and");
                             }
                             String tagName = new String(elRawName[i], 0, elRawNameEnd[i]);
                             expectedTagStack.append(" start tag <").append(tagName).append('>');
@@ -2957,52 +2447,32 @@ public class MXParser implements XmlPullParser {
     protected char more() throws IOException, XmlPullParserException {
         if (pos >= bufEnd) {
             fillBuf();
-            // this return value should be ignonored as it is used in epilog
-            // parsing ...
             if (reachedEnd)
                 return (char) -1;
         }
         final char ch = buf[pos++];
-        // line/columnNumber
         if (ch == '\n') {
             ++lineNumber;
             columnNumber = 1;
         } else {
             ++columnNumber;
         }
-        // System.out.print(ch);
         return ch;
     }
 
-    // /**
-    // * This function returns position of parser in XML input stream
-    // * (how many <b>characters</b> were processed.
-    // * <p><b>NOTE:</b> this logical position and not byte offset as encodings
-    // * such as UTF8 may use more than one byte to encode one character.
-    // */
-    // public int getCurrentInputPosition() {
-    // return pos + bufAbsoluteStart;
-    // }
-
     protected void ensurePC(int end) {
-        // assert end >= pc.length;
         final int newSize = end > READ_CHUNK_SIZE ? 2 * end : 2 * READ_CHUNK_SIZE;
         final char[] newPC = new char[newSize];
-        if (TRACE_SIZING)
-            System.out.println("TRACE_SIZING ensurePC() " + pc.length + " ==> " + newSize + " end=" + end);
+        LOG.trace("ensurePC() {} ==> {} end={}", pc.length, newSize, end);
         System.arraycopy(pc, 0, newPC, 0, pcEnd);
         pc = newPC;
-        // assert end < pc.length;
     }
 
     protected void joinPC() {
-        // assert usePC == false;
-        // assert posEnd > posStart;
         final int len = posEnd - posStart;
         final int newEnd = pcEnd + len + 1;
         if (newEnd >= pc.length)
             ensurePC(newEnd); // add 1 for extra space for one char
-        // assert newEnd < pc.length;
         System.arraycopy(buf, posStart, pc, pcEnd, len);
         pcEnd += len;
         usePC = true;
@@ -3036,25 +2506,16 @@ public class MXParser implements XmlPullParser {
         return ch;
     }
 
-    // nameStart / name lookup tables based on XML 1.1
-    // http://www.w3.org/TR/2001/WD-xml11-20011213/
     protected static final int LOOKUP_MAX = 0x400;
     protected static final char LOOKUP_MAX_CHAR = (char) LOOKUP_MAX;
-    // protected static int lookupNameStartChar[] = new int[ LOOKUP_MAX_CHAR /
-    // 32 ];
-    // protected static int lookupNameChar[] = new int[ LOOKUP_MAX_CHAR / 32 ];
     protected static boolean[] lookupNameStartChar = new boolean[LOOKUP_MAX];
     protected static boolean[] lookupNameChar = new boolean[LOOKUP_MAX];
 
-    private static void setName(char ch)
-    // { lookupNameChar[ (int)ch / 32 ] |= (1 << (ch % 32)); }
-    {
+    private static void setName(char ch) {
         lookupNameChar[ch] = true;
     }
 
-    private static void setNameStart(char ch)
-    // { lookupNameStartChar[ (int)ch / 32 ] |= (1 << (ch % 32)); setName(ch); }
-    {
+    private static void setNameStart(char ch) {
         lookupNameStartChar[ch] = true;
         setName(ch);
     }
@@ -3082,76 +2543,22 @@ public class MXParser implements XmlPullParser {
             setName(ch);
     }
 
-    // private final static boolean isNameStartChar(char ch) {
     protected boolean isNameStartChar(char ch) {
         return (ch < LOOKUP_MAX_CHAR && lookupNameStartChar[ch]) || (ch >= LOOKUP_MAX_CHAR && ch <= '\u2027')
                 || (ch >= '\u202A' && ch <= '\u218F')
                 || (ch >= '\u2800' && ch <= '\uFFEF');
+    }
 
-        // if(ch < LOOKUP_MAX_CHAR) return lookupNameStartChar[ ch ];
-        // else return ch <= '\u2027'
-        // || (ch >= '\u202A' && ch <= '\u218F')
-        // || (ch >= '\u2800' && ch <= '\uFFEF')
-        // ;
-        // return false;
-        // return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch ==
-        // ':'
-        // || (ch >= '0' && ch <= '9');
-        // if(ch < LOOKUP_MAX_CHAR) return (lookupNameStartChar[ (int)ch / 32 ]
-        // & (1 << (ch % 32))) != 0;
-        // if(ch <= '\u2027') return true;
-        // //[#x202A-#x218F]
-        // if(ch < '\u202A') return false;
-        // if(ch <= '\u218F') return true;
-        // // added pairts [#x2800-#xD7FF] | [#xE000-#xFDCF] | [#xFDE0-#xFFEF] |
-        // [#x10000-#x10FFFF]
-        // if(ch < '\u2800') return false;
-        // if(ch <= '\uFFEF') return true;
-        // return false;
-
-        // else return (supportXml11 && ( (ch < '\u2027') || (ch > '\u2029' &&
-        // ch < '\u2200') ...
-    }
-
-    // private final static boolean isNameChar(char ch) {
     protected boolean isNameChar(char ch) {
-        // return isNameStartChar(ch);
-
-        // if(ch < LOOKUP_MAX_CHAR) return (lookupNameChar[ (int)ch / 32 ] & (1
-        // << (ch % 32))) != 0;
-
         return (ch < LOOKUP_MAX_CHAR && lookupNameChar[ch]) || (ch >= LOOKUP_MAX_CHAR && ch <= '\u2027')
                 || (ch >= '\u202A' && ch <= '\u218F')
                 || (ch >= '\u2800' && ch <= '\uFFEF');
-        // return false;
-        // return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch ==
-        // ':'
-        // || (ch >= '0' && ch <= '9');
-        // if(ch < LOOKUP_MAX_CHAR) return (lookupNameStartChar[ (int)ch / 32 ]
-        // & (1 << (ch % 32))) != 0;
-
-        // else return
-        // else if(ch <= '\u2027') return true;
-        // //[#x202A-#x218F]
-        // else if(ch < '\u202A') return false;
-        // else if(ch <= '\u218F') return true;
-        // // added pairts [#x2800-#xD7FF] | [#xE000-#xFDCF] | [#xFDE0-#xFFEF] |
-        // [#x10000-#x10FFFF]
-        // else if(ch < '\u2800') return false;
-        // else if(ch <= '\uFFEF') return true;
-        // else return false;
     }
 
     protected boolean isS(char ch) {
         return (ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t');
-        // || (supportXml11 && (ch == '\u0085' || ch == '\u2028');
     }
 
-    // protected boolean isChar(char ch) { return (ch < '\uD800' || ch >
-    // '\uDFFF')
-    // ch != '\u0000' ch < '\uFFFE'
-
-    // protected char printable(char ch) { return ch; }
     protected String printable(char ch) {
         if (ch == '\n') {
             return "\\n";
diff --git a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/ParserTest.java b/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/ParserTest.java
index cc058311aee3..3e1d10fd83d1 100644
--- a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/ParserTest.java
+++ b/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/ParserTest.java
@@ -23,12 +23,16 @@ import org.apache.camel.xml.io.MXParser;
 import org.apache.camel.xml.io.XmlPullParserException;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @Disabled("Run manually to check how the MX parser works")
 public class ParserTest {
 
+    private static final Logger LOG = LoggerFactory.getLogger(ParserTest.class);
+
     @Test
     public void justParse() throws XmlPullParserException, IOException {
         final MXParser xpp = getMxParser();
@@ -49,26 +53,25 @@ public class ParserTest {
             xpp.getTextCharacters(new int[2]); // check handling for non START/END_TAG
             switch (eventType) {
                 case MXParser.START_DOCUMENT -> {
-                    System.out.println("START_DOCUMENT");
+                    LOG.debug("START_DOCUMENT");
                 }
                 case MXParser.START_TAG -> {
                     xpp.getText(); // never uses org.apache.camel.xml.io.MXParser#pc
                     xpp.getTextCharacters(new int[2]);
                     xpp.isEmptyElementTag();
-                    System.out.println("START_TAG" + (xpp.isEmptyElementTag() ? " (empty tag)" : ""));
-                    System.out.println(" - name: " + xpp.getName());
-                    System.out.println(" - ns: " + xpp.getNamespace());
-                    System.out.println(" - prefix: " + xpp.getPrefix());
+                    LOG.debug("START_TAG" + (xpp.isEmptyElementTag() ? " (empty tag)" : ""));
+                    LOG.debug(" - name: " + xpp.getName());
+                    LOG.debug(" - ns: " + xpp.getNamespace());
+                    LOG.debug(" - prefix: " + xpp.getPrefix());
                     int ac = xpp.getAttributeCount();
                     if (ac > 0) {
-                        System.out.println(" - attributes:");
+                        LOG.debug(" - attributes:");
                         for (int i = 0; i < ac; i++) {
-                            System.out.print("    - " + xpp.getAttributeName(i)
-                                             + (xpp.getAttributePrefix(i) == null
-                                                     ? "" : " (prefix: " + xpp.getAttributePrefix(i) + ")"));
-                            System.out.print(": " + xpp.getAttributeValue(i));
-                            System.out.print(", ns: " + xpp.getAttributeNamespace(i));
-                            System.out.println();
+                            LOG.debug("    - " + xpp.getAttributeName(i)
+                                      + (xpp.getAttributePrefix(i) == null
+                                              ? "" : " (prefix: " + xpp.getAttributePrefix(i) + ")")
+                                      + ": " + xpp.getAttributeValue(i)
+                                      + ", ns: " + xpp.getAttributeNamespace(i));
                         }
                     }
                     if ("e1".equals(xpp.getName())) {
@@ -82,15 +85,15 @@ public class ParserTest {
                 case MXParser.END_TAG -> {
                     xpp.getText(); // never uses org.apache.camel.xml.io.MXParser#pc
                     xpp.getTextCharacters(new int[2]);
-                    System.out.println("END_TAG");
-                    System.out.println(" - name: " + xpp.getName());
-                    System.out.println(" - ns: " + xpp.getNamespace());
-                    System.out.println(" - prefix: " + xpp.getPrefix());
+                    LOG.debug("END_TAG");
+                    LOG.debug(" - name: " + xpp.getName());
+                    LOG.debug(" - ns: " + xpp.getNamespace());
+                    LOG.debug(" - prefix: " + xpp.getPrefix());
                 }
                 case MXParser.TEXT -> {
-                    System.out.println("TEXT");
-                    System.out.println(" - name: " + xpp.getName());
-                    System.out.println(" - text: '" + xpp.getText() + (xpp.isWhitespace() ? "' (whitespace)" : "'"));
+                    LOG.debug("TEXT");
+                    LOG.debug(" - name: " + xpp.getName());
+                    LOG.debug(" - text: '" + xpp.getText() + (xpp.isWhitespace() ? "' (whitespace)" : "'"));
                 }
                 case MXParser.CDSECT -> {
                     xpp.isWhitespace();
@@ -98,9 +101,9 @@ public class ParserTest {
                 case MXParser.ENTITY_REF -> {
                     xpp.getName();
                     xpp.getText(); // always returns text - even if null
-                    System.out.println("ENTITY_REF");
-                    System.out.println(" - name: " + xpp.getName());
-                    System.out.println(" - text: " + xpp.getText());
+                    LOG.debug("ENTITY_REF");
+                    LOG.debug(" - name: " + xpp.getName());
+                    LOG.debug(" - text: " + xpp.getText());
                 }
                 case MXParser.IGNORABLE_WHITESPACE -> {
                     xpp.isWhitespace(); // always true
@@ -148,7 +151,7 @@ public class ParserTest {
         while (eventType != MXParser.END_DOCUMENT) {
             eventType = xpp.next();
             if (eventType == MXParser.START_TAG) {
-                System.out.println(xpp.getName());
+                LOG.debug(xpp.getName());
             }
         }
     }
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/bind/PipeProvider.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/bind/PipeProvider.java
index 26cd72bcb9d8..9a3f4e115f9f 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/bind/PipeProvider.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/bind/PipeProvider.java
@@ -30,6 +30,8 @@ import org.apache.camel.spi.Resource;
 import org.apache.camel.spi.ResourceResolver;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.StringHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.snakeyaml.engine.v2.api.LoadSettings;
 import org.snakeyaml.engine.v2.api.YamlUnicodeReader;
 import org.snakeyaml.engine.v2.composer.Composer;
@@ -48,6 +50,7 @@ import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.nodeAt;
  */
 public class PipeProvider extends ObjectReferenceBindingProvider {
 
+    private static final Logger LOG = LoggerFactory.getLogger(PipeProvider.class);
     private static final String prefix = "kamelet:";
 
     public PipeProvider() {
@@ -144,10 +147,10 @@ public class PipeProvider extends ObjectReferenceBindingProvider {
                 }
                 IOHelper.close(is);
             } catch (Exception e) {
-                System.err.println("Error parsing Kamelet: " + loc + " due to: " + e.getMessage());
+                LOG.error("Error parsing Kamelet: {} due to: {}", loc, e.getMessage(), e);
             }
         } else {
-            System.err.println("Kamelet not found on github: " + kamelet);
+            LOG.error("Kamelet not found on github: {}", kamelet);
         }
 
         endpointProperties.putAll(userProperties);
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/Printer.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/Printer.java
index d61cc198c890..d49bf05f8f2f 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/Printer.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/Printer.java
@@ -19,6 +19,8 @@ package org.apache.camel.dsl.jbang.core.common;
 import java.util.StringJoiner;
 
 import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Printer interface used by commands to write output to given print stream. By default, uses System out print stream,
@@ -52,25 +54,29 @@ public interface Printer {
     }
 
     /**
-     * Default printer uses System out print stream.
+     * Default printer uses a logger.
      */
     class SystemOutPrinter implements Printer {
+
+        private static final Logger LOG = LoggerFactory.getLogger(SystemOutPrinter.class);
+
         public void println() {
+            // print empty line is not really logging
             System.out.println();
             System.out.flush();
         }
 
         public void println(String line) {
-            System.out.println(line);
-            System.out.flush();
+            LOG.info(line);
         }
 
         public void print(String output) {
+            // printing without a newline is not really logging
             System.out.print(output);
         }
 
         public void printf(String format, Object... args) {
-            System.out.printf(format, args);
+            LOG.info(String.format(format, args));
         }
     }
 
diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java
index edc4cf28bc04..97819de5f3dc 100644
--- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java
+++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java
@@ -45,6 +45,8 @@ import io.fabric8.kubernetes.client.dsl.base.ResourceDefinitionContext;
 import org.apache.camel.dsl.jbang.core.common.YamlHelper;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.StringHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.yaml.snakeyaml.Yaml;
 
 /**
@@ -52,6 +54,7 @@ import org.yaml.snakeyaml.Yaml;
  */
 public final class KubernetesHelper {
 
+    private static final Logger LOG = LoggerFactory.getLogger(KubernetesHelper.class);
     private static KubernetesClient kubernetesClient;
 
     /** Clients with custom config */
@@ -157,7 +160,7 @@ public final class KubernetesHelper {
             APIGroup apiGroup = getKubernetesClient().getApiGroup("route.openshift.io");
             ocp = apiGroup != null;
         } catch (RuntimeException e) {
-            System.out.println("Failed to detect cluster: " + e.getMessage() + ", default to kubernetes.");
+            LOG.warn("Failed to detect cluster, defaulting to kubernetes: {}", e.getMessage());
         }
         return ocp;
     }
@@ -180,8 +183,8 @@ public final class KubernetesHelper {
             minikubeEnv = System.getenv("MINIKUBE_ACTIVE_DOCKERD") != null
                     && System.getenv("DOCKER_TLS_VERIFY") != null;
             if (minikube && !minikubeEnv) {
-                System.out.println(
-                        "It seems you have minikube running but forgot to run \"eval $(minikube docker-env)\", default cluster to kubernetes.");
+                LOG.warn(
+                        "It seems you have minikube running but forgot to run \"eval $(minikube docker-env)\", defaulting cluster to kubernetes.");
             }
         } catch (Exception e) {
             // ignore it, since we try to discover the cluster and don't want the caller to handle any error
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
index caff3eb0128d..cac9db19c3e8 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
@@ -112,12 +112,15 @@ import org.apache.camel.support.RouteOnDemandReloadStrategy;
 import org.apache.camel.support.service.ServiceHelper;
 import org.apache.camel.support.startup.BacklogStartupStepRecorder;
 import org.apache.camel.tooling.maven.MavenGav;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A Main class for booting up Camel with Kamelet in standalone mode.
  */
 public class KameletMain extends MainCommandLineSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(KameletMain.class);
     public static final String DEFAULT_KAMELETS_LOCATION = "classpath:kamelets,github:apache:camel-kamelets/kamelets";
 
     private final String instanceType;
@@ -354,8 +357,7 @@ public class KameletMain extends MainCommandLineSupport {
 
     @Override
     public void showOptionsHeader() {
-        System.out.println("Apache Camel (KameletMain) takes the following options");
-        System.out.println();
+        LOG.info("Apache Camel (KameletMain) takes the following options");
     }
 
     @Override
diff --git a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/ContainerTestService.java b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/ContainerTestService.java
index 3b537e3c74f5..29b219ee582a 100644
--- a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/ContainerTestService.java
+++ b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/ContainerTestService.java
@@ -34,7 +34,7 @@ public interface ContainerTestService extends ExecutionCondition {
         Logger logger = LoggerFactory.getLogger(ContainerService.class);
         logger.warn("Test {} is disabled because docker is not available", extensionContext.getElement().orElse(null));
 
-        System.err.println(
+        logger.warn(
                 "Container-based tests were disabled because Docker is NOT available. Check the log files on target/failsafe-reports");
         return ConditionEvaluationResult.disabled("Docker is NOT available");
     }
diff --git a/tooling/openapi-rest-dsl-generator/src/main/java/org/apache/camel/generator/openapi/RestDslYamlGenerator.java b/tooling/openapi-rest-dsl-generator/src/main/java/org/apache/camel/generator/openapi/RestDslYamlGenerator.java
index 6bafb924496f..a93b1d8699bf 100644
--- a/tooling/openapi-rest-dsl-generator/src/main/java/org/apache/camel/generator/openapi/RestDslYamlGenerator.java
+++ b/tooling/openapi-rest-dsl-generator/src/main/java/org/apache/camel/generator/openapi/RestDslYamlGenerator.java
@@ -173,7 +173,11 @@ public class RestDslYamlGenerator extends RestDslGenerator<RestDslYamlGenerator>
             }
         }
 
-        ObjectMapper mapper = new ObjectMapper(new YAMLFactory().disable(YAMLGenerator.Feature.WRITE_DOC_START_MARKER));
+        YAMLFactory yamlFactory = new YAMLFactory()
+                .disable(YAMLGenerator.Feature.WRITE_DOC_START_MARKER)
+                .enable(YAMLGenerator.Feature.MINIMIZE_QUOTES)
+                .enable(YAMLGenerator.Feature.INDENT_ARRAYS_WITH_INDICATOR);
+        ObjectMapper mapper = new ObjectMapper(yamlFactory);
         return mapper.writeValueAsString(node);
     }