[DOSGI-229] Remove wrongly added method from API again
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java
index ec804be..fad6b03 100644
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java
+++ b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java
@@ -50,10 +50,4 @@
                           EndpointDescription endpoint)
         throws IntentUnsatisfiedException;
     
-    /**
-     * 
-     * @param endpoint
-     * @return if the provider can handle any of the config types of the endpoint
-     */
-    boolean canHandle(EndpointDescription endpoint);
 }
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
index 60f8222..9cbb839 100644
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
+++ b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
@@ -276,9 +276,4 @@
         }
     }
     
-    @Override
-    public boolean canHandle(EndpointDescription endpoint) {
-        // Will be handled by CXFDistributionProvider at the moment
-        throw new IllegalStateException();
-    }
 }
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/CXFDistributionProvider.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/CXFDistributionProvider.java
index 27aff63..dad4a89 100644
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/CXFDistributionProvider.java
+++ b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/CXFDistributionProvider.java
@@ -170,8 +170,4 @@
         return supportedConfigurationTypes;
     }
 
-    @Override
-    public boolean canHandle(EndpointDescription endpoint) {
-        return determineConfigTypesForImport(endpoint).size() > 0;
-    }
 }
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCore.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCore.java
index 55a53aa..2a3469c 100644
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCore.java
+++ b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/service/RemoteServiceAdminCore.java
@@ -315,7 +315,7 @@
                 return ir;
             }
 
-            if (!provider.canHandle(endpoint)) {
+            if (determineConfigTypesForImport(endpoint).size() == 0) {
                 LOG.info("No matching handler can be found for remote endpoint {}.", endpoint.getId());
                 return null;
             }
@@ -347,6 +347,21 @@
             return imReg;
         }
     }
+    
+    private List<String> determineConfigTypesForImport(EndpointDescription endpoint) {
+        List<String> remoteConfigurationTypes = endpoint.getConfigurationTypes();
+
+        List<String> usableConfigurationTypes = new ArrayList<String>();
+        for (String ct : provider.getSupportedTypes()) {
+            if (remoteConfigurationTypes.contains(ct)) {
+                usableConfigurationTypes.add(ct);
+            }
+        }
+
+        LOG.info("Ignoring endpoint {} as it has no compatible configuration types: {}.", 
+                 endpoint.getId(), remoteConfigurationTypes);
+        return usableConfigurationTypes;
+    }
 
     protected ImportRegistrationImpl exposeServiceFactory(String interfaceName,
                                             EndpointDescription epd,