16 Mar, 2007

1 commit


15 Mar, 2007

1 commit

  • The following changes are targeted to be able to run OpenDS as a windows 
    service.
    
    The idea is to be able to run OpenDS to run as a service and to be able 
    also to disable this feature.
    
    The setup has been updated to run OpenDS as a service in windows (which 
    is the standard behavior in this platform).  The uninstall has also been 
    updated to remove all references to OpenDS in the Registry and in the 
    list of services once OpenDS has been uninstalled.
    
    A new executable (opends_service.exe) has been added to be able to 
    perform all the tasks that require native code 
    (registering/unregistering the service, sending events to the event log, 
    etc.).  Most of the code required by this executable is in the file 
    service.c.  The README file has been updated and a Makefile file 
    provided to generate all the executables.
    
    A new command line has been added: windowsservice.bat.  The usage of 
    this command line is the following one:
    
    This utility may be used to configure OpenDS as a Windows service.
    Usage:  windowsservice {options}
                  where {options} include:
    -e  or   --enableService
         Enables OpenDS as a Windows service.
    -d  or   --disableService
         Disables OpenDS as a Windows service and stops the server
    -s  or   --serviceState
         Provides information about the state of OpenDS as a Windows service.
    -H  or   --help
         Display this usage information.
    
    The class associated with this command line (ConfigureWindowsService) 
    uses opends_service.exe.  ConfigureWindowsService is basically a wrapper 
    that allows to have the messages displayed to the user in the Java code 
    (and so to minimize what is done by the native code).
    
    
    Some changes have been made in the start-ds(.bat) and stop-ds(.bat) 
    scripts by extending what the --checkStartability (in DirectoryServer 
    class) and --checkStoppability (in StopDS class) do.  I think that it is 
    a good idea to have all the parsing of the arguments into the java code 
    (specially considering the limitations of the .bat files).  So I have 
    moved most of the parsing to the java code so that the is the java code 
    that provides a return code to the scripts to tell them what to do 
    (start the server in detach mode, stop the server using a system call, 
    stop the server using protocol, etc.).
    
    In the particular case of how start-ds.bat and stop-ds.bat have been 
    updated to manage the case where the server must be started using the 
    system call 'net start <service_name>' and 'net stop <service_name>'. 
    --checkstoppability and --checkstartability tell whether the server must 
    be stopped/started directly with a system call (or stopped using LDAP 
    protocol) or using the Windows Service system.  If it is the latter the 
    bat files use two new auxiliary classes (StopWindowsService and 
    StartWindowsService).  These classes figure out the service name 
    associated with the OpenDS instance and call net stop (or net start) 
    using that service name.
    
    When net start/net stop are called start-ds.bat (or stop-ds.bat) are 
    called.  The Windows Services have been configured to call start-ds.bat 
    and stop-ds.bat with some particular options (--windowsNetStart and 
    --windowsNetStop) to identify the case where we must start/stop the 
    server directly (and so not having an infinite recursive loop of calls 
    to net start/net stop).
    
    In order to have the same user experience when the server is configured 
    to run as a service and when is not the tool class WaitForDelete has 
    also been updated to write its output to a file.  This has been done 
    because piping from the standard output to a file in the context of a 
    Windows Service call does not seem to work properly.  So now 
    WaitForDelete has a new option --outputFile.
    
    setup --cli on windows has a new option '-n' or '-noWindowsService' to allow not to enable the windows service.  When run in interactive mode and this options is not specified the user will systematically be asked whether to enable the windows service or not. 
    
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@1418 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     

09 Mar, 2007

1 commit


01 Mar, 2007

1 commit


22 Feb, 2007

2 commits

  • 
    git-svn-id: https://svn.forgerock.org/opendj/trunk@1219 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • …if LDAP port' and 'cannot stop server through status panel').
    
    The goal of these changes is to be able to have exactly the same user interface in Windows and Unix to stop the server.  In windows we force the user to provide LDAP credentials even if the command is going to be run locally.  The goal is to allow to stop the server using only system credentials (as we do in UNIX) when the user does not provide arguments when calling stop-ds.bat.
    
    In order to do this I have written some native code.  This native code is called when we start the server to:
    1. Launch the java process and get the associated PID.
    2. Create a server.pid file as we do for UNIX systems to store the PID of the process.
    
    The native code that stops the server reads the PID file contents and tries to stop the process associated with the PID.
    
    In order to allow the users to be able to build the product with independence of the platform, the binaries will be included with the source code.  The code used to generate these binaries will also be provided.
    
    I have generated 1 executable called winlauncher.exe.  The binaries will be committed in the source tree under lib (with activation.jar and mail.jar).  They will also be installed under <server root>\lib.
    
    The native code is in the files winlauncher.c and winlauncher.h.  These files are placed under the new directory build-tools/src/windows.
    
    I have tried to keep the native code simple and leave as much logic as I could into the batch files (for instance everything related to the discovery of the java binaries) so that the administrators can play with them.
    
    A README file has been also been included to explain how to generate the binaries.
    
    Extras:
    When we call start-ds from the command line, the server will not stop when the command prompt window is closed (unless start-ds was called to run in not-detached mode).  The next step is to register DS as a service to avoid the server to be stopped when the user logs out.
    
    When we call setup (with no arguments) or the statuspanel the generated process (and windows) will no longer get killed when the command prompt window is killed.
    
    When the user double-clicks on the setup.bat or the statuspanel.bat files, the command prompt window only appears briefly.  Today when we do this a command prompt window stays open until we close setup or the status panel window.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@1216 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     

01 Feb, 2007

1 commit


29 Jan, 2007

1 commit


28 Jan, 2007

2 commits

  • 
    git-svn-id: https://svn.forgerock.org/opendj/trunk@1049 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • interact with the Subversion workspace.  This includes three components:
    
    - A new Ant task that stores the current workspace revision number in an Ant
      property which gets built into DynamicConstants.java and exposed in the
      --fullversion and "cn=version,cn=monitor" information.
    
    - A new Ant task that checks all files that have been locally modified in the
      current workspace for potential cases in which a copyright date needs to be
      updated to include the current year.
    
    - A change to the coveragediff tool so that it uses the SVNKit library to
      obtain the diff rather than trying to execute the external svn/svn.exe
      command.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@1047 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     

22 Jan, 2007

1 commit

  • …an uncaught exception in the tests, this gives us the stack trace and forces the tests to exit.  This should make it easier to track down OutOfMemoryErrors in the future.
    
    2.  Added our own listener for the tests.  This does the following
      * As soon as a test fails, it prints it out all of the info to the screen.  Test method, error message, stacktrace, parameters
      * At the end of the tests, it summarizes all of the tests that failed.
      * It generates a new test report in text format.  The html report generator was a real memory hog.
    
    3.  Changes to build.xml
       * Test output is suppressed by default.
       * The coverage report is generated even if the tests failed.
       * Exposed the ability to rerun only the failed tests with -Dtest.failed=true.
       * The 'runtests' target prints out information about additional test options.
       * Two small fixes so that ant doesn't recompile files that haven't changed.
       * Removed tabs.  This was mostly in the status panel code.
       * Reverted the -Xmx256M temporary fix for the unit tests.
    
    
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@1005 41b1ffd8-f28e-4786-ab96-9950f0a78031
    davidely
     

12 Jan, 2007

2 commits


09 Jan, 2007

2 commits

  • 
    git-svn-id: https://svn.forgerock.org/opendj/trunk@950 41b1ffd8-f28e-4786-ab96-9950f0a78031
    boli
     
  • 1. coveragediff is now an ant task that is run after the test*withcoverage targets. It can be disabled with -Dtest.diff.disabled=
    2. coveragediff now calls svn internally. By default it looks for svn in your path. You can specify where svn is manually by using the -Dtest.diff.svnpath property. You can also specify what files are diffed by using the -Dtest.diff.srcpath property.
    3. the testcustom* targets are removed and the test* should now be used. If no no -Dtest.* properties are set, it runs the default set of tests just like before. 
    4. coveragediff now generates an html report to build/diff/reports/. 
    5. coveragediff now calculates coverage for modified lines overall and by file. It also lists overall number of lines modified and deleted.
    6. coveragediff can function without coverage data. It will issue an warning and just generate the report w/o any coverage info. Users can use the coveragediff ant target just to generate a graphical diff.
    
    Fix for issue 1125
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@949 41b1ffd8-f28e-4786-ab96-9950f0a78031
    boli
     

21 Nov, 2006

1 commit


17 Nov, 2006

1 commit

  • * Add a new quicksetup.jar file that can be used for both Web Start and local installations of Open DS.
    
    * Modify the setup script so that now they will launch by default the graphical setup.  If an error occurs (because for instance we do not have access to the display) or if the user specifies the --cli option then we will use the cli based setup (the one we had until today).
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@744 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     

27 Sep, 2006

1 commit


26 Sep, 2006

1 commit


19 Sep, 2006

1 commit

  • default test ant target, I have added a "slow" test group to testng. To
    use it, just put something like "@Test(groups = { "slow" })" before your
    test case method. 
    
    This is implemented by a modified testng.xml file which is modified by a
    custom ant task called preptestng. It basically takes a
    group include/exclude string like "exclude=slow,include=fast" from ant
    and insert the correct tags into a copy of the testng.xml file.
    
    A new resource directory is now created before running tests to hold the
    modified testng.xml. it is located at build/unit-tests/resource. The
    preptestng task will copy the master testng.xml file from
    ext/testng/testng.xml to the new resource directory and add the
    appropreate group tags based on parameters from ant.
    
    This also creates a build-tools top level directory to hold this tool and any future build tools. A new ant target called "buildtools" is also added to rebuild the tools and make the build-tools.jar file in ext.
    
    The slow tests are only ran with the all, testall, or
    testallwithcoverage targets.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@384 41b1ffd8-f28e-4786-ab96-9950f0a78031
    boli