[
https://issues.apache.org/jira/browse/DIRSERVER-1606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13258505#comment-13258505
]
lucas theisen edited comment on DIRSERVER-1606 at 4/20/12 7:30 PM:
-------------------------------------------------------------------
I was able to work around this by adding an aspect:
@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 {
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;
}
}
was (Author: [email protected]):
I was able to work around this by adding an aspect:
@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;
}
}
> 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