Hi Shawn, Sorry for the delay, took me a bit to extract out a working example. I published it here: https://github.com/lucastheisen/apacheds-test
The README has the details (_i am pretty sure_) that are needed for your project. However, even if i missed something in the README, the project itself is a fully working example that demonstrates how i test my password policy. It should not be all that difficult to adapt to your use case. Hope it helps! Lucas On Fri, Dec 14, 2018 at 11:38 AM Shawn McKinney <[email protected]> wrote: > Lucas, > > My lack of any proficiency in aspects (whatsoever) means I can’t piece > together how your example gets wired into the execution chain in order to > try it out. > > Currently, there’s this in the test class that I’m using: > > @RunWith(FrameworkRunner.class) > @CreateDS(name = "classDS", partitions = > { @CreatePartition(name = "example", suffix = "dc=example,dc=com") }) > @CreateLdapServer( > transports = > { > @CreateTransport(protocol = "LDAP", port = 10389) > }) > @ApplyLdifFiles( > { "fortress-schema.ldif", "init-ldap.ldif"/*, "test-data.ldif"*/}) > public class FortressJUnitApachedsTest extends AbstractLdapTestUnit > > *** > > How does your aspect get hooked in? Sorry for the rudimentary question. > Is there a more complete example you can point me to? > > Thanks, > > Shawn > > > On Dec 12, 2018, at 11:27 AM, Lucas Theisen <[email protected]> > wrote: > > > > Not sure this helps much, but my team works around this for our > integration test by using aop. Specifically: > > > > <aspectj> > > <aspects> > > <aspect name=" > com.pastdev.apacheds.server.GetUniqueResourceReplacer" /> > > </aspects> > > </aspectj> > > > > > > And this implementation > > > > /** > > * An aspect workaround for <a > > * href="https://issues.apache.org/jira/browse/DIRSERVER-1606" > > * >DIRSERVER-1606</a> > > * > > * @author LTHEISEN > > */ > > @Aspect > > public class GetUniqueResourceReplacer { > > private static final Logger log = LoggerFactory.getLogger( > GetUniqueResourceReplacer.class ); > > > > @Pointcut( "execution(* > org.apache.directory.api.ldap.schema.extractor.impl.DefaultSchemaLdifExtractor.getUniqueResource(String,String)) > &&" + > > "args(resourceName,resourceDescription)" ) > > private void getUniqueResourceReplacer( String resourceName, String > resourceDescription ) { > > } > > > > @Around( > "com.pastdev.apacheds.server.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.debug( "found more than one copy of " + resourceName + " > using first one" ); > > } > > return result; > > } > > } > > > > As stated in the comment, this issue relates to > https://issues.apache.org/jira/browse/DIRSERVER-1606 > > > > Maybe that will work for you too. > > > > On Wed, Dec 12, 2018 at 8:58 AM Shawn McKinney <[email protected]> > wrote: > > > > > On Dec 12, 2018, at 5:08 AM, Emmanuel Lécharny <[email protected]> > wrote: > > > > > > if you include ApacheDS, it will implicitely include LDAP API, so > including ldap-api-all will be a duplicate, AFAIR. > > > > Here, fortress core apacheDS depends are: <scope>test</scope>, and of > course we have compile-time dependency on the api. > > > > > > > > On Dec 12, 2018, at 5:08 AM, Emmanuel Lécharny <[email protected]> > wrote: > > > > > > I'll have a closer look later today. What command are you executing > that I can run to get the same result ? > > > > Simply executed the test class inside IDE, but it could command-line: > > > > $ mvn -Dtest=FortressJUnitApachedsTest test > > > > Thanks, > > —Shawn > > > >
