You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2010/01/04 00:13:59 UTC
svn commit: r895505 - in /directory/shared/branches/shared-schema/ldap/src:
main/antlr/ main/java/org/apache/directory/shared/ldap/name/
test/java/org/apache/directory/shared/ldap/name/
Author: elecharny
Date: Sun Jan 3 23:13:57 2010
New Revision: 895505
URL: http://svn.apache.org/viewvc?rev=895505&view=rev
Log:
Fixed some issues with AVAs
Modified:
directory/shared/branches/shared-schema/ldap/src/main/antlr/distinguishedName.g
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/ComplexLdapDnParser.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/FastLdapDnParser.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java
directory/shared/branches/shared-schema/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java
Modified: directory/shared/branches/shared-schema/ldap/src/main/antlr/distinguishedName.g
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/antlr/distinguishedName.g?rev=895505&r1=895504&r2=895505&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/antlr/distinguishedName.g (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/antlr/distinguishedName.g Sun Jan 3 23:13:57 2010
@@ -148,6 +148,7 @@
}
static class UpAndNormValue
{
+ String name = "";
String upValue = "";
Object normValue = "";
String trailingSpaces = "";
@@ -299,19 +300,31 @@
{
try
{
+ upName += value.name;
+ AttributeTypeAndValue ava = null;
+
if ( value.normValue instanceof String )
{
- rdn.addAttributeTypeAndValue( type, type,
+ ava = new AttributeTypeAndValue(
+ type,
+ type,
new ClientStringValue( value.upValue ),
- new ClientStringValue( (String)value.normValue ) );
+ new ClientStringValue( (String)value.normValue ),
+ upName
+ );
}
else
{
- rdn.addAttributeTypeAndValue( type, type,
+ ava = new AttributeTypeAndValue(
+ type,
+ type,
new ClientStringValue( value.upValue ),
- new ClientBinaryValue( (byte[])value.normValue ) );
+ new ClientBinaryValue( (byte[])value.normValue ),
+ upName
+ );
}
- { upName += value.upValue + value.trailingSpaces; }
+
+ rdn.addAttributeTypeAndValue( ava );
}
catch ( InvalidNameException e )
{
@@ -502,12 +515,14 @@
tmp = lutf1
{
value.upValue += tmp;
+ value.name += tmp;
bb.append( StringTools.getBytesUtf8( tmp ) );
}
|
tmp = utfmb
{
value.upValue += tmp;
+ value.name += tmp;
bb.append( StringTools.getBytesUtf8( tmp ) );
}
|
@@ -517,12 +532,14 @@
tmp = sutf1
{
value.upValue += tmp;
+ value.name += tmp;
bb.append( StringTools.getBytesUtf8( tmp ) );
}
|
tmp = utfmb
{
value.upValue += tmp;
+ value.name += tmp;
bb.append( StringTools.getBytesUtf8( tmp ) );
}
|
@@ -658,7 +675,8 @@
(
ESCESC
{
- value.upValue += "\\\\";
+ value.upValue += "\\";
+ value.name += "\\\\";
pair = StringTools.getBytesUtf8( "\\" );
}
)
@@ -666,16 +684,18 @@
(
ESCSHARP
{
- value.upValue += "\\#";
+ value.upValue += "#";
+ value.name += "\\#";
pair = StringTools.getBytesUtf8( "#" );
}
)
|
(
- ESC { value.upValue += "\\"; }
+ ESC
tmp = special
{
value.upValue += tmp;
+ value.name += "\\" + tmp;
pair = StringTools.getBytesUtf8( tmp );
}
)
@@ -683,7 +703,8 @@
(
hexpair:HEXPAIR
{
- value.upValue += "\\" + hexpair.getText();
+ value.upValue += hexpair.getText();
+ value.name += "\\" + hexpair.getText();
pair = StringTools.toByteArray( hexpair.getText() );
}
)
@@ -724,11 +745,3 @@
)
;
-
-
-
-
-
-
-
-
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/ComplexLdapDnParser.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/ComplexLdapDnParser.java?rev=895505&r1=895504&r2=895505&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/ComplexLdapDnParser.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/ComplexLdapDnParser.java Sun Jan 3 23:13:57 2010
@@ -46,6 +46,7 @@
public void parseDn( String name, List<Rdn> rdns ) throws InvalidNameException
{
AntlrDnParser dnParser = new AntlrDnParser( new AntlrDnLexer( new StringReader( name ) ) );
+
try
{
dnParser.relativeDistinguishedNames( rdns );
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/FastLdapDnParser.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/FastLdapDnParser.java?rev=895505&r1=895504&r2=895505&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/FastLdapDnParser.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/FastLdapDnParser.java Sun Jan 3 23:13:57 2010
@@ -82,7 +82,7 @@
void parseDn( String name, List<Rdn> rdns ) throws InvalidNameException
{
- if ( name == null || name.trim().length() == 0 )
+ if ( ( name == null ) || ( name.trim().length() == 0 ) )
{
// We have an empty DN, just get out of the function.
return;
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java?rev=895505&r1=895504&r2=895505&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java Sun Jan 3 23:13:57 2010
@@ -402,7 +402,7 @@
sb.append( ',' );
}
- sb.append( rdn );
+ sb.append( rdn.getNormName() );
}
String newNormName = sb.toString();
@@ -1462,13 +1462,16 @@
}
else
{
- OidNormalizer oidNormalizer = oidsMap.get( type );
+ OidNormalizer oidNormalizer = oidsMap.get( type.toLowerCase() );
if ( oidNormalizer != null )
{
- return new AttributeTypeAndValue( atav.getUpType(), oidNormalizer.getAttributeTypeOid(),
- atav.getUpValue(),
- oidNormalizer.getNormalizer().normalize( atav.getNormValue() ) );
+ return new AttributeTypeAndValue(
+ atav.getUpType(),
+ oidNormalizer.getAttributeTypeOid(),
+ atav.getUpValue(),
+ oidNormalizer.getNormalizer().normalize( atav.getNormValue() ),
+ atav.getUpName() );
}
else
@@ -1530,7 +1533,7 @@
for ( AttributeTypeAndValue val:rdnCopy )
{
AttributeTypeAndValue newAtav = atavOidToName( val, oidsMap );
- rdn.addAttributeTypeAndValue( val.getUpType(), newAtav.getNormType(), val.getUpValue(), newAtav.getNormValue() );
+ rdn.addAttributeTypeAndValue( newAtav );
}
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java?rev=895505&r1=895504&r2=895505&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/name/Rdn.java Sun Jan 3 23:13:57 2010
@@ -490,7 +490,7 @@
{
case 0:
// This is the first AttributeTypeAndValue. Just stores it.
- this.atav = value;
+ atav = value;
nbAtavs = 1;
atavType = normalizedType;
return;
@@ -502,9 +502,9 @@
atavs = new TreeSet<AttributeTypeAndValue>();
// and store the existing AttributeTypeAndValue into it.
- atavs.add( this.atav );
+ atavs.add( atav );
atavTypes = new MultiValueMap();
- atavTypes.put( atavType, this.atav );
+ atavTypes.put( atavType, atav );
this.atav = null;
Modified: directory/shared/branches/shared-schema/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java?rev=895505&r1=895504&r2=895505&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java Sun Jan 3 23:13:57 2010
@@ -3400,7 +3400,7 @@
assertEquals( " cn = Amos\\,Tori ", dn1.getRdn().getUpName() );
AttributeTypeAndValue atav1 = dn1.getRdn().getAtav();
assertEquals( "cn", atav1.getUpType() );
- assertEquals( "Amos\\,Tori", atav1.getUpValue().getString() );
+ assertEquals( "Amos,Tori", atav1.getUpValue().getString() );
// antlr parser: hexstring with trailing spaces
LdapDN dn3 = new LdapDN( " cn = #414243 , ou=system " );
@@ -3564,8 +3564,7 @@
assertEquals( "ou", atav.getUpType() );
assertEquals( "Example", atav.getUpValue().get() );
- // Wrong !!! TODO : fix me
- assertEquals( " ou = Example ", atav.getUpName() );
+ assertEquals( "ou = Example ", atav.getUpName() );
assertEquals( 2, rdn.getNbAtavs() );
@@ -3603,7 +3602,7 @@
assertEquals( "ex+mple",rdn.getNormValue() );
assertEquals( "2.5.4.11=ex\\+mple", rdn.getNormName() );
assertEquals( "ou", rdn.getUpType() );
- assertEquals( "Ex\\+mple",rdn.getUpValue() );
+ assertEquals( "Ex+mple",rdn.getUpValue() );
assertEquals( " ou = Ex\\+mple ", rdn.getUpName() );
AttributeTypeAndValue atav = rdn.getAtav();
@@ -3613,10 +3612,10 @@
assertEquals( "ex+mple", atav.getNormValue().get() );
assertEquals( "ou", atav.getUpType() );
- assertEquals( "Ex\\+mple", atav.getUpValue().get() );
+ assertEquals( "Ex+mple", atav.getUpValue().get() );
// Wrong !!! TODO : fix me
- assertEquals( " ou = Ex\\+mple ", atav.getUpName() );
+ assertEquals( "ou = Ex\\+mple", atav.getUpName() );
}
@@ -3625,11 +3624,25 @@
{
LdapDN dn = new LdapDN( " OU = Ex\\+mple + ou = T\\+ST , ou = COM " );
+ // Before normalization
+ assertEquals( " OU = Ex\\+mple + ou = T\\+ST , ou = COM ", dn.getName() );
+ assertEquals( "ou=Ex\\+mple+ou=T\\+ST,ou=COM", dn.getNormName() );
+
+ // Check the first RDN
+ Rdn rdn = dn.getRdn();
+ assertEquals( "OU", rdn.getUpType() );
+ assertEquals( "ou", rdn.getNormType() );
+
+ assertEquals( "Ex+mple",rdn.getUpValue() );
+ assertEquals( "Ex+mple",rdn.getNormValue() );
+
+ // Now normalize the DN
dn.normalize( oidOids );
+
assertEquals( " OU = Ex\\+mple + ou = T\\+ST , ou = COM ", dn.getName() );
assertEquals( "2.5.4.11=ex\\+mple+2.5.4.11=t\\+st,2.5.4.11=com", dn.getNormName() );
- Rdn rdn = dn.getRdn();
+ rdn = dn.getRdn();
assertEquals( " OU = Ex\\+mple + ou = T\\+ST ", rdn.getUpName() );
assertEquals( "2.5.4.11=ex\\+mple+2.5.4.11=t\\+st", rdn.getNormName() );
@@ -3637,22 +3650,19 @@
assertEquals( "OU", rdn.getUpType() );
assertEquals( "2.5.4.11", rdn.getNormType() );
- // TODO : Wrong, fix me
- //assertEquals( "Ex+mple",rdn.getUpValue() );
+ assertEquals( "Ex+mple",rdn.getUpValue() );
assertEquals( "ex+mple",rdn.getNormValue() );
// The first ATAV
AttributeTypeAndValue atav = rdn.getAtav();
- // TODO : Wrong, fix me
- //assertEquals( " OU = Ex\\+mple ", atav.getUpName() );
+ assertEquals( "OU = Ex\\+mple ", atav.getUpName() );
assertEquals( "2.5.4.11=ex\\+mple", atav.getNormName() );
assertEquals( "2.5.4.11", atav.getNormType() );
assertEquals( "OU", atav.getUpType() );
- // TODO : Wrong, fix me
- //assertEquals( "Ex+mple", atav.getUpValue().get() );
+ assertEquals( "Ex+mple", atav.getUpValue().get() );
assertEquals( "ex+mple", atav.getNormValue().get() );
assertEquals( 2, rdn.getNbAtavs() );
@@ -3666,7 +3676,7 @@
continue;
}
- assertEquals( " ou = T\\+ST ", atav.getUpName() );
+ assertEquals( "ou = T\\+ST ", atav.getUpName() );
assertEquals( "2.5.4.11=t\\+st", atav.getNormName() );
assertEquals( "ou", atav.getUpType() );