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

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git

commit 774e50704472babece202b6e7ce8dd140ad89d5a
Author: lburgazzoli <lburgazz...@gmail.com>
AuthorDate: Fri Sep 4 18:24:40 2020 +0200

    CAMEL-14672: Invoke customizers as part of services initialization
---
 .../blueprint/BlueprintDataFormatResolver.java     | 18 ---------------
 .../camel/core/osgi/OsgiDataFormatResolver.java    | 23 +++---------------
 .../org/apache/camel/core/osgi/impl/Activator.java | 27 +++++-----------------
 .../core/osgi/OsgiDataFormatResolverTest.java      | 13 +++++------
 4 files changed, 15 insertions(+), 66 deletions(-)

diff --git 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintDataFormatResolver.java
 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintDataFormatResolver.java
index 0f504d0..c602d36 100644
--- 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintDataFormatResolver.java
+++ 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintDataFormatResolver.java
@@ -20,7 +20,6 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.core.osgi.OsgiDataFormatResolver;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.DataFormatFactory;
-import org.apache.camel.spi.DataFormatResolver;
 import org.osgi.framework.BundleContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -33,23 +32,6 @@ public class BlueprintDataFormatResolver extends 
OsgiDataFormatResolver {
     }
 
     @Override
-    public DataFormat resolveDataFormat(String name, CamelContext context) {
-        DataFormat dataFormat = null;
-
-        DataFormatResolver resolver = 
context.getRegistry().lookupByNameAndType(".camelBlueprint.dataformatResolver." 
+ name, DataFormatResolver.class);
-        if (resolver != null) {
-            LOG.debug("Found dataformat resolver: {} in registry: {}", name, 
resolver);
-            dataFormat = resolver.resolveDataFormat(name, context);
-        }
-
-        if (dataFormat == null) {
-            dataFormat = super.resolveDataFormat(name, context);
-        }
-
-        return dataFormat;
-    }
-
-    @Override
     public DataFormat createDataFormat(String name, CamelContext context) {
         DataFormatFactory factory = 
context.getRegistry().lookupByNameAndType(".camelBlueprint.dataformatFactory." 
+ name, DataFormatFactory.class);
         if (factory  != null) {
diff --git 
a/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java
 
b/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java
index 417fba0..d9954ec 100644
--- 
a/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java
+++ 
b/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java
@@ -40,21 +40,6 @@ public class OsgiDataFormatResolver implements 
DataFormatResolver {
     }
 
     @Override
-    public DataFormat resolveDataFormat(String name, CamelContext context) {
-        // lookup in registry first
-        DataFormat dataFormat = 
ResolverHelper.lookupDataFormatInRegistryWithFallback(context, name);
-        if (dataFormat == null) {
-            dataFormat = getDataFormat(name, context, false);
-        }
-
-        if (dataFormat == null) {
-            dataFormat = createDataFormat(name, context);
-        }
-
-        return dataFormat;
-    }
-
-    @Override
     public DataFormat createDataFormat(String name, CamelContext context) {
         DataFormat dataFormat = null;
 
@@ -65,21 +50,19 @@ public class OsgiDataFormatResolver implements 
DataFormatResolver {
         }
 
         if (dataFormat == null) {
-            dataFormat = getDataFormat(name, context, true);
+            dataFormat = getDataFormat(name, context);
         }
 
         return dataFormat;
     }
 
-    private DataFormat getDataFormat(String name, CamelContext context, 
boolean create) {
+    private DataFormat getDataFormat(String name, CamelContext context) {
         LOG.trace("Finding DataFormat: {}", name);
         try {
             Collection<ServiceReference<DataFormatResolver>> refs = 
bundleContext.getServiceReferences(DataFormatResolver.class, "(dataformat=" + 
name + ")");
             if (refs != null) {
                 for (ServiceReference<DataFormatResolver> ref : refs) {
-                    return create
-                        ? bundleContext.getService(ref).createDataFormat(name, 
context)
-                        : 
bundleContext.getService(ref).resolveDataFormat(name, context);
+                    return 
bundleContext.getService(ref).createDataFormat(name, context);
                 }
             }
             return null;
diff --git 
a/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/Activator.java
 
b/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/Activator.java
index 6443411..463c0a8 100644
--- 
a/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/Activator.java
+++ 
b/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/Activator.java
@@ -43,7 +43,6 @@ import org.apache.camel.TypeConverter;
 import org.apache.camel.TypeConverterLoaderException;
 import org.apache.camel.impl.converter.AnnotationTypeConverterLoader;
 import org.apache.camel.impl.scan.AnnotatedWithPackageScanFilter;
-import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.ComponentResolver;
 import org.apache.camel.spi.ConfigurerResolver;
 import org.apache.camel.spi.DataFormat;
@@ -92,7 +91,7 @@ public class Activator implements BundleActivator, 
BundleTrackerCustomizer<Objec
     private BundleTracker<?> tracker;
     private final Map<Long, List<BaseService>> resolvers = new 
ConcurrentHashMap<>();
     private long bundleId;
-    
+
     // Map from package name to the capability we export for this package
     private final Map<String, BundleCapability> packageCapabilities = new 
HashMap<>();
 
@@ -114,7 +113,7 @@ public class Activator implements BundleActivator, 
BundleTrackerCustomizer<Objec
         packageCapabilities.clear();
         LOG.info("Camel activator stopped");
     }
-    
+
     /**
      * Caches the package capabilities that are needed for a set of interface 
classes
      */
@@ -286,14 +285,14 @@ public class Activator implements BundleActivator, 
BundleTrackerCustomizer<Objec
                         }
                     }
                 }
-                    
+
             } else if (url1 != null || url3 != null) {
                 LOG.debug("Found TypeConverter in bundle {}", 
bundle.getSymbolicName());
                 resolvers.add(new BundleTypeConverterLoader(bundle, url3 != 
null));
             }
         }
     }
-    
+
     /**
      * Check if bundle can see the given class
      */
@@ -433,24 +432,10 @@ public class Activator implements BundleActivator, 
BundleTrackerCustomizer<Objec
         }
 
         @Override
-        public DataFormat resolveDataFormat(String name, CamelContext context) 
{
-            DataFormat dataFormat = createInstance(name, 
dataformats.get(name), context);
-            if (dataFormat == null) {
-                dataFormat = createDataFormat(name, context);
-            }
-
-            return dataFormat;
-        }
-
-        @Override
         public DataFormat createDataFormat(String name, CamelContext context) {
             return createInstance(name, dataformats.get(name), context);
         }
 
-        public DataFormatDefinition resolveDataFormatDefinition(String name, 
CamelContext context) {
-            return null;
-        }
-
         @Override
         public void register() {
             doRegister(DataFormatResolver.class, "dataformat", 
dataformats.keySet());
@@ -469,7 +454,7 @@ public class Activator implements BundleActivator, 
BundleTrackerCustomizer<Objec
             this.bundle = bundle;
             this.hasFallbackTypeConverter = hasFallbackTypeConverter;
         }
-        
+
         public void setTypeConverterLoader(TypeConverterLoader 
typeConverterloader) {
             this.loader = typeConverterloader;
         }
@@ -690,7 +675,7 @@ public class Activator implements BundleActivator, 
BundleTrackerCustomizer<Objec
         }
         return properties;
     }
-    
+
     protected static Set<String> getConverterPackages(URL resource) {
         Set<String> packages = new LinkedHashSet<>();
         if (resource != null) {
diff --git 
a/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/OsgiDataFormatResolverTest.java
 
b/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/OsgiDataFormatResolverTest.java
index dab6602..0aa6ecc 100644
--- 
a/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/OsgiDataFormatResolverTest.java
+++ 
b/core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/OsgiDataFormatResolverTest.java
@@ -19,7 +19,6 @@ package org.apache.camel.core.osgi;
 import java.io.InputStream;
 import java.io.OutputStream;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.spi.DataFormat;
@@ -35,10 +34,10 @@ public class OsgiDataFormatResolverTest extends 
CamelOsgiTestSupport {
         Registry registry = new DefaultRegistry();
         registry.bind("allstar-dataformat", new SampleDataFormat(true));
 
-        CamelContext camelContext = new DefaultCamelContext(registry);
+        DefaultCamelContext camelContext = new DefaultCamelContext(registry);
+        camelContext.setDataFormatResolver(new 
OsgiDataFormatResolver(getBundleContext()));
 
-        OsgiDataFormatResolver resolver = new 
OsgiDataFormatResolver(getBundleContext());
-        DataFormat dataformat = resolver.resolveDataFormat("allstar", 
camelContext);
+        DataFormat dataformat = camelContext.resolveDataFormat("allstar");
         assertNotNull("We should find the super dataformat", dataformat);
         assertTrue("We should get the super dataformat here", dataformat 
instanceof SampleDataFormat);
     }
@@ -49,10 +48,10 @@ public class OsgiDataFormatResolverTest extends 
CamelOsgiTestSupport {
         registry.bind("allstar", new SampleDataFormat(false));
         registry.bind("allstar-dataformat", new SampleDataFormat(true));
 
-        CamelContext camelContext = new DefaultCamelContext(registry);
+        DefaultCamelContext camelContext = new DefaultCamelContext(registry);
+        camelContext.setDataFormatResolver(new 
OsgiDataFormatResolver(getBundleContext()));
 
-        OsgiDataFormatResolver resolver = new 
OsgiDataFormatResolver(getBundleContext());
-        DataFormat dataformat = resolver.resolveDataFormat("allstar", 
camelContext);
+        DataFormat dataformat = camelContext.resolveDataFormat("allstar");
         assertNotNull("We should find the super dataformat", dataformat);
         assertTrue("We should get the super dataformat here", dataformat 
instanceof SampleDataFormat);
         assertFalse("We should NOT find the fallback dataformat", 
((SampleDataFormat) dataformat).isFallback());

Reply via email to