Repository: camel Updated Branches: refs/heads/camel-2.15.x cb67fe978 -> 508c1dfab refs/heads/camel-2.16.x b4f2374ea -> 206a46434 refs/heads/master e4223b9a0 -> d3bfca99d
CAMEL-9543 - Discovering new type converters in OSGi wipes out those manually added Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d3bfca99 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d3bfca99 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d3bfca99 Branch: refs/heads/master Commit: d3bfca99d8dfdf51ee3e52d4622f7ecd71ed66f9 Parents: e4223b9 Author: Jonathan Anstey <jans...@gmail.com> Authored: Wed Jan 27 23:53:45 2016 -0330 Committer: Jonathan Anstey <jans...@gmail.com> Committed: Wed Jan 27 23:53:45 2016 -0330 ---------------------------------------------------------------------- .../apache/camel/core/osgi/OsgiTypeConverter.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/d3bfca99/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java ---------------------------------------------------------------------- diff --git a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java index c25e479..46767fe 100644 --- a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java +++ b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java @@ -62,19 +62,8 @@ public class OsgiTypeConverter extends ServiceSupport implements TypeConverter, } public Object addingService(ServiceReference<TypeConverterLoader> serviceReference) { - LOG.trace("AddingService: {}", serviceReference); + LOG.trace("AddingService: {}, Bundle: {}", serviceReference, serviceReference.getBundle()); TypeConverterLoader loader = bundleContext.getService(serviceReference); - // just make sure we don't load the bundle converter this time - if (delegate != null) { - try { - ServiceHelper.stopService(this.delegate); - } catch (Exception e) { - // ignore - LOG.debug("Error stopping service due: " + e.getMessage() + ". This exception will be ignored.", e); - } - // It can force camel to reload the type converter again - this.delegate = null; - } return loader; } @@ -82,7 +71,7 @@ public class OsgiTypeConverter extends ServiceSupport implements TypeConverter, } public void removedService(ServiceReference<TypeConverterLoader> serviceReference, Object o) { - LOG.trace("RemovedService: {}", serviceReference); + LOG.trace("RemovedService: {}, Bundle: {}", serviceReference, serviceReference.getBundle()); try { ServiceHelper.stopService(this.delegate); } catch (Exception e) { @@ -91,6 +80,8 @@ public class OsgiTypeConverter extends ServiceSupport implements TypeConverter, } // It can force camel to reload the type converter again this.delegate = null; + + // TODO: reloading all type converters when one service is removed is suboptimal... } @Override