And if you want to launch the server within the Unit tests, you can
define your own DirectoryServer factory where you define the port to use.
For instance, have a look at the MiscBindIT test (in the server-integ
project, operations.bind package). It defines a LdapServerFactory where
the port is selected by this line :
...
int port = AvailablePortFinder.getNextAvailable( 1024 );
...
Just replace this line by what you want the port to be, it should work.
Paul Edwards wrote:
Gary,
I'm using apacheDS for unit testing. I do the following to control what port
the service is started on:
TcpTransport transport = new TcpTransport(port, numberOfThreads);
transport.enableSSL(useSsl);
LdapServer serv = new LdapServer();
serv.setTransports(transport);
serv.setDirectoryService(directoryService);
log.debug("Server is ssl enabled: " + transport.isSSLEnabled());
log.debug("Server enabled: " + serv.isEnabled());
serv.start();
Hope that helps.
--
Paul Edwards
Solutions Engineer
Identity Solutions Practice
---------------------------------------------------------
hyro
W www.hyro.com
________________________________________
From: Gary Horton [[email protected]]
Sent: Thursday, 17 September 2009 7:31 a.m.
To: [email protected]
Subject: Need to control what port is used with unit testing setup
Hi Apache DS team -
As per your invitation to ask for help at the bottom of
http://directory.apache.org/apacheds/1.5/42-using-apacheds-for-unit-tests.html,
I do have a question for you.
I've succeeded starting up and connecting to the standalone server,
and in setting up the embedded server. Next I started looking at the
unit testing instructions on your website, but have come to a dilemma.
In the section "Creating a Blank Test", it is stated that "...let's
declare the framework for a simple unit test, using a server which will
be used through socket (the first free port above 1023 will be used)..."
- and I see from looking at the LdapServerFactory source that indeed
this is how it is done. I wonder however if there are any hidden hooks
you might have that would allow us to control what port is used - or to
at least find out at runtime what port has been selected.
We'd need this information because we are using iBatis, connecting
to a JDBC-LDAP bridge driver (http://myvd.sourceforge.net/bridge.html).
To make the iBatis connection, we need a database URL, something like
jdbc:ldap://localhost:10389/ou=system (which works out of the box with
the standalone service for Apache DS). So one way or the other, we'd
need to at a minimum know what port is in use, or better yet be able to
set that port explicitly.
Any ideas? Thanks mucho for any help here -
Best,
Gary Horton
--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org