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

lucas theisen commented on DIRSERVER-1606:
------------------------------------------

I was able to work around this by adding an aspect:

{code:java}
@Aspect
public class GetUniqueResourceReplacer {
    private static final Logger log = LoggerFactory.getLogger( 
GetUniqueResourceReplacer.class );

    @SuppressWarnings( "unused" )
    @Pointcut( "execution(* 
org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor.getUniqueResource(String,String))
 &&" +
            "args(resourceName,resourceDescription)" )
    private void getUniqueResourceReplacer( String resourceName, String 
resourceDescription ) {
        log.warn( "wait, what the heck...  this is a pointcut, not a method!" );
    }

    @Around( 
"org.mitre.asias.ldap.test.GetUniqueResourceReplacer.getUniqueResourceReplacer(resourceName,resourceDescription)"
 )
    public URL getFirstMatchingResource( String resourceName, String 
resourceDescription ) throws IOException {
        log.warn( "Hey, you got here... AWESOME!" );
        Enumeration<URL> resources = 
DefaultSchemaLdifExtractor.class.getClassLoader().getResources( resourceName );
        if ( !resources.hasMoreElements() ) {
            throw new UniqueResourceException( resourceName, 
resourceDescription );
        }
        URL result = resources.nextElement();
        if ( resources.hasMoreElements() ) {
            log.info( "found more than one copy of " + resourceName + " using 
first one" );
        }
        return result;
    }
}
{code}
                
> DefaultSchemaLdifExtractor chokes when using apacheds-all Maven artifact
> ------------------------------------------------------------------------
>
>                 Key: DIRSERVER-1606
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1606
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.7
>            Reporter: Holger Pretzsch
>             Fix For: 2.0.0-RC1
>
>
> When using the apacheds-all Maven artifact, the DefaultSchemaLdifExtractor 
> does not work. Apparently, because of the Maven dependency setup, the default 
> schema is on the classpath in two (probably identical?) versions.
> org.apache.directory.shared.ldap.schema.ldif.extractor.UniqueResourceException:
>  Problem locating LDIF file in schema repository
> Multiple copies of resource named 
> 'schema/ou=schema/cn=apachedns/ou=syntaxes.ldif' located on classpath at urls
>     
> jar:file:/C:/Users/holger/.gradle/cache/org.apache.directory.server/apacheds-all/jars/apacheds-all-1.5.7.jar!/schema/ou%3dschema/cn%3dapachedns/ou%3dsyntaxes.ldif
>     
> jar:file:/C:/Users/holger/.gradle/cache/org.apache.directory.shared/shared-ldap-schema/jars/shared-ldap-schema-0.9.19.jar!/schema/ou%3dschema/cn%3dapachedns/ou%3dsyntaxes.ldif
>       at 
> org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor.getUniqueResource(DefaultSchemaLdifExtractor.java:371)
>       at 
> org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor.getUniqueResourceAsStream(DefaultSchemaLdifExtractor.java:347)
>       at 
> org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor.extractFromJar(DefaultSchemaLdifExtractor.java:386)
>       at 
> org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor.extractOrCopy(DefaultSchemaLdifExtractor.java:151)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to