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);
 		}
 	}