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
> >
>
>

Reply via email to