You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2007/03/12 01:25:53 UTC

svn commit: r517056 - /incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/Requirement.java

Author: rickhall
Date: Sun Mar 11 17:25:52 2007
New Revision: 517056

URL: http://svn.apache.org/viewvc?view=rev&rev=517056
Log:
Fixed two issues with Requirement when converting attributes to an LDAP 
filter it was adding an unnecessary "&" operator for single attributes 
and it was accidentally renaming all attributes with a value of type 
Version to "version" rather than keeping the actual name of the 
attribute.

Modified:
    incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/Requirement.java

Modified: incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/Requirement.java
URL: http://svn.apache.org/viewvc/incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/Requirement.java?view=diff&rev=517056&r1=517055&r2=517056
==============================================================================
--- incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/Requirement.java (original)
+++ incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/Requirement.java Sun Mar 11 17:25:52 2007
@@ -243,8 +243,11 @@
 
     private Filter convertToFilter()
     {
-        StringBuffer sb = new StringBuffer("(&");
-
+        StringBuffer sb = new StringBuffer();
+        if ((m_attributes != null) && (m_attributes.length > 1))
+        {
+            sb.append("(&");
+        }
         for (int i = 0; (m_attributes != null) && (i < m_attributes.length); i++)
         {
             // If this is a package import, then convert wild-carded
@@ -265,13 +268,17 @@
                 VersionRange vr = (VersionRange) m_attributes[i].getValue();
                 if (vr.isLowInclusive())
                 {
-                    sb.append("(version>=");
+                    sb.append("(");
+                    sb.append(m_attributes[i].getName());
+                    sb.append(">=");
                     sb.append(vr.getLow().toString());
                     sb.append(")");
                 }
                 else
                 {
-                    sb.append("(!(version<=");
+                    sb.append("(!(");
+                    sb.append(m_attributes[i].getName());
+                    sb.append("<=");
                     sb.append(vr.getLow().toString());
                     sb.append("))");
                 }
@@ -280,13 +287,17 @@
                 {
                     if (vr.isHighInclusive())
                     {
-                        sb.append("(version<=");
+                        sb.append("(");
+                        sb.append(m_attributes[i].getName());
+                        sb.append("<=");
                         sb.append(vr.getHigh().toString());
                         sb.append(")");
                     }
                     else
                     {
-                        sb.append("(!(version>=");
+                        sb.append("(!(");
+                        sb.append(m_attributes[i].getName());
+                        sb.append(">=");
                         sb.append(vr.getHigh().toString());
                         sb.append("))");
                     }
@@ -302,7 +313,10 @@
             }
         }
 
-        sb.append(")");
+        if ((m_attributes != null) && (m_attributes.length > 1))
+        {
+            sb.append(")");
+        }
 
         try
         {
@@ -320,4 +334,4 @@
     {
         return getNamespace() + "; " + getFilter().toString();
     }
-}
\ No newline at end of file
+}