FELIX-1290: warn if Embed-Dependency doesn't match any dependencies

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@810627 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AbstractDependencyFilter.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AbstractDependencyFilter.java
index 60f5a39..d19d549 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AbstractDependencyFilter.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AbstractDependencyFilter.java
@@ -112,6 +112,8 @@
 
             // CLAUSE: REGEXP --> { ATTRIBUTE MAP }
             Map.Entry clause = ( Map.Entry ) clauseIterator.next();
+            StringBuilder tag = new StringBuilder();
+            tag.append( clause.getKey() );
 
             filter = new DependencyFilter( ( String ) clause.getKey() )
             {
@@ -128,6 +130,7 @@
             {
                 // ATTRIBUTE: KEY --> REGEXP
                 Map.Entry attr = ( Map.Entry ) attrIterator.next();
+                tag.append( ';' ).append( attr );
 
                 if ( "groupId".equals( attr.getKey() ) )
                 {
@@ -221,10 +224,10 @@
                 filter.filter( filteredDependencies );
             }
 
-            processDependencies( inline, filteredDependencies );
+            processDependencies( tag.toString(), inline, filteredDependencies );
         }
     }
 
 
-    protected abstract void processDependencies( String inline, Collection filteredDependencies );
+    protected abstract void processDependencies( String clause, String inline, Collection dependencies );
 }
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
index f53ebfc..4b55175 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -384,7 +384,7 @@
 
         // update BND instructions to embed selected Maven dependencies
         Collection embeddableArtifacts = getEmbeddableArtifacts( currentProject, builder );
-        new DependencyEmbedder( embeddableArtifacts ).processHeaders( builder );
+        new DependencyEmbedder( getLog(), embeddableArtifacts ).processHeaders( builder );
 
         dumpInstructions( "BND Instructions:", builder.getProperties(), getLog() );
         dumpClasspath( "BND Classpath:", builder.getClasspath(), getLog() );
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyEmbedder.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyEmbedder.java
index 44ed717..0f56f8b 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyEmbedder.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyEmbedder.java
@@ -26,6 +26,7 @@
 import java.util.Map;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -53,6 +54,11 @@
     private String m_embedStripVersion;
 
     /**
+     * Maven logger.
+     */
+    private final Log m_log;
+
+    /**
      * Inlined paths.
      */
     private final Collection m_inlinedPaths;
@@ -63,10 +69,12 @@
     private final Collection m_embeddedArtifacts;
 
 
-    public DependencyEmbedder( Collection dependencyArtifacts )
+    public DependencyEmbedder( Log log, Collection dependencyArtifacts )
     {
         super( dependencyArtifacts );
 
+        m_log = log;
+
         m_inlinedPaths = new LinkedHashSet();
         m_embeddedArtifacts = new LinkedHashSet();
     }
@@ -115,15 +123,20 @@
 
 
     @Override
-    protected void processDependencies( String inline, Collection filteredDependencies )
+    protected void processDependencies( String tag, String inline, Collection dependencies )
     {
+        if ( dependencies.isEmpty() )
+        {
+            m_log.warn( EMBED_DEPENDENCY + ": clause \"" + tag + "\" did not match any dependencies" );
+        }
+
         if ( null == inline || "false".equalsIgnoreCase( inline ) )
         {
-            m_embeddedArtifacts.addAll( filteredDependencies );
+            m_embeddedArtifacts.addAll( dependencies );
         }
         else
         {
-            for ( Iterator i = filteredDependencies.iterator(); i.hasNext(); )
+            for ( Iterator i = dependencies.iterator(); i.hasNext(); )
             {
                 addInlinedPaths( ( Artifact ) i.next(), inline, m_inlinedPaths );
             }
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyExcluder.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyExcluder.java
index 7a2dbec..e301426 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyExcluder.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyExcluder.java
@@ -60,9 +60,9 @@
 
 
     @Override
-    protected void processDependencies( String inline, Collection filteredDependencies )
+    protected void processDependencies( String tag, String inline, Collection dependencies )
     {
-        m_excludedArtifacts.addAll( filteredDependencies );
+        m_excludedArtifacts.addAll( dependencies );
     }
 
 
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java
index b078b53..e400564 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java
@@ -188,7 +188,7 @@
 
         // Apply Embed-Dependency headers, even though the contents won't be changed
         Collection embeddableArtifacts = getEmbeddableArtifacts( project, analyzer );
-        new DependencyEmbedder( embeddableArtifacts ).processHeaders( analyzer );
+        new DependencyEmbedder( getLog(), embeddableArtifacts ).processHeaders( analyzer );
 
         analyzer.mergeManifest( analyzer.getJar().getManifest() );
         analyzer.calcManifest();