You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2013/04/14 12:09:57 UTC
svn commit: r1467759 - in /camel/branches/camel-2.10.x: ./
camel-core/src/main/java/org/apache/camel/api/management/mbean/
camel-core/src/main/java/org/apache/camel/impl/converter/
camel-core/src/main/java/org/apache/camel/spi/ camel-core/src/test/java...
Author: davsclaus
Date: Sun Apr 14 10:09:56 2013
New Revision: 1467759
URL: http://svn.apache.org/r1467759
Log:
CAMEL-6264: Disabled and @deprecated utilization stats on type converter registry to avoid performance degration on very high concurrent usages.
Modified:
camel/branches/camel-2.10.x/ (props changed)
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java
camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedTypeConverterRegistryTest.java
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1467758
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java?rev=1467759&r1=1467758&r2=1467759&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java Sun Apr 14 10:09:56 2013
@@ -25,18 +25,23 @@ import org.apache.camel.api.management.M
public interface ManagedTypeConverterRegistryMBean extends ManagedServiceMBean {
@ManagedAttribute(description = "Number of type conversion attempts")
+ @Deprecated
long getAttemptCounter();
@ManagedAttribute(description = "Number of type conversion hits (successful conversions)")
+ @Deprecated
long getHitCounter();
@ManagedAttribute(description = "Number of type conversion misses (no suitable type converter)")
+ @Deprecated
long getMissCounter();
@ManagedAttribute(description = "Number of type conversion failures (failed conversions)")
+ @Deprecated
long getFailedCounter();
@ManagedOperation(description = "Resets the type conversion counters")
+ @Deprecated
void resetTypeConversionCounters();
}
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java?rev=1467759&r1=1467758&r2=1467759&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java Sun Apr 14 10:09:56 2013
@@ -27,7 +27,6 @@ import java.util.concurrent.ConcurrentHa
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ExecutionException;
-import java.util.concurrent.atomic.AtomicLong;
import org.apache.camel.CamelExecutionException;
import org.apache.camel.Exchange;
@@ -64,10 +63,6 @@ public abstract class BaseTypeConverterR
protected Injector injector;
protected final FactoryFinder factoryFinder;
protected final Statistics statistics = new UtilizationStatistics();
- protected final AtomicLong attemptCounter = new AtomicLong();
- protected final AtomicLong missCounter = new AtomicLong();
- protected final AtomicLong hitCounter = new AtomicLong();
- protected final AtomicLong failedCounter = new AtomicLong();
public BaseTypeConverterRegistry(PackageScanClassResolver resolver, Injector injector, FactoryFinder factoryFinder) {
this.resolver = resolver;
@@ -107,10 +102,8 @@ public abstract class BaseTypeConverterR
Object answer;
try {
- attemptCounter.incrementAndGet();
answer = doConvertTo(type, exchange, value, false);
} catch (Exception e) {
- failedCounter.incrementAndGet();
// if its a ExecutionException then we have rethrow it as its not due to failed conversion
// this is special for FutureTypeConverter
boolean execution = ObjectHelper.getException(ExecutionException.class, e) != null
@@ -128,11 +121,8 @@ public abstract class BaseTypeConverterR
}
if (answer == Void.TYPE) {
// Could not find suitable conversion
- missCounter.incrementAndGet();
- // Could not find suitable conversion
return null;
} else {
- hitCounter.incrementAndGet();
return (T) answer;
}
}
@@ -151,10 +141,8 @@ public abstract class BaseTypeConverterR
Object answer;
try {
- attemptCounter.incrementAndGet();
answer = doConvertTo(type, exchange, value, false);
} catch (Exception e) {
- failedCounter.incrementAndGet();
// error occurred during type conversion
if (e instanceof TypeConversionException) {
throw (TypeConversionException) e;
@@ -164,11 +152,8 @@ public abstract class BaseTypeConverterR
}
if (answer == Void.TYPE || value == null) {
// Could not find suitable conversion
- missCounter.incrementAndGet();
- // Could not find suitable conversion
throw new NoTypeConversionAvailableException(value, type);
} else {
- hitCounter.incrementAndGet();
return (T) answer;
}
}
@@ -187,18 +172,14 @@ public abstract class BaseTypeConverterR
Object answer;
try {
- attemptCounter.incrementAndGet();
answer = doConvertTo(type, exchange, value, true);
} catch (Exception e) {
- failedCounter.incrementAndGet();
return null;
}
if (answer == Void.TYPE) {
- missCounter.incrementAndGet();
// Could not find suitable conversion
return null;
} else {
- hitCounter.incrementAndGet();
return (T) answer;
}
}
@@ -516,11 +497,6 @@ public abstract class BaseTypeConverterR
@Override
protected void doStop() throws Exception {
- // log utilization statistics when stopping, including mappings
- String info = statistics.toString();
- info += String.format(" mappings[total=%s, misses=%s]", typeMappings.size(), misses.size());
- log.info(info);
-
typeMappings.clear();
misses.clear();
statistics.reset();
@@ -529,34 +505,32 @@ public abstract class BaseTypeConverterR
/**
* Represents utilization statistics
*/
+ @Deprecated
private final class UtilizationStatistics implements Statistics {
@Override
public long getAttemptCounter() {
- return attemptCounter.get();
+ return 0;
}
@Override
public long getHitCounter() {
- return hitCounter.get();
+ return 0;
}
@Override
public long getMissCounter() {
- return missCounter.get();
+ return 0;
}
@Override
public long getFailedCounter() {
- return failedCounter.get();
+ return 0;
}
@Override
public void reset() {
- attemptCounter.set(0);
- hitCounter.set(0);
- missCounter.set(0);
- failedCounter.set(0);
+ // noop
}
@Override
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java?rev=1467759&r1=1467758&r2=1467759&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java Sun Apr 14 10:09:56 2013
@@ -28,7 +28,9 @@ public interface TypeConverterRegistry e
/**
* Utilization statistics of the this registry.
+ * @deprecated the statistics has been disabled and the API will be removed in Camel 2.12
*/
+ @Deprecated
interface Statistics {
/**
@@ -101,7 +103,9 @@ public interface TypeConverterRegistry e
* Gets the utilization statistics of this type converter registry
*
* @return the utilization statistics
+ * @deprecated the statistics has been disabled and the API will be removed in Camel 2.12
*/
+ @Deprecated
Statistics getStatistics();
}
Modified: camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedTypeConverterRegistryTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedTypeConverterRegistryTest.java?rev=1467759&r1=1467758&r2=1467759&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedTypeConverterRegistryTest.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/management/ManagedTypeConverterRegistryTest.java Sun Apr 14 10:09:56 2013
@@ -49,32 +49,6 @@ public class ManagedTypeConverterRegistr
}
}
assertNotNull("Cannot find DefaultTypeConverter", name);
-
- Long failed = (Long) mbeanServer.getAttribute(name, "FailedCounter");
- assertEquals(0, failed.intValue());
- Long miss = (Long) mbeanServer.getAttribute(name, "MissCounter");
- assertEquals(0, miss.intValue());
-
- try {
- template.sendBody("direct:start", "foo");
- fail("Should have thrown exception");
- } catch (Exception e) {
- // expected
- }
-
- // should now have a failed
- failed = (Long) mbeanServer.getAttribute(name, "FailedCounter");
- assertEquals(1, failed.intValue());
- miss = (Long) mbeanServer.getAttribute(name, "MissCounter");
- assertEquals(0, miss.intValue());
-
- // reset
- mbeanServer.invoke(name, "resetTypeConversionCounters", null, null);
-
- failed = (Long) mbeanServer.getAttribute(name, "FailedCounter");
- assertEquals(0, failed.intValue());
- miss = (Long) mbeanServer.getAttribute(name, "MissCounter");
- assertEquals(0, miss.intValue());
}
@Override