You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/09/04 16:30:42 UTC

[camel-karaf] 01/02: CAMEL-14672: Invoke customizers as part of services initialization

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 <lb...@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());