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
+}