You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2013/09/24 17:08:39 UTC
svn commit: r1525919 - in
/karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features:
FeatureMetaDataExporter.java model/BundleRef.java
Author: cschneider
Date: Tue Sep 24 15:08:38 2013
New Revision: 1525919
URL: http://svn.apache.org/r1525919
Log:
KARAF-2484 Add some more meta data and fix root element name
Modified:
karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/FeatureMetaDataExporter.java
karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/BundleRef.java
Modified: karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/FeatureMetaDataExporter.java
URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/FeatureMetaDataExporter.java?rev=1525919&r1=1525918&r2=1525919&view=diff
==============================================================================
--- karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/FeatureMetaDataExporter.java (original)
+++ karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/FeatureMetaDataExporter.java Tue Sep 24 15:08:38 2013
@@ -27,6 +27,7 @@ import javax.xml.stream.events.StartDocu
import org.apache.karaf.tooling.features.model.BundleRef;
import org.apache.karaf.tooling.features.model.Feature;
+import org.apache.maven.artifact.Artifact;
/**
* Export feature meta data as xml into a stream
@@ -43,7 +44,7 @@ public class FeatureMetaDataExporter {
StartDocument startDocument = factory.createStartDocument();
writer.add(startDocument);
newLine();
- writer.add(factory.createStartElement("", "", "bundles"));
+ writer.add(factory.createStartElement("", "", "features"));
newLine();
}
@@ -62,8 +63,13 @@ public class FeatureMetaDataExporter {
if (bundle.getArtifact()!=null) {
String name = MavenUtil.getFileName(bundle.getArtifact());
writer.add(factory.createAttribute("name", name));
+ Artifact artifact = bundle.getArtifact();
+ bundle.readManifest();
+ writer.add(factory.createAttribute("Bundle-SymbolicName", bundle.getBundleSymbolicName()));
+ writer.add(factory.createAttribute("Bundle-Version", bundle.getBundleVersion()));
+ writer.add(factory.createAttribute("version", artifact.getVersion()));
}
-
+
writer.add(factory.createCharacters(bundle.getUrl()));
endElement("bundle");
}
@@ -80,7 +86,7 @@ public class FeatureMetaDataExporter {
}
public void close() throws XMLStreamException {
- endElement("bundles");
+ endElement("features");
writer.add(factory.createEndDocument());
writer.close();
}
Modified: karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/BundleRef.java
URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/BundleRef.java?rev=1525919&r1=1525918&r2=1525919&view=diff
==============================================================================
--- karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/BundleRef.java (original)
+++ karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/BundleRef.java Tue Sep 24 15:08:38 2013
@@ -17,12 +17,19 @@
*/
package org.apache.karaf.tooling.features.model;
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.jar.JarInputStream;
+import java.util.jar.Manifest;
+
import org.apache.maven.artifact.Artifact;
public class BundleRef {
String url;
Integer startLevel;
Artifact artifact;
+ String bundleSymbolicName;
+ String bundleVersion;
public BundleRef(String url, Integer startLevel) {
super();
@@ -45,5 +52,27 @@ public class BundleRef {
public void setArtifact(Artifact artifact) {
this.artifact = artifact;
}
+
+ public void readManifest() {
+ JarInputStream bundleJar = null;
+ try {
+ File file = artifact.getFile();
+ bundleJar = new JarInputStream(new FileInputStream(file));
+ Manifest manifest = bundleJar.getManifest();
+ bundleSymbolicName = manifest.getMainAttributes().getValue("Bundle-SymbolicName");
+ bundleVersion = manifest.getMainAttributes().getValue("Bundle-Version");
+ bundleJar.close();
+ } catch (Exception e) {
+ // Ignore errors in manifest
+ }
+ }
+
+ public String getBundleSymbolicName() {
+ return bundleSymbolicName;
+ }
+
+ public String getBundleVersion() {
+ return bundleVersion;
+ }
}