This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 17fb33e7498 CAMEL-19398: fix not being able to enable statistics after
initialized (#11526)
17fb33e7498 is described below
commit 17fb33e7498533a6eb328c7f1ea95078a3c9e68e
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Fri Sep 22 12:33:08 2023 +0200
CAMEL-19398: fix not being able to enable statistics after initialized
(#11526)
The statistics need to be set after the context and registry are
initialized because of Spring. This fix cleanups and partially reverts change
a7d67bc0e8f53c2f4375e432d93540fbdbbd316e.
---
.../csimple/joor/OriginalSimpleOperatorTest.java | 10 +++
.../camel/component/jcr/JcrConverterTest.java | 2 +-
.../apache/camel/spi/TypeConverterRegistry.java | 7 ++
.../camel/impl/engine/AbstractCamelContext.java | 4 ++
.../camel/impl/engine/SimpleCamelContext.java | 2 +-
.../impl/converter/BaseTypeConverterRegistry.java | 5 +-
.../impl/converter/CoreTypeConverterRegistry.java | 10 +--
.../camel/impl/converter/DefaultTypeConverter.java | 8 +--
.../converter/NoopTypeConverterStatistics.java | 80 ----------------------
.../impl/converter/TypeConverterStatistics.java | 28 ++++++--
.../xml/AbstractCamelContextFactoryBeanTest.java | 2 +-
.../org/apache/camel/converter/ConverterTest.java | 2 +-
.../java/org/apache/camel/converter/JaxpTest.java | 2 +-
.../apache/camel/converter/StringSourceTest.java | 2 +-
...gistryStatisticsEnabledNoStreamCachingTest.java | 5 +-
...TypeConverterRegistryStatisticsEnabledTest.java | 2 +-
.../camel/language/simple/SimpleOperatorTest.java | 10 +++
.../mbean/ManagedTypeConverterRegistryMBean.java | 3 +
.../mbean/ManagedTypeConverterRegistry.java | 5 ++
.../ManagedTypeConverterRegistryTest.java | 32 ++++-----
20 files changed, 91 insertions(+), 130 deletions(-)
diff --git
a/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleOperatorTest.java
b/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleOperatorTest.java
index 51f1cef4ec9..6264b5405b8 100644
---
a/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleOperatorTest.java
+++
b/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleOperatorTest.java
@@ -165,6 +165,10 @@ public class OriginalSimpleOperatorTest extends
LanguageTestSupport {
assertPredicate("${in.header.foo} == 'def'", false);
assertPredicate("${in.header.foo} == '1'", false);
+ // no type converter needed from this point forward
+
context.getTypeConverterRegistry().getStatistics().setStatisticsEnabled(true);
+ context.getTypeConverterRegistry().getStatistics().reset();
+
// boolean to boolean comparison
exchange.getIn().setHeader("bool", true);
exchange.getIn().setHeader("booley", false);
@@ -382,6 +386,9 @@ public class OriginalSimpleOperatorTest extends
LanguageTestSupport {
@Test
public void testLessThanOrEqualOperator() {
+
context.getTypeConverterRegistry().getStatistics().setStatisticsEnabled(true);
+ context.getTypeConverterRegistry().getStatistics().reset();
+
// string to string comparison
assertPredicate("${in.header.foo} <= 'aaa'", false);
assertPredicate("${in.header.foo} <= 'abc'", true);
@@ -406,6 +413,9 @@ public class OriginalSimpleOperatorTest extends
LanguageTestSupport {
@Test
public void testTypeCoerceNoConversionNeeded() {
+
context.getTypeConverterRegistry().getStatistics().setStatisticsEnabled(true);
+ context.getTypeConverterRegistry().getStatistics().reset();
+
// int to int comparison
exchange.getIn().setHeader("num", 70);
assertPredicate("${in.header.num} > 100", false);
diff --git
a/components/camel-jcr/src/test/java/org/apache/camel/component/jcr/JcrConverterTest.java
b/components/camel-jcr/src/test/java/org/apache/camel/component/jcr/JcrConverterTest.java
index 6ebd0d0b1dd..cd4c0decd19 100644
---
a/components/camel-jcr/src/test/java/org/apache/camel/component/jcr/JcrConverterTest.java
+++
b/components/camel-jcr/src/test/java/org/apache/camel/component/jcr/JcrConverterTest.java
@@ -68,7 +68,7 @@ public class JcrConverterTest {
public boolean supportsAutoWiring() {
return false;
}
- }, true, false);
+ }, true);
ServiceHelper.startService(converter);
}
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java
b/core/camel-api/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java
index 628e9ddbe93..ea51bfc0ca8 100644
---
a/core/camel-api/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java
+++
b/core/camel-api/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java
@@ -71,6 +71,13 @@ public interface TypeConverterRegistry extends
StaticService, CamelContextAware
* Whether statistics is enabled.
*/
boolean isStatisticsEnabled();
+
+ /**
+ * Sets whether statistics is enabled.
+ *
+ * @param statisticsEnabled <tt>true</tt> to enable
+ */
+ void setStatisticsEnabled(boolean statisticsEnabled);
}
/**
diff --git
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index ab465885279..7a771fd0425 100644
---
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -3194,6 +3194,10 @@ public abstract class AbstractCamelContext extends
BaseService
getShutdownStrategy();
getUuidGenerator();
+ if (isTypeConverterStatisticsEnabled()) {
+
getTypeConverterRegistry().getStatistics().setStatisticsEnabled(isTypeConverterStatisticsEnabled());
+ }
+
// resolve simple language to initialize it
resolveLanguage("simple");
}
diff --git
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
index 240e4c949c6..49ca74f5a37 100644
---
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
+++
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
@@ -165,7 +165,7 @@ public class SimpleCamelContext extends
AbstractCamelContext {
protected TypeConverter createTypeConverter() {
return new DefaultTypeConverter(
getCamelContextReference(),
PluginHelper.getPackageScanClassResolver(this), getInjector(),
- isLoadTypeConverters(), isTypeConverterStatisticsEnabled());
+ isLoadTypeConverters());
}
@Override
diff --git
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
index 4ed46928438..aa58325cec6 100644
---
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
+++
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
@@ -64,10 +64,7 @@ public abstract class BaseTypeConverterRegistry extends
CoreTypeConverterRegistr
protected PackageScanClassResolver resolver;
protected Injector injector;
- public BaseTypeConverterRegistry(CamelContext camelContext,
PackageScanClassResolver resolver, Injector injector,
- boolean statisticsEnabled) {
- super(statisticsEnabled);
-
+ public BaseTypeConverterRegistry(CamelContext camelContext,
PackageScanClassResolver resolver, Injector injector) {
this.camelContext = camelContext;
this.injector = injector;
this.resolver = resolver;
diff --git
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/CoreTypeConverterRegistry.java
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/CoreTypeConverterRegistry.java
index 03dde53726d..d9b1a39f425 100644
---
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/CoreTypeConverterRegistry.java
+++
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/CoreTypeConverterRegistry.java
@@ -63,7 +63,7 @@ public abstract class CoreTypeConverterRegistry extends
ServiceSupport implement
// special enum converter for optional performance
protected final TypeConverter enumTypeConverter = new EnumTypeConverter();
- private final ConverterStatistics statistics;
+ private final ConverterStatistics statistics = new
TypeConverterStatistics();
protected TypeConverterExists typeConverterExists =
TypeConverterExists.Ignore;
protected LoggingLevel typeConverterExistsLoggingLevel =
LoggingLevel.DEBUG;
@@ -72,14 +72,6 @@ public abstract class CoreTypeConverterRegistry extends
ServiceSupport implement
// space for others added during runtime
private final Map<TypeConvertible<?, ?>, TypeConverter> converters = new
ConcurrentHashMap<>(256);
- protected CoreTypeConverterRegistry(boolean statisticsEnabled) {
- if (statisticsEnabled) {
- statistics = new TypeConverterStatistics();
- } else {
- statistics = new NoopTypeConverterStatistics();
- }
- }
-
@Override
public boolean allowNull() {
return false;
diff --git
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
index c1dee555174..31df118fa3c 100644
---
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
+++
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
@@ -40,13 +40,13 @@ public class DefaultTypeConverter extends
BaseTypeConverterRegistry implements A
private final boolean loadTypeConverters;
public DefaultTypeConverter(PackageScanClassResolver resolver, Injector
injector,
- boolean loadTypeConverters, boolean
statisticsEnabled) {
- this(null, resolver, injector, loadTypeConverters, statisticsEnabled);
+ boolean loadTypeConverters) {
+ this(null, resolver, injector, loadTypeConverters);
}
public DefaultTypeConverter(CamelContext camelContext,
PackageScanClassResolver resolver, Injector injector,
- boolean loadTypeConverters, boolean
statisticsEnabled) {
- super(camelContext, resolver, injector, statisticsEnabled);
+ boolean loadTypeConverters) {
+ super(camelContext, resolver, injector);
this.loadTypeConverters = loadTypeConverters;
}
diff --git
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/NoopTypeConverterStatistics.java
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/NoopTypeConverterStatistics.java
deleted file mode 100644
index 975b0b8f6a7..00000000000
---
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/NoopTypeConverterStatistics.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.camel.impl.converter;
-
-final class NoopTypeConverterStatistics implements ConverterStatistics {
- @Override
- public long getNoopCounter() {
- return 0;
- }
-
- @Override
- public long getAttemptCounter() {
- return 0;
- }
-
- @Override
- public long getHitCounter() {
- return 0;
- }
-
- @Override
- public long getMissCounter() {
- return 0;
- }
-
- @Override
- public long getFailedCounter() {
- return 0;
- }
-
- @Override
- public void reset() {
- // NO-OP
- }
-
- @Override
- public boolean isStatisticsEnabled() {
- return false;
- }
-
- @Override
- public void incrementFailed() {
- // NO-OP
- }
-
- @Override
- public void incrementNoop() {
- // NO-OP
- }
-
- @Override
- public void incrementHit() {
- // NO-OP
- }
-
- @Override
- public void incrementMiss() {
- // NO-OP
- }
-
- @Override
- public void incrementAttempt() {
- // NO-OP
- }
-}
diff --git
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/TypeConverterStatistics.java
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/TypeConverterStatistics.java
index a51066da1d9..2a813d6a26e 100644
---
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/TypeConverterStatistics.java
+++
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/TypeConverterStatistics.java
@@ -24,6 +24,7 @@ import java.util.concurrent.atomic.LongAdder;
*/
final class TypeConverterStatistics implements ConverterStatistics {
+ private boolean statisticsEnabled;
private final LongAdder noopCounter = new LongAdder();
private final LongAdder attemptCounter = new LongAdder();
private final LongAdder missCounter = new LongAdder();
@@ -57,27 +58,37 @@ final class TypeConverterStatistics implements
ConverterStatistics {
@Override
public void incrementFailed() {
- failedCounter.increment();
+ if (statisticsEnabled) {
+ failedCounter.increment();
+ }
}
@Override
public void incrementNoop() {
- noopCounter.increment();
+ if (statisticsEnabled) {
+ noopCounter.increment();
+ }
}
@Override
public void incrementHit() {
- hitCounter.increment();
+ if (statisticsEnabled) {
+ hitCounter.increment();
+ }
}
@Override
public void incrementMiss() {
- missCounter.increment();
+ if (statisticsEnabled) {
+ missCounter.increment();
+ }
}
@Override
public void incrementAttempt() {
- attemptCounter.increment();
+ if (statisticsEnabled) {
+ attemptCounter.increment();
+ }
}
@Override
@@ -91,7 +102,12 @@ final class TypeConverterStatistics implements
ConverterStatistics {
@Override
public boolean isStatisticsEnabled() {
- return true;
+ return statisticsEnabled;
+ }
+
+ @Override
+ public void setStatisticsEnabled(boolean statisticsEnabled) {
+ this.statisticsEnabled = statisticsEnabled;
}
@Override
diff --git
a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java
b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java
index b0c51d453aa..4c112f03c79 100644
---
a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java
+++
b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java
@@ -83,7 +83,7 @@ public class AbstractCamelContextFactoryBeanTest {
public boolean supportsAutoWiring() {
return false;
}
- }, false, false);
+ }, false);
// properties that should return value that can be converted to boolean
Set<String> valuesThatReturnBoolean = new HashSet<>(
diff --git
a/core/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
b/core/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
index 24744bff270..1eca55a02f8 100644
---
a/core/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
@@ -57,7 +57,7 @@ public class ConverterTest extends TestSupport {
private static final Logger LOG =
LoggerFactory.getLogger(ConverterTest.class);
protected TypeConverter converter = new DefaultTypeConverter(
- new DefaultPackageScanClassResolver(), new ReflectionInjector(),
true, false);
+ new DefaultPackageScanClassResolver(), new ReflectionInjector(),
true);
@BeforeEach
public void setUp() throws Exception {
diff --git
a/core/camel-core/src/test/java/org/apache/camel/converter/JaxpTest.java
b/core/camel-core/src/test/java/org/apache/camel/converter/JaxpTest.java
index 9c102659fc0..4e8dfd77628 100644
--- a/core/camel-core/src/test/java/org/apache/camel/converter/JaxpTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/converter/JaxpTest.java
@@ -41,7 +41,7 @@ import static org.junit.jupiter.api.Assertions.*;
public class JaxpTest {
private static final Logger LOG = LoggerFactory.getLogger(JaxpTest.class);
protected TypeConverter converter = new DefaultTypeConverter(
- new DefaultPackageScanClassResolver(), new ReflectionInjector(),
false, false);
+ new DefaultPackageScanClassResolver(), new ReflectionInjector(),
false);
@BeforeEach
public void setUp() throws Exception {
diff --git
a/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
b/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
index 0a807f4d49c..bf261869e57 100644
---
a/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
@@ -35,7 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class StringSourceTest {
protected TypeConverter converter = new DefaultTypeConverter(
- new DefaultPackageScanClassResolver(), new ReflectionInjector(),
false, false);
+ new DefaultPackageScanClassResolver(), new ReflectionInjector(),
false);
protected String expectedBody = "<hello>world!</hello>";
@BeforeEach
diff --git
a/core/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryStatisticsEnabledNoStreamCachingTest.java
b/core/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryStatisticsEnabledNoStreamCachingTest.java
index bd01767b676..f8a0adad8ec 100644
---
a/core/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryStatisticsEnabledNoStreamCachingTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryStatisticsEnabledNoStreamCachingTest.java
@@ -30,12 +30,9 @@ public class
TypeConverterRegistryStatisticsEnabledNoStreamCachingTest extends C
@Override
protected CamelContext createCamelContext() throws Exception {
- CamelContext context = new DefaultCamelContext(false);
- context.setLoadTypeConverters(isLoadTypeConverters());
+ CamelContext context = super.createCamelContext();
context.setStreamCaching(false);
context.setTypeConverterStatisticsEnabled(true);
- context.build();
-
return context;
}
diff --git
a/core/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryStatisticsEnabledTest.java
b/core/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryStatisticsEnabledTest.java
index 6a38aa31c7e..6c2549323f6 100644
---
a/core/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryStatisticsEnabledTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/impl/TypeConverterRegistryStatisticsEnabledTest.java
@@ -30,7 +30,7 @@ public class TypeConverterRegistryStatisticsEnabledTest
extends ContextTestSuppo
@Override
protected CamelContext createCamelContext() throws Exception {
- CamelContext context = new DefaultCamelContext(false);
+ CamelContext context = super.createCamelContext();
context.setTypeConverterStatisticsEnabled(true);
return context;
}
diff --git
a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
index 3fa6625fc5a..5c1fd78f4da 100644
---
a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
@@ -173,6 +173,10 @@ public class SimpleOperatorTest extends
LanguageTestSupport {
assertPredicate("${in.header.foo} == '-'", false);
assertPredicate("${in.header.bar} == '-'", false);
+ // no type converter needed from this point forward
+
context.getTypeConverterRegistry().getStatistics().setStatisticsEnabled(true);
+ context.getTypeConverterRegistry().getStatistics().reset();
+
// boolean to boolean comparison
exchange.getIn().setHeader("bool", true);
exchange.getIn().setHeader("booley", false);
@@ -402,6 +406,9 @@ public class SimpleOperatorTest extends LanguageTestSupport
{
@Test
public void testLessThanOrEqualOperator() throws Exception {
+
context.getTypeConverterRegistry().getStatistics().setStatisticsEnabled(true);
+ context.getTypeConverterRegistry().getStatistics().reset();
+
// string to string comparison
assertPredicate("${in.header.foo} <= 'aaa'", false);
assertPredicate("${in.header.foo} <= 'abc'", true);
@@ -426,6 +433,9 @@ public class SimpleOperatorTest extends LanguageTestSupport
{
@Test
public void testTypeCoerceNoConversionNeeded() throws Exception {
+
context.getTypeConverterRegistry().getStatistics().setStatisticsEnabled(true);
+ context.getTypeConverterRegistry().getStatistics().reset();
+
// int to int comparison
exchange.getIn().setHeader("num", 70);
assertPredicate("${in.header.num} > 100", false);
diff --git
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java
index bf14b4219a7..f607a3652bb 100644
---
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java
+++
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java
@@ -42,6 +42,9 @@ public interface ManagedTypeConverterRegistryMBean extends
ManagedServiceMBean {
@ManagedAttribute(description = "Utilization statistics enabled")
boolean isStatisticsEnabled();
+ @ManagedAttribute(description = "Utilization statistics enabled")
+ void setStatisticsEnabled(boolean statisticsEnabled);
+
@ManagedAttribute(description = "Number of type converters in the
registry")
int getNumberOfTypeConverters();
diff --git
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTypeConverterRegistry.java
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTypeConverterRegistry.java
index 17d14ff352a..16d31164bf3 100644
---
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTypeConverterRegistry.java
+++
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTypeConverterRegistry.java
@@ -74,6 +74,11 @@ public class ManagedTypeConverterRegistry extends
ManagedService implements Mana
return registry.getStatistics().isStatisticsEnabled();
}
+ @Override
+ public void setStatisticsEnabled(boolean statisticsEnabled) {
+ registry.getStatistics().setStatisticsEnabled(statisticsEnabled);
+ }
+
@Override
public int getNumberOfTypeConverters() {
return registry.size();
diff --git
a/core/camel-management/src/test/java/org/apache/camel/management/ManagedTypeConverterRegistryTest.java
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedTypeConverterRegistryTest.java
index 3da8385d4de..7ada1440bd3 100644
---
a/core/camel-management/src/test/java/org/apache/camel/management/ManagedTypeConverterRegistryTest.java
+++
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedTypeConverterRegistryTest.java
@@ -18,33 +18,21 @@ package org.apache.camel.management;
import java.util.Set;
+import javax.management.Attribute;
import javax.management.MBeanServer;
import javax.management.ObjectName;
-import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.impl.DefaultCamelContext;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledOnOs;
import org.junit.jupiter.api.condition.OS;
import static
org.apache.camel.management.DefaultManagementObjectNameStrategy.TYPE_SERVICE;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.jupiter.api.Assertions.*;
@DisabledOnOs(OS.AIX)
public class ManagedTypeConverterRegistryTest extends ManagementTestSupport {
- @Override
- protected CamelContext createCamelContext() throws Exception {
- CamelContext context = new DefaultCamelContext(false);
- context.setTypeConverterStatisticsEnabled(true);
- return context;
- }
-
@Test
public void testTypeConverterRegistry() throws Exception {
getMockEndpoint("mock:a").expectedMessageCount(2);
@@ -69,6 +57,18 @@ public class ManagedTypeConverterRegistryTest extends
ManagementTestSupport {
}
assertNotNull(name, "Cannot find DefaultTypeConverter");
+ // is disabled by default
+ Boolean enabled = (Boolean) mbeanServer.getAttribute(name,
"StatisticsEnabled");
+ assertEquals(Boolean.FALSE, enabled);
+
+ // need to enable statistics
+ mbeanServer.setAttribute(name, new Attribute("StatisticsEnabled",
Boolean.TRUE));
+
+ Long failed = (Long) mbeanServer.getAttribute(name, "FailedCounter");
+ assertEquals(0, failed.intValue());
+ Long miss = (Long) mbeanServer.getAttribute(name, "MissCounter");
+ assertEquals(0, miss.intValue());
+
// reset
mbeanServer.invoke(name, "resetTypeConversionCounters", null, null);
@@ -77,9 +77,9 @@ public class ManagedTypeConverterRegistryTest extends
ManagementTestSupport {
// should hit
Long hit = (Long) mbeanServer.getAttribute(name, "HitCounter");
assertEquals(1, hit.intValue());
- Long failed = (Long) mbeanServer.getAttribute(name, "FailedCounter");
+ failed = (Long) mbeanServer.getAttribute(name, "FailedCounter");
assertEquals(0, failed.intValue());
- Long miss = (Long) mbeanServer.getAttribute(name, "MissCounter");
+ miss = (Long) mbeanServer.getAttribute(name, "MissCounter");
assertEquals(2, miss.intValue()); // stream caching misses
// reset