This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git
The following commit(s) were added to refs/heads/master by this push:
new 4c9f671 [FELIX-6337] Maven Bundle Plugin generates incorrect
Provide-Capability
new 6f12db3 Merge pull request #58 from Fenrock/felix6337
4c9f671 is described below
commit 4c9f671710b65b94432d3626fd4045a32f0ac083
Author: tadei.bilan <[email protected]>
AuthorDate: Wed Nov 4 12:03:48 2020 +0200
[FELIX-6337] Maven Bundle Plugin generates incorrect Provide-Capability
---
.../apache/felix/bundleplugin/BundlePlugin.java | 38 +++++++++++++++-------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git
a/tools/maven-bundle-plugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
b/tools/maven-bundle-plugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
index 136acb2..55eae79 100644
---
a/tools/maven-bundle-plugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++
b/tools/maven-bundle-plugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -1214,19 +1214,33 @@ public class BundlePlugin extends AbstractMojo
String header = attributes.getValue( name );
if ( header != null )
{
- Map<String, Map<String, String>> params = OSGiHeader.parseHeader(
header, null ).toBasic();
- Map<String, Map<String, String>> sorted = new TreeMap<>();
- for ( Map.Entry<String, Map<String, String>> entry :
params.entrySet() )
+ Parameters parameters = OSGiHeader.parseHeader(header, null);
+ Parameters sorted = new Parameters();
+ for ( Entry<String, Attrs> entry : parameters.entrySet() )
{
- String key = entry.getKey();
- Map<String, String> attrs = entry.getValue();
- Map<String, String> newAttrs = new TreeMap<>(
- Comparator.<String, Boolean>comparing( s ->
!s.endsWith( ":" ) ).thenComparing( s -> s ) );
- newAttrs.putAll( attrs );
- sorted.put( key, newAttrs );
- }
- String nh = new Parameters( sorted ).toString();
- attributes.putValue( name, nh );
+ {
+ String key = entry.getKey();
+ Map<String, String> attrs = entry.getValue();
+ Map<String, String> newAttrs = new TreeMap<>(
+ Comparator.<String, Boolean>comparing( s ->
!s.endsWith(":") ).thenComparing( s -> s ) );
+ newAttrs.putAll( attrs );
+ Attrs sortedAttrs = new Attrs();
+ newAttrs.forEach( (k, v) ->
+ {
+ if ( v.contains( "," ) )
+ {
+ sortedAttrs.putTyped( k, v.split( "," ) );
+ }
+ else
+ {
+ sortedAttrs.putTyped( k, v );
+ }
+ });
+ sorted.put( key, sortedAttrs );
+ }
+ String nh = sorted.toString();
+ attributes.putValue( name, nh );
+ }
}
}