directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carsten Kaiser <carsten.kai...@valtech.de>
Subject Re: Problem with sorting of ldif files on Linux
Date Tue, 28 Sep 2010 10:11:20 GMT
Yes, you're right.

Kind regards,
CAK

Am 28.09.2010 um 11:59 schrieb Pierre-Arnaud Marcelot:

> Hi,
> 
> Are you referring to this ApacheDS Maven Plugin?
> 
> http://alchemy.grimoire.ca/m2/sites/ca.grimoire.maven/apacheds-maven-plugin/
> 
> Regards,
> Pierre-Arnaud
> 
> 
> On 28 sept. 2010, at 11:48, Carsten Kaiser wrote:
> 
>> Hi there,
>> 
>> we are using ApacheDS respectively the Maven ApacheDS Plugin to run our integration
tests against a clean LDAP server instance and therefore populate
>> it with the according schema information and setup data on test startup. We have
different ldif files for schema and setup data especially named in alphabetical order
>> to ensure, that the schema information is loaded before the setup data. Although
this works fine for e.g. on MacOSX it does not work on Linux due to the following
>> Code Snippet from class org.apache.directory.server.configuration.ApacheDS
>> 
>>> else
>>> <1x1.gif>436<1x1.gif>        {
>>> <1x1.gif>437<1x1.gif>            // get all the ldif files within
the directory (should be sorted alphabetically)
>>> <1x1.gif>438<1x1.gif>            File[] ldifFiles = ldifDirectory.listFiles(
new FileFilter()
>>> <1x1.gif>439<1x1.gif>            {
>>> <1x1.gif>440<1x1.gif>                public boolean <1x1.gif>accept(
File pathname )
>>> <1x1.gif>441<1x1.gif>                {
>>> <1x1.gif>442<1x1.gif>                    boolean isLdif = pathname.getName().toLowerCase().endsWith(
".ldif" );
>>> <1x1.gif>443<1x1.gif>                    return pathname.isFile()
&& pathname.canRead() && isLdif;
>>> <1x1.gif>444<1x1.gif>                }
>>> <1x1.gif>445<1x1.gif>            } );
>> 
>> According to Javadoc of class java.io.File
>> 
>> Returns an array of abstract pathnames denoting the files in the directory denoted
by this abstract pathname.
>> If this abstract pathname does not denote a directory, then this method returns null.
Otherwise an array of File objects is returned, one for each file or directory in the directory.
Pathnames denoting the directory itself and the directory's parent directory are not included
in the result. Each resulting abstract pathname is constructed from this abstract pathname
using the File(File, String) constructor. Therefore if this pathname is absolute then each
resulting pathname is absolute; if this pathname is relative then each resulting pathname
will be relative to the same directory.
>> 
>> -> There is no guarantee that the name strings in the resulting array will appear
in any specific order; they are not, in particular, guaranteed to appear in alphabetical order.
>> 
>> the assumption stated in the code snippet above is not valid and depends on the platform
resp. Java implementation.
>> 
>> In order to be platform independent the retrieved array of ldif files should be sorted
in alphabetical order explicitly after retrieval.
>> 
>> Since I'm not a committer could someone please provide a patch for this problem?
>> 
>> When will the next version of the maven ApacheDS plugin be available depending on
the most current ApacheDS version (hopefully including a fix for this problem)? Currently
it refers to 1.5.5...
>> 
>> Kind regards,
>> CAK 
>> 
>> 
>> 
>> Carsten Kaiser
>> Principal Consultant
>> carsten.kaiser@valtech.de
>> Mobile: +49 170 5270206
>> 
>> Valtech GmbH
>> Werner-Heisenberg-Straße 2
>> 63263 Neu-Isenburg
>> Germany
>> 
>> Phone: +49 6102 88468-0
>> Fax: +49 6102 88468-28
>> 
>> www.valtech.de
>> 
>> Geschäftsführer: Ingo Kriescher
>> Amtsgericht Düsseldorf HRB48672
>> 
> 


Mime
View raw message