FELIX-1225 : Set factoryPid attribute of Designate element if component is a factory.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@784057 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scrplugin/pom.xml b/scrplugin/pom.xml
index 3e4342a..1402dc5 100644
--- a/scrplugin/pom.xml
+++ b/scrplugin/pom.xml
@@ -109,7 +109,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
- <version>0.9.1-SNAPSHOT</version>
+ <version>0.9.0</version>
</dependency>
</dependencies>
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
index a8e4a73..2c01c23 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
@@ -434,7 +434,11 @@
// designate
final Designate designate = new Designate();
metaData.addDesignate(designate);
- designate.setPid(component.getName());
+ if ( component.getFactory() != null ) {
+ designate.setFactoryPid(component.getName());
+ } else {
+ designate.setPid(component.getName());
+ }
// designate.object
final MTObject mtobject = new MTObject();
designate.setObject(mtobject);
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/om/metatype/Designate.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/om/metatype/Designate.java
index d558065..6354505 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/om/metatype/Designate.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/om/metatype/Designate.java
@@ -22,6 +22,8 @@
protected String pid;
+ protected String factoryPid;
+
protected MTObject object;
public String getPid() {
@@ -32,6 +34,14 @@
this.pid = pid;
}
+ public String getFactoryPid() {
+ return this.factoryPid;
+ }
+
+ public void setFactoryPid(String pid) {
+ this.factoryPid = pid;
+ }
+
public MTObject getObject() {
return this.object;
}
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/xml/MetaTypeIO.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/xml/MetaTypeIO.java
index 978a7a7..7bb4f36 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/xml/MetaTypeIO.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/xml/MetaTypeIO.java
@@ -178,6 +178,7 @@
throws SAXException {
final AttributesImpl ai = new AttributesImpl();
IOUtils.addAttribute(ai, "pid", designate.getPid());
+ IOUtils.addAttribute(ai, "factoryPid", designate.getFactoryPid());
IOUtils.indent(contentHandler, 1);
contentHandler.startElement(INNER_NAMESPACE_URI, DESIGNATE_ELEMENT, DESIGNATE_ELEMENT_QNAME, ai);
IOUtils.newline(contentHandler);