Author: gnodet
Date: Fri Mar 18 13:13:28 2011
New Revision: 1082904

URL: http://svn.apache.org/viewvc?rev=1082904&view=rev
Log:
FELIX-2884 - The multiplicity isn't taken into account by the maven bundle 
plugin and bundlerepository when generating the repository xml

Modified:
    felix/trunk/bundleplugin/pom.xml
    
felix/trunk/bundleplugin/src/main/resources/org/apache/felix/bundleplugin/blueprint.xsl
    felix/trunk/bundlerepository/pom.xml
    
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java

Modified: felix/trunk/bundleplugin/pom.xml
URL: 
http://svn.apache.org/viewvc/felix/trunk/bundleplugin/pom.xml?rev=1082904&r1=1082903&r2=1082904&view=diff
==============================================================================
--- felix/trunk/bundleplugin/pom.xml (original)
+++ felix/trunk/bundleplugin/pom.xml Fri Mar 18 13:13:28 2011
@@ -66,7 +66,7 @@
   <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.bundlerepository</artifactId>
-      <version>1.6.2</version>
+      <version>1.6.5-SNAPSHOT</version>
   </dependency>
   <dependency>
     <groupId>org.apache.felix</groupId>

Modified: 
felix/trunk/bundleplugin/src/main/resources/org/apache/felix/bundleplugin/blueprint.xsl
URL: 
http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/resources/org/apache/felix/bundleplugin/blueprint.xsl?rev=1082904&r1=1082903&r2=1082904&view=diff
==============================================================================
--- 
felix/trunk/bundleplugin/src/main/resources/org/apache/felix/bundleplugin/blueprint.xsl
 (original)
+++ 
felix/trunk/bundleplugin/src/main/resources/org/apache/felix/bundleplugin/blueprint.xsl
 Fri Mar 18 13:13:28 2011
@@ -88,8 +88,8 @@
             </xsl:text>
         </xsl:for-each>
 
-        <xsl:for-each select="//bp:reference[@interface] | 
//bp:reference-list[@interface]">
-            <xsl:value-of select="concat('Import-Service:', @interface)" />
+        <xsl:for-each select="//bp:reference[@interface]">
+            <xsl:value-of select="concat('Import-Service:', @interface, 
';multiple:=false')" />
             <xsl:choose>
                 <xsl:when test="@availability">
                     <xsl:value-of select="concat(';availability:=', 
@availability)"/>
@@ -125,7 +125,44 @@
             </xsl:text>
         </xsl:for-each>
 
-    </xsl:template>
+        <xsl:for-each select="//bp:reference-list[@interface]">
+            <xsl:value-of select="concat('Import-Service:', @interface, 
';multiple:=true')"/>
+            <xsl:choose>
+                <xsl:when test="@availability">
+                    <xsl:value-of select="concat(';availability:=', 
@availability)"/>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:choose>
+                        <xsl:when test="/bp:blueprint/@default-availability">
+                            <xsl:value-of select="concat(';availability:=', 
/bp:blueprint/@default-availability)"/>
+                        </xsl:when>
+                    </xsl:choose>
+                </xsl:otherwise>
+            </xsl:choose>
+            <xsl:choose>
+                <xsl:when test="@filter">
+                    <xsl:choose>
+                        <xsl:when test="@component-name">
+                            <xsl:value-of 
select="concat(';filter=&quot;(&amp;', @filter, 
')(osgi.service.blueprint.compname=',  @component-name, ')&quot;')" />
+                         </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:value-of select="concat(';filter=&quot;', 
@filter, '&quot;')" />
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:choose>
+                        <xsl:when test="@component-name">
+                            <xsl:value-of 
select="concat(';filter=&quot;(osgi.service.blueprint.compname=', 
@component-name, ')&quot;')" />
+                        </xsl:when>
+                    </xsl:choose>
+                </xsl:otherwise>
+            </xsl:choose>
+            <xsl:text>
+            </xsl:text>
+        </xsl:for-each>
+
+   </xsl:template>
 
 </xsl:stylesheet>
 

Modified: felix/trunk/bundlerepository/pom.xml
URL: 
http://svn.apache.org/viewvc/felix/trunk/bundlerepository/pom.xml?rev=1082904&r1=1082903&r2=1082904&view=diff
==============================================================================
--- felix/trunk/bundlerepository/pom.xml (original)
+++ felix/trunk/bundlerepository/pom.xml Fri Mar 18 13:13:28 2011
@@ -109,7 +109,7 @@
             <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
             
<Export-Service>org.apache.felix.bundlerepository.RepositoryAdmin,org.osgi.service.obr.RepositoryAdmin</Export-Service>
             
<_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
-            
<Include-Resource>META-INF/LICENSE=LICENSE,META-INF/LICENSE.kxml2=LICENSE.kxml2,META-INF/NOTICE=NOTICE,META-INF/DEPENDENCIES=DEPENDENCIES,{src/main/resources/}</Include-Resource>
+            
<Include-Resource>META-INF/LICENSE=LICENSE,META-INF/LICENSE.kxml2=LICENSE.kxml2,META-INF/NOTICE=NOTICE,META-INF/DEPENDENCIES=DEPENDENCIES</Include-Resource>
           </instructions>
         </configuration>
       </plugin>

Modified: 
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java?rev=1082904&r1=1082903&r2=1082904&view=diff
==============================================================================
--- 
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java
 (original)
+++ 
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java
 Fri Mar 18 13:13:28 2011
@@ -575,8 +575,9 @@ public class DataModelHelperImpl impleme
             ri.addText("Import Service " + imports[i].getName());
 
             String avail = imports[i].getDirective("availability");
+            String mult = imports[i].getDirective("multiple");
             ri.setOptional("optional".equalsIgnoreCase(avail));
-            ri.setMultiple(true);
+            ri.setMultiple(!"false".equalsIgnoreCase(mult));
             resource.addRequire(ri);
         }
 


Reply via email to