directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DIRSERVER-1300) Only adding from LDIF is possible with injectEntries() in IntegrationUtils
Date Thu, 29 Jan 2009 11:21:59 GMT

    [ https://issues.apache.org/jira/browse/DIRSERVER-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12668405#action_12668405
] 

Emmanuel Lecharny commented on DIRSERVER-1300:
----------------------------------------------

Fixed in :
http://svn.apache.org/viewvc?rev=738820&view=rev

> Only adding from LDIF is possible with injectEntries() in IntegrationUtils
> --------------------------------------------------------------------------
>
>                 Key: DIRSERVER-1300
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1300
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core-integ
>    Affects Versions: 1.5.4
>            Reporter: Aleksander Adamowski
>             Fix For: 1.5.5
>
>         Attachments: apacheds-core-integ_inject_ldif-changetype_modify_support.patch
>
>
> The method org.apache.directory.server.core.integ.IntegrationUtils.injectEntries(DirectoryService,
String) only supports adding entries - it assumes that there are no changetype: something-other-than-add
entries in the LDIF. This greatly complicates modifying the intergration testing server's
schema.
> So the following LDIF cannot be currently processed by injectEntries:
> version:   1
> dn: cn=schema
> changetype: modify
> add: attributeTypes
> attributeTypes: ( 1.3.6.1.4.1.12345.1.1 NAME 'customAttr1'
>     DESC 'custom attribute 1'
>     EQUALITY caseIgnoreMatch
>     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
>     SINGLE-VALUE )
> attributeTypes: ( 1.3.6.1.4.1.12345.1.2 NAME 'customAttr2'
>     DESC 'custom attribute 2'
>     EQUALITY caseIgnoreMatch
>     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
>     SINGLE-VALUE )
> -
> add: objectClasses
> objectClasses: ( .3.6.1.4.1.12345.2.1
>     NAME 'customClass1'
>     SUP top
>     STRUCTURAL
>     MUST ( cn $ customAttr1 )
>     MAY ( customAttr2 ) )
> I've tracked down the problem and found out it's quite simple to add support for the
remaining change types:
> Index: src/main/java/org/apache/directory/server/core/integ/IntegrationUtils.java
> ===================================================================
> --- src/main/java/org/apache/directory/server/core/integ/IntegrationUtils.java	(revision
731909)
> +++ src/main/java/org/apache/directory/server/core/integ/IntegrationUtils.java	(working
copy)
> @@ -99,8 +99,19 @@
>  
>          for ( LdifEntry entry : entries )
>          {
> -            service.getAdminSession().add( 
> -                new DefaultServerEntry( service.getRegistries(), entry.getEntry() )
); 
> +            if ( entry.isChangeAdd() )
> +            {
> +                service.getAdminSession().add( new DefaultServerEntry( service.getRegistries(),
entry.getEntry() ) );
> +
> +            }
> +            else if ( entry.isChangeModify() )
> +            {
> +                service.getAdminSession().modify( entry.getDn(), entry.getModificationItems()
);
> +            }
> +            else
> +            {
> +                throw new NamingException( "Unsupported changetype found in LDIF: "
+ entry.getChangeType() );
> +            }
>          }
>      }
>  
> I'll attach the patch in a minute.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message