You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gu...@apache.org on 2013/07/04 19:18:48 UTC
svn commit: r1499811 - in /felix/trunk/ipojo/manipulator/bnd-ipojo-plugin:
./ src/main/java/org/apache/felix/ipojo/bnd/
src/test/java/org/apache/felix/ipojo/bnd/
Author: guillaume
Date: Thu Jul 4 17:18:48 2013
New Revision: 1499811
URL: http://svn.apache.org/r1499811
Log:
FELIX-4155 Update bnd-ipojo-plugin for bndlib 2.x
* Clazz.getPath() is now getAbsolutePath()
* Analyzer.getReferrers() now gives Packages instead of a Map<String, Map<String, String>>
* Uses Attrs type instead of the attributes Map
* Attrs attributes can mow specify a type (Version is useful for us)
* Imports have been cleaned
Modified:
felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/pom.xml
felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndJarResourceStore.java
felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndReporter.java
felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ByteArrayResource.java
felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/Manifests.java
felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/PojoizationPlugin.java
felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ResourceMetadataProvider.java
felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/BndJarResourceStoreTestCase.java
felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/PojoizationPluginTestCase.java
Modified: felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/pom.xml?rev=1499811&r1=1499810&r2=1499811&view=diff
==============================================================================
--- felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/pom.xml (original)
+++ felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/pom.xml Thu Jul 4 17:18:48 2013
@@ -32,9 +32,9 @@
<dependencies>
<dependency>
- <groupId>biz.aQute</groupId>
+ <groupId>biz.aQute.bnd</groupId>
<artifactId>bndlib</artifactId>
- <version>1.43.0</version>
+ <version>2.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndJarResourceStore.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndJarResourceStore.java?rev=1499811&r1=1499810&r2=1499811&view=diff
==============================================================================
--- felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndJarResourceStore.java (original)
+++ felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndJarResourceStore.java Thu Jul 4 17:18:48 2013
@@ -21,32 +21,31 @@ package org.apache.felix.ipojo.bnd;
import static java.lang.String.format;
-import aQute.lib.osgi.Analyzer;
-import aQute.lib.osgi.Clazz;
-import aQute.lib.osgi.Jar;
-import aQute.lib.osgi.Resource;
-import aQute.libg.reporter.Reporter;
-import org.apache.felix.ipojo.manipulator.ResourceStore;
-import org.apache.felix.ipojo.manipulator.ResourceVisitor;
-import org.apache.felix.ipojo.manipulator.render.MetadataRenderer;
-import org.apache.felix.ipojo.manipulator.util.Constants;
-import org.apache.felix.ipojo.manipulator.util.Metadatas;
-import org.apache.felix.ipojo.manipulator.util.Streams;
-import org.apache.felix.ipojo.metadata.Element;
-
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.Set;
-import java.util.TreeMap;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
+import org.apache.felix.ipojo.manipulator.ResourceStore;
+import org.apache.felix.ipojo.manipulator.ResourceVisitor;
+import org.apache.felix.ipojo.manipulator.render.MetadataRenderer;
+import org.apache.felix.ipojo.manipulator.util.Constants;
+import org.apache.felix.ipojo.manipulator.util.Metadatas;
+import org.apache.felix.ipojo.manipulator.util.Streams;
+import org.apache.felix.ipojo.metadata.Element;
+
+import aQute.bnd.header.Attrs;
+import aQute.bnd.osgi.Analyzer;
+import aQute.bnd.osgi.Clazz;
+import aQute.bnd.osgi.Jar;
+import aQute.bnd.osgi.Resource;
+import aQute.service.reporter.Reporter;
+
public class BndJarResourceStore implements ResourceStore {
private Analyzer m_analyzer;
@@ -94,7 +93,7 @@ public class BndJarResourceStore impleme
// Iterates over discovered resources
for (Clazz clazz : classes) {
- visitor.visit(clazz.getPath());
+ visitor.visit(clazz.getAbsolutePath());
}
} catch (Exception e) {
m_reporter.error("Cannot find iPOJO annotated types: " + e.getMessage());
@@ -106,7 +105,7 @@ public class BndJarResourceStore impleme
for (Clazz clazz : classes) {
// If it is i the main jar, simply use it
- if (m_analyzer.getJar().getResource(clazz.getPath()) != null) {
+ if (m_analyzer.getJar().getResource(clazz.getAbsolutePath()) != null) {
manipulable.add(clazz);
continue;
}
@@ -114,7 +113,7 @@ public class BndJarResourceStore impleme
if (m_includeEmbedComponents) {
// Otherwise ...
// Try to see if it is in an embed dependencies
- Jar jar = findJar(clazz.getPath());
+ Jar jar = findJar(clazz.getAbsolutePath());
if (jar == null) {
m_reporter.error("Resource for class %s not found in classpath", clazz.getFQN());
continue;
@@ -165,9 +164,10 @@ public class BndJarResourceStore impleme
// Find referred packages and add them into Bnd
for (String referred : Metadatas.findReferredPackages(metadata)) {
- if (m_analyzer.getReferred().get(referred) == null) {
+ if (!m_analyzer.getReferred().containsFQN(referred)) {
// The given package is not referred ATM
- m_analyzer.getReferred().put(referred, new HashMap<String, String>());
+ m_analyzer.getReferred().put(m_analyzer.getPackageRef(referred),
+ new Attrs());
}
}
@@ -192,7 +192,7 @@ public class BndJarResourceStore impleme
Attributes main = manifest.getMainAttributes();
String components = Manifests.getComponents(main);
if (components != null) {
- m_reporter.progress("Merging components from %s", jar.getName());
+ m_reporter.trace("Merging components from %s", jar.getName());
builder.append(components);
}
} catch (Exception e) {
@@ -210,24 +210,28 @@ public class BndJarResourceStore impleme
}
// Add some mandatory imported packages
- Map<String, String> version = new TreeMap<String, String>();
- version.put("version", Constants.getPackageImportClause());
+ Attrs version = new Attrs();
+ version.put("version:Version", Constants.getPackageImportClause());
- if (m_analyzer.getReferred().get("org.apache.felix.ipojo") == null) {
- m_analyzer.getReferred().put("org.apache.felix.ipojo", version);
- }
- if (m_analyzer.getReferred().get("org.apache.felix.ipojo.architecture") == null) {
- m_analyzer.getReferred().put("org.apache.felix.ipojo.architecture", version);
- }
- if (m_analyzer.getReferred().get("org.osgi.service.cm") == null) {
- Map<String, String> cm = new TreeMap<String, String>();
- cm.put("version", "1.2");
- m_analyzer.getReferred().put("org.osgi.service.cm", cm);
- }
- if (m_analyzer.getReferred().get("org.osgi.service.log") == null) {
- Map<String, String> log = new TreeMap<String, String>();
- log.put("version", "1.3");
- m_analyzer.getReferred().put("org.osgi.service.log", log);
+ if (!m_analyzer.getReferred().containsFQN("org.apache.felix.ipojo")) {
+ m_analyzer.getReferred().put(m_analyzer.getPackageRef("org.apache.felix.ipojo"),
+ version);
+ }
+ if (!m_analyzer.getReferred().containsFQN("org.apache.felix.ipojo.architecture")) {
+ m_analyzer.getReferred().put(m_analyzer.getPackageRef("org.apache.felix.ipojo.architecture"),
+ version);
+ }
+ if (!m_analyzer.getReferred().containsFQN("org.osgi.service.cm")) {
+ Attrs cm = new Attrs();
+ cm.put("version:Version", "1.2");
+ m_analyzer.getReferred().put(m_analyzer.getPackageRef("org.osgi.service.cm"),
+ cm);
+ }
+ if (!m_analyzer.getReferred().containsFQN("org.osgi.service.log")) {
+ Attrs log = new Attrs();
+ log.put("version:Version", "1.3");
+ m_analyzer.getReferred().put(m_analyzer.getPackageRef("org.osgi.service.log"),
+ log);
}
Modified: felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndReporter.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndReporter.java?rev=1499811&r1=1499810&r2=1499811&view=diff
==============================================================================
--- felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndReporter.java (original)
+++ felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/BndReporter.java Thu Jul 4 17:18:48 2013
@@ -22,9 +22,10 @@ package org.apache.felix.ipojo.bnd;
import java.util.ArrayList;
import java.util.List;
-import aQute.libg.reporter.Reporter;
import org.apache.felix.ipojo.manipulator.reporter.EmptyReporter;
+import aQute.service.reporter.Reporter;
+
/**
* A {@code BndReporter} knows how to wrap a Bnd Reporter into an iPOJO Reporter.
*
@@ -47,7 +48,7 @@ public class BndReporter extends EmptyRe
*/
private List<String> m_warnings = new ArrayList<String>();
- public BndReporter(aQute.libg.reporter.Reporter reporter) {
+ public BndReporter(Reporter reporter) {
m_reporter = reporter;
}
@@ -66,7 +67,7 @@ public class BndReporter extends EmptyRe
@Override
public void info(String message, Object... args) {
- m_reporter.progress(message, args);
+ m_reporter.trace(message, args);
}
@Override
Modified: felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ByteArrayResource.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ByteArrayResource.java?rev=1499811&r1=1499810&r2=1499811&view=diff
==============================================================================
--- felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ByteArrayResource.java (original)
+++ felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ByteArrayResource.java Thu Jul 4 17:18:48 2013
@@ -19,7 +19,8 @@
package org.apache.felix.ipojo.bnd;
-import aQute.lib.osgi.AbstractResource;
+
+import aQute.bnd.osgi.AbstractResource;
/**
* A {@code ByteArrayResource} is ...
Modified: felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/Manifests.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/Manifests.java?rev=1499811&r1=1499810&r2=1499811&view=diff
==============================================================================
--- felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/Manifests.java (original)
+++ felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/Manifests.java Thu Jul 4 17:18:48 2013
@@ -19,11 +19,11 @@
package org.apache.felix.ipojo.bnd;
-import aQute.lib.osgi.Analyzer;
-import aQute.lib.osgi.Jar;
-
import java.util.jar.Attributes;
+import aQute.bnd.osgi.Analyzer;
+import aQute.bnd.osgi.Jar;
+
/**
* A {@code Manifests} is a utility class for extracting data from Bundle's Manifest.
*
Modified: felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/PojoizationPlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/PojoizationPlugin.java?rev=1499811&r1=1499810&r2=1499811&view=diff
==============================================================================
--- felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/PojoizationPlugin.java (original)
+++ felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/PojoizationPlugin.java Thu Jul 4 17:18:48 2013
@@ -19,11 +19,11 @@
package org.apache.felix.ipojo.bnd;
-import aQute.bnd.service.AnalyzerPlugin;
-import aQute.bnd.service.Plugin;
-import aQute.lib.osgi.Analyzer;
-import aQute.lib.osgi.Resource;
-import aQute.libg.reporter.Reporter;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
import org.apache.felix.ipojo.manipulator.ManipulationVisitor;
import org.apache.felix.ipojo.manipulator.Pojoization;
import org.apache.felix.ipojo.manipulator.ResourceStore;
@@ -35,12 +35,11 @@ import org.apache.felix.ipojo.manipulato
import org.apache.felix.ipojo.manipulator.visitor.writer.ManipulatedResourcesWriter;
import org.apache.felix.ipojo.metadata.Element;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import static org.apache.felix.ipojo.bnd.Manifests.hasEmbedComponents;
+import aQute.bnd.osgi.Analyzer;
+import aQute.bnd.osgi.Resource;
+import aQute.bnd.service.AnalyzerPlugin;
+import aQute.bnd.service.Plugin;
+import aQute.service.reporter.Reporter;
/**
* A {@code BndIpojoPlugin} is ...
@@ -108,7 +107,7 @@ public class PojoizationPlugin implement
int nbComponents = findElements(cache.getMetadatas(), "component").size();
int nbHandlers = findElements(cache.getMetadatas(), "handler").size();
- this.m_reporter.progress("iPOJO manipulation performed performed in %s ms (%d components, %d handlers).",
+ this.m_reporter.trace("iPOJO manipulation performed performed in %s ms (%d components, %d handlers).",
(System.currentTimeMillis() - start),
nbComponents,
nbHandlers);
Modified: felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ResourceMetadataProvider.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ResourceMetadataProvider.java?rev=1499811&r1=1499810&r2=1499811&view=diff
==============================================================================
--- felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ResourceMetadataProvider.java (original)
+++ felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/main/java/org/apache/felix/ipojo/bnd/ResourceMetadataProvider.java Thu Jul 4 17:18:48 2013
@@ -19,16 +19,17 @@
package org.apache.felix.ipojo.bnd;
-import aQute.lib.osgi.Resource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.felix.ipojo.manipulator.MetadataProvider;
import org.apache.felix.ipojo.manipulator.Reporter;
import org.apache.felix.ipojo.manipulator.metadata.StreamMetadataProvider;
import org.apache.felix.ipojo.metadata.Element;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
+import aQute.bnd.osgi.Resource;
/**
* A {@code ResourceMetadataProvider} is ...
Modified: felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/BndJarResourceStoreTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/BndJarResourceStoreTestCase.java?rev=1499811&r1=1499810&r2=1499811&view=diff
==============================================================================
--- felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/BndJarResourceStoreTestCase.java (original)
+++ felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/BndJarResourceStoreTestCase.java Thu Jul 4 17:18:48 2013
@@ -19,27 +19,28 @@
package org.apache.felix.ipojo.bnd;
-import aQute.lib.osgi.Analyzer;
-import aQute.lib.osgi.Clazz;
-import aQute.lib.osgi.Jar;
-import aQute.lib.osgi.Resource;
-import aQute.lib.osgi.URLResource;
-import aQute.libg.reporter.Reporter;
-import junit.framework.TestCase;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.Spy;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.verify;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+
+import aQute.bnd.osgi.Analyzer;
+import aQute.bnd.osgi.Clazz;
+import aQute.bnd.osgi.Jar;
+import aQute.bnd.osgi.Resource;
+import aQute.bnd.osgi.URLResource;
+import aQute.service.reporter.Reporter;
+import junit.framework.TestCase;
/**
* Created with IntelliJ IDEA.
@@ -143,7 +144,7 @@ public class BndJarResourceStoreTestCase
Collection<Clazz> classes = new ArrayList<Clazz>();
Resource typeResource = new URLResource(getClass().getResource("EmptyComponent.class"));
- Clazz clazz = new Clazz(path, typeResource);
+ Clazz clazz = new Clazz(analyzer, path, typeResource);
clazz.parseClassFile();
classes.add(clazz);
doReturn(classes).when(analyzer).getClasses(Matchers.<String[]>anyVararg());
Modified: felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/PojoizationPluginTestCase.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/PojoizationPluginTestCase.java?rev=1499811&r1=1499810&r2=1499811&view=diff
==============================================================================
--- felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/PojoizationPluginTestCase.java (original)
+++ felix/trunk/ipojo/manipulator/bnd-ipojo-plugin/src/test/java/org/apache/felix/ipojo/bnd/PojoizationPluginTestCase.java Thu Jul 4 17:18:48 2013
@@ -19,26 +19,22 @@
package org.apache.felix.ipojo.bnd;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
+
import java.util.HashMap;
import java.util.Map;
-import aQute.lib.osgi.Analyzer;
-import aQute.lib.osgi.Jar;
-import aQute.lib.osgi.Resource;
-import aQute.lib.osgi.URLResource;
-import aQute.libg.reporter.Reporter;
-import junit.framework.TestCase;
-import org.easymock.EasyMock;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
+import aQute.bnd.osgi.Analyzer;
+import aQute.bnd.osgi.Jar;
+import aQute.bnd.osgi.Resource;
+import aQute.bnd.osgi.URLResource;
+import aQute.service.reporter.Reporter;
+import junit.framework.TestCase;
public class PojoizationPluginTestCase extends TestCase {