FELIX-1023: apply modified patch (follow existing code pattern) to add category information
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@810596 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundleplugin/src/main/java/org/apache/felix/obrplugin/ExtractBindexInfo.java b/bundleplugin/src/main/java/org/apache/felix/obrplugin/ExtractBindexInfo.java
index aadebcb..62edc53 100644
--- a/bundleplugin/src/main/java/org/apache/felix/obrplugin/ExtractBindexInfo.java
+++ b/bundleplugin/src/main/java/org/apache/felix/obrplugin/ExtractBindexInfo.java
@@ -183,6 +183,24 @@
/**
+ * extract categories from bindex information.
+ * @return bundle categories List
+ */
+ public List getCategories()
+ {
+ List list = new ArrayList();
+ String[] res = m_resource.getCategories();
+ for (int i = 0; i < res.length; i++)
+ {
+ Category category = new Category();
+ category.setId( res[i] );
+ list.add( category );
+ }
+ return list;
+ }
+
+
+ /**
* extract symbolic name from bindex information.
* @return bundle symbolic name
*/
diff --git a/bundleplugin/src/main/java/org/apache/felix/obrplugin/ResourcesBundle.java b/bundleplugin/src/main/java/org/apache/felix/obrplugin/ResourcesBundle.java
index ed337ef..22d3538 100644
--- a/bundleplugin/src/main/java/org/apache/felix/obrplugin/ResourcesBundle.java
+++ b/bundleplugin/src/main/java/org/apache/felix/obrplugin/ResourcesBundle.java
@@ -570,6 +570,12 @@
addRequire( ( Require ) requirement.get( i ) );
}
+ List categories = ebi.getCategories();
+ for ( int i = 0; i < categories.size(); i++ )
+ {
+ addCategory( ( Category ) categories.get( i ) );
+ }
+
// we also add the goupId
Category category = new Category();
category.setId( project.getGroupId() );
diff --git a/bundleplugin/src/main/java/org/osgi/impl/bundle/obr/resource/BundleInfo.java b/bundleplugin/src/main/java/org/osgi/impl/bundle/obr/resource/BundleInfo.java
index 64f3af5..2a2b554 100644
--- a/bundleplugin/src/main/java/org/osgi/impl/bundle/obr/resource/BundleInfo.java
+++ b/bundleplugin/src/main/java/org/osgi/impl/bundle/obr/resource/BundleInfo.java
@@ -1,5 +1,5 @@
/*
- * $Id: BundleInfo.java 95 2009-01-19 13:21:52Z peter.kriens@aqute.biz $
+ * $Id: BundleInfo.java 96 2009-08-26 13:44:04Z peter.kriens@aqute.biz $
*
* Copyright (c) OSGi Alliance (2002, 2006, 2007). All Rights Reserved.
*
@@ -28,7 +28,7 @@
* Convert a bundle to a generic resource description and store its local
* dependencies (like for example a license file in the JAR) in a zip file.
*
- * @version $Revision: 95 $
+ * @version $Revision: 96 $
*/
public class BundleInfo {
Manifest manifest;
@@ -288,12 +288,12 @@
r.setFilter(sb.toString());
r.setComment("Require Bundle " + entry.getName() + "; " + v);
- if (entry.directives == null
- || "true".equalsIgnoreCase((String) entry.directives
+ if (entry.directives != null
+ && "optional".equalsIgnoreCase((String) entry.directives
.get("resolution")))
- r.setOptional(false);
- else
r.setOptional(true);
+ else
+ r.setOptional(false);
resource.addRequirement(r);
}
}