02 Sep, 2007

7 commits

  • …s displayed by default in dsconfig list-xxx operations.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2906 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • …for enumerated properties.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2905 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • - [Issue 2031] provide core JE configurable attributes for FileSystemEntryCache
    - fixes to entry cache config manager for proper configuration, re-configuration, error reporting.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2904 41b1ffd8-f28e-4786-ab96-9950f0a78031
    abobrov
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@2903 41b1ffd8-f28e-4786-ab96-9950f0a78031
    davidely
     
  • * Test methods are no longer interleaved between classes.  All test
    methods in a class are run together, with @BeforeClass and @AfterClass
    methods called immediately before and after the methods are run.  As
    part of this fix, you are now required to include sequential=true in
    every class level @Test annotation.  If you don't do this, the build
    will complain.
    
    * Added a TestCaseUtils.restartServer() method that will do an in core 
    restart of the directory server during the tests.  This can be used in a 
    @BeforeClass method to ensure that the tests start with a clean 
    directory server, and also in an @AfterClass method to cleanup after a 
    test that makes a lot of configuration changes.  So if you introduce a 
    new test that runs fine in isolation but fails when run with other 
    tests, you could try calling TestCaseUtils.restartServer() in its 
    @BeforeClass method.  The TestCaseUtils.restartServer() method will 
    reinitialize the server and reload the original test configuration, but 
    it's not quite the same as creating a completely new process.  
    Specifically, it cannot undo any changes that were made to static member 
    variables of a class.  I've fixed a handful of places in the server 
    where this was a problem, but there might be more lurking.  If you write 
    a test that changes static member variables of a class, please make sure 
    that it cleans up after itself in an @AfterMethod or @AfterClass test.
    
    * The tests now use significantly much less memory.  I saw a peak of
    only 80MB.  There were two main problems.  1) TestNG holds on to all
    parameters and results for the whole test, and 2) since the test
    classes themselves live for the duration of the tests, their member
    variables were holding onto a lot of garbage.  The in-core restart
    made this problem much worse because we ended up with lots of copies
    of the Schema, ConfigEntryS, etc.  I've introduced some hacks to fix
    this.  Basically the code uses devious methos to go in and null out
    the parameters and member variables after the test has run.  If you're
    curious about the details of how we've addressed this take a look at
    the comments in DirectoryServerTestCase.  From now on, all test
    classes must inherit directly or indirectly from
    DirectoryServerTestCase.  The build will fail if they don't.
    
    * Upgrade to TestNG b5.7.  There is a fix in this release that helps
    our tests to run in order, and I've had to make a couple of more
    fixes, which they will eventually put back into the trunk.
    
    * In classes with a class-level @Test annotation, TestNG treats any
    public method (except @Before/After* methods) as a test method.  The
    build now points this out and asks you to either add a specific @Test
    annotation to the method or change the method to be non-public.  I've
    fixed up several places where a test wasn't annotated and others where
    a non-test method was being treated as a test method.
    
    * The tests now report progress as they run.  Run 'build testhelp' to
    see details on how to control the output.
    
    
    I've also added some new test properties, mainly to make debugging the 
    tests easier
    
    * test.remote.debug.port:  This test property allows you to remotely 
    attach a debugger to the unit tests.  If you provide a valid port value, 
    the unit tests will not start to run until the debugger is attached.
    
    * testng.verbosity0to5:  This test property controls the debugging 
    output of TestNG.  This output is useful to check the order in which 
    test methods are invoked or other details on what TestNG is doing.  
    Valid values are integer values from 0 (no output) to 5 (maximum 
    output).  Since this implicitly sets 
    -Dorg.opends.test.suppressOutput=false, other stderr/stdout output 
    generated by the unit tests will also be displayed.
    
    * org.opends.test.copyClassesToTestPackage=true:  This test property 
    copies the classes into the test server root.  This enables you to run 
    the server tools on the test server.  It can slow down the test startup 
    so the files are no longer copied by default.
    
    Thanks to Neil for trying out these changes and to him and Bo for
    helping me track down some of the memory leaks.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2902 41b1ffd8-f28e-4786-ab96-9950f0a78031
    davidely
     
  • 
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2901 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • configuration into a ".startok" file whenever it starts successfully.  The
    start-ds script and DirectoryEnvironmentConfig class have been updated to
    expose an option to try to start the server using this "last known good"
    configuration rather than the active config file.
    
    OpenDS Issue Number:  1945
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2900 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     

01 Sep, 2007

5 commits

  • whether the server should maintain a configuration archvie, and if so the
    maximum number of archived configurations that it should keep.  By default, the
    archive will be enabled and will be configured to keep an unlimited number of
    previous configurations.
    
    This needs to be controlled via a directory environment property rather than a
    configuration option, since first part of configuration archive processing
    happens before the server has read and processed the configuration.  The
    DirectoryEnvironmentConfig class provides methods for interacting with these
    settings.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2899 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • entries use the extensibleObject object class, and to ensure that none of the
    schema elements use non-numeric OIDs.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2898 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • …is able to enable, disable and initialize suffixes.  The latest modifications introduced by Scott in the class Installer are also included in this commit.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2897 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     
  • With this set of changes, when a program using Installer#updateADS (e.g., ./setup) configures a new instance into an existing topology, the new instance's ads-truststore is "seeded" with the instance key public-key certificate entries in the ADS-based truststore. Thus, when replication is intitialized for the new instance's suffixes (those to be updated from the existing topology; e.g., cn=admin data), the new instance's replication client connection establishment will "trust" the existing instances in the topology.
    
    Note that the key infratructure for this change is implemented in ADSContext and ServerDescriptor, but only utilized in Installer (hence by setup GUI and the webstart installer). I need to discuss some of the cases in the nascent ReplicationCliMain#updateConfiguration.
    
    These changes also contain some miscellaneous cleanup - mostly to get rid of IDEA warnings.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2896 41b1ffd8-f28e-4786-ab96-9950f0a78031
    david_page
     
  • Update schema and config files with OIDs issued by Neil.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2895 41b1ffd8-f28e-4786-ab96-9950f0a78031
    david_page
     

31 Aug, 2007

15 commits

  • configuration.  This also includes allocating object classes for each of these
    types.  This will help make it easier for users to create new instances of
    these kinds of configuration objects because they will not need to know the
    fully-qualified name of the Java class that implements the associated logic.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2894 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • This change refactors the client APIs so that it is now possible to easily implement features that require direct access to properties and managed objects (e.g. dependency/constraint enforcement call-backs - issue 1451). Previous to this change an application would have to drill down from the root managed object in order to find the required managed object and its properties.
    
    This change is required by issue 1451 (dependency support), which in turn is required by issue 1449 (aggregation support).
    
    
    Description:
    ------------
    
    This change splits the client API into two:
    
    * org.opends.server.admin.client: this contains APIs which client applications such as dsconfig should use to interact with the admin framework
    
    * org.opends.server.admin.client.spi: (new package) this contains the APIs which driver implementations (e.g. JNDI driver) should use as a basis for their implementation. This package includes a Driver class which is intended for use by ManagedObject implementations as well as dependency call-backs.
    
    In addition, I have refactored the LDAPManagedObject implementation so that code that is likely to be used by other driver implementations is pushed up into an AbstractManagedObject and the Driver base class.
    
    
    Testing:
    --------
    
    All unit tests pass and basic walk-through of dsconfig interactive mode also works fine.
    
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2893 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • …es the error notification.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2892 41b1ffd8-f28e-4786-ab96-9950f0a78031
    kenneth_suter
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@2891 41b1ffd8-f28e-4786-ab96-9950f0a78031
    kenneth_suter
     
  • …alueEditor package private and make several DSConfig inner classes and methods class private.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2890 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • encoding data in the database itself, and re-enable compact encoding by default
    in the configuration.  By storing the compact schema encoding data in the
    database (a separate copy for each backend), we have eliminated the potential
    problems in backup/restore and binary copy initialization if there are
    dependencies on an external schematokens.dat file.
    
    OpenDS Issue Number:  2158
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2889 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • Use the proper confirmation message when the user did not ask to start the server.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2888 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     
  • Fix for issue 2191
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2887 41b1ffd8-f28e-4786-ab96-9950f0a78031
    boli
     
  • Fix for issue 2206
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2886 41b1ffd8-f28e-4786-ab96-9950f0a78031
    boli
     
  • …wn before the entry cache has been created.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2885 41b1ffd8-f28e-4786-ab96-9950f0a78031
    kenneth_suter
     
  • … was intended to be exposed as a new script but in order to avoid the negativity of having a command devoted to undoing the upgrade and to avoid more scripts in the top-level directory, I've exposed the functionality as 2 new options in the existing upgrade script.  I will update the Wiki with documentation for these new options soon.
    
    In order to support custom return codes for quicksetup applications I've overhauled the class formerly called ApplicationReturnCode, converting the inner enum to static instances of a new class ReturnCode.  This change touched lots of file in a minor way.
    
    Also addressed here:
    
    - Interactivity for both the upgrade and reversion operations
    
    - Additional work needed to tie the reverter into the version issue (flag day) notification framework.
    
    - issue 2170 - upgrader emits NoClassDefFoundError following usage 
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2884 41b1ffd8-f28e-4786-ab96-9950f0a78031
    kenneth_suter
     
  • Follow-on to commit r2858.  ADSContext#updateServer is called by Installer#updateADS (via registerOrUpdateServer) in the case the server entry already exists in ADS. With this commit, updateServer checks 'cn=instance keys,cn=admin data' for an entry with the instance key public-key certificate of the server being (re)registered (or otherwise updated and the instance-key certificate server property is supplied). If the entry exists, it is used. Otherwise, a new entry is created.  The new routine ADSContext#registerInstanceKeyCertificate contains the code common to registerServer and updateServer.
    
    Note that the updateServer is not fully tested since I cannot figure out how to re-register an existing instance (i.e., unregister, but not uninstall, an instance; then re-register the instance so the existing instance-key entry is reused).
    
    M      src/ads/org/opends/admin/ads/ServerDescriptor.java
    M      src/ads/org/opends/admin/ads/ADSContext.java
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2883 41b1ffd8-f28e-4786-ab96-9950f0a78031
    david_page
     
  • When the replication code replay a modify operation on an entry
    that contain historical information for an attribute that is 
    not defined in the schema, the modify operation 
    is not replayed because an AssertionError is thrown by AttributeValue constructor.
    
    This fixes the problem by avoiding the AssertionError
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2882 41b1ffd8-f28e-4786-ab96-9950f0a78031
    gbellato
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@2881 41b1ffd8-f28e-4786-ab96-9950f0a78031
    lutoff
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@2880 41b1ffd8-f28e-4786-ab96-9950f0a78031
    al_xipe
     

30 Aug, 2007

13 commits