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();