add [revision] to destpattern in sigil.bundle ant task. FELIX-2290
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@935913 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/common/core/src/org/apache/felix/sigil/bnd/BundleBuilder.java b/sigil/common/core/src/org/apache/felix/sigil/bnd/BundleBuilder.java
index 6fe195e..ca371fd 100644
--- a/sigil/common/core/src/org/apache/felix/sigil/bnd/BundleBuilder.java
+++ b/sigil/common/core/src/org/apache/felix/sigil/bnd/BundleBuilder.java
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -75,8 +76,10 @@
*
* @param classpath
* @param destPattern
- * ivy-like pattern: PATH/[id].[ext] [id] is replaced with the
- * bundle id. [name] is replaced with the Bundle-SymbolicName
+ * ivy-like pattern: PATH/[name]-[revision].[ext].
+ * [id] is replaced with the bundle id.
+ * [name] is replaced with the Bundle-SymbolicName
+ * [revision] is replaced with the Bundle-Version
* [ext] is replaced with "jar".
* @param hashtable
*/
@@ -168,13 +171,14 @@
String dest = destPattern.replaceFirst("\\[id\\]", bundle.getId());
dest = dest.replaceFirst("\\[name\\]", bundle.getSymbolicName());
+ dest = dest.replaceFirst("\\[revision\\]", bundle.getVersion());
dest = dest.replaceFirst("\\[ext\\]", "jar");
bracket = dest.indexOf('[');
if (bracket >= 0)
{
String token = dest.substring(bracket);
- throw new Exception("destPattern: expected [id] or [name]: " + token);
+ throw new Exception("destPattern: expected [id], [name] or [revision]: " + token);
}
errors.clear();
@@ -185,6 +189,7 @@
if (log != null)
{
log.verbose("BND instructions: " + spec.toString());
+ log.verbose("BND classpath: " + Arrays.asList(classpath));
}
Builder builder = new Builder();
@@ -199,6 +204,10 @@
convertErrors("BND: ", builder.getErrors());
convertWarnings("BND: ", builder.getWarnings());
+
+ Attributes main = jar.getManifest().getMainAttributes();
+ String expHeader = main.getValue(Constants.EXPORT_PACKAGE);
+ log.verbose("BND exports: " + expHeader);
augmentImports(builder, jar, bundle);
diff --git a/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleTask.java b/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleTask.java
index 7fce3d4..0f0d1f3 100644
--- a/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleTask.java
+++ b/sigil/ivy/resolver/src/org/apache/felix/sigil/ant/BundleTask.java
@@ -42,6 +42,7 @@
private boolean force;
private String property;
private String sigilFile;
+ private String revision;
@Override
public void execute() throws BuildException
@@ -129,6 +130,12 @@
log(id + ": " + count(nErr, "error") + ", " + count(nWarn, "warning")
+ msg);
}
+
+ if (revision != null)
+ {
+ // FIXME: hopefully if we have multiple bundles they all have the same version
+ getProject().setProperty(revision, bundle.getVersion());
+ }
}
if (anyModified && property != null)
@@ -168,6 +175,11 @@
this.property = property;
}
+ public void setRevision(String revision)
+ {
+ this.revision = revision;
+ }
+
public void setClasspathref(String value)
{
Path p = (Path) getProject().getReference(value);