04 Sep, 2007

4 commits


03 Sep, 2007

15 commits

  • This change adds the server side support for constraints. As part of this change I refactored the ServerManagementContext so that it supports a similar API to the client ManagementContext API. This will make it easier for constraint implementations to perform checks.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2931 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@2930 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • 
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2928 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • This change removes all the ugly hard-coded error strings from the admin framework exception classes and replaces them with nicer and at times more user friendly messages stored in I18N property files. In particular, the server side decoding error messages have been improved.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2927 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • handler, which can be used to terminate client connections if an attempt to
    write data to the client has been blocked for too long.  This will generally
    occur if the client has become unresponsive or there is a network outage.
    
    OpenDS Issue Number:  139
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2926 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • 
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2923 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     
  • …ix for a given base DN and throw an exception informing of it.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2922 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     
  • 
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2921 41b1ffd8-f28e-4786-ab96-9950f0a78031
    abobrov
     
  • Improve the error messages to be displayed to the user when the uninstall fails.Fix a infinite loop that occurred when the user provided a protocol not configured in the server to access the registration information.
    Fix a bug that prevented the uninstall to proceed when the user specified forceOnError and an error accessing the remote servers configuration occurred.
    Fix a bug that occurred when the user specified to use start TLS and it was not configured in the server (this bug applies to both the uninstaller and status command-lines).
    
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2920 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@2919 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • This change provides a client-side framework for enforcing arbitrary constraints between managed objects and their properties. This framework enables us to (not exhaustive):
    
    1) support referential integrity between managed objects (required by issue 1449)
    
    2) support dependencies between properties (e.g. if A is true then B is mandatory). This is useful for optional features like SSL configuration
    
    3) support constraints between properties (e.g. integer property A must always be less than integer property B)
    
    A subsequent change will provide server-side support.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2918 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • …ior for referential integrity attribute property.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2916 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • Fix a bug in that made the progress bar to go back.
    
    Use LinkedHashSets instead of HashSets in SuffixesToReplicateOptions and return a copy of these Sets.  This is done to be sure that the ADS is the last suffix to be initialized.
    
    Use a customized message when we are initializing the ADS suffix instead of displaying the suffix (the user might be surprised by the fact that a base DN (s)he never chose is being initialized).
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2915 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     
  • Use the provided host name and port by the user to represent the server.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2914 41b1ffd8-f28e-4786-ab96-9950f0a78031
    jvergara
     
  • New configuration  attributes:
    
    - ds-cfg-referential-integrity-attribute-type Specify attribute types that referential integrity will be checked on; this is a mandatory attribute
    
    -ds-cfg-referential-integrity-base-dn Specify base DN that will limit scope of reference check; if not specified the server's public naming contexts are used
    
    - ds-cfg-referential-integrity-update-interval Specify update interval for background referential integrity processing; if update interval > 0 plugin performs background processing; default is 0
    
    -ds-cfg-referential-integrity-log-file Specify log file location for update records when background processing is enabled; default is <instance>/logs/referint
    
    The plugin is disabled by default:
    
    dn: cn=Referential Integrity,cn=Plugins,cn=config
    objectClass: top
    objectClass: ds-cfg-plugin
    objectClass: ds-cfg-referential-integrity-plugin
    cn: Referential Integrity
    ds-cfg-plugin-class: org.opends.server.plugins.ReferentialIntegrityPlugin
    ds-cfg-plugin-enabled: false
    ds-cfg-plugin-type: postOperationDelete
    ds-cfg-plugin-type: postOperationModifyDN
    ds-cfg-plugin-type: subordinateModifyDN
    ds-cfg-referential-integrity-attribute-type: member
    ds-cfg-referential-integrity-attribute-type: uniqueMember
    
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2913 41b1ffd8-f28e-4786-ab96-9950f0a78031
    dugan
     

02 Sep, 2007

11 commits

  • implementations to provide default values for the conflict-behavior property.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2912 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • create a tight infinite loop if the method is still running after the database
    has been closed, repeatedly catching and logging exceptions.  This change adds
    a break statement after logging the message so that it will exit from the loop.
    
    The exception being caught was:
    
    com.sleepycat.je.DatabaseException: (JE 3.2.29) Attempt to use non-open Environment object().
        at com.sleepycat.je.Environment.checkHandleIsValid(Environment.java:1147)
        at com.sleepycat.je.Environment.beginTransactionInternal(Environment.java:731)
        at com.sleepycat.je.Environment.beginTransaction(Environment.java:720)
        at org.opends.server.replication.server.ReplicationDbEnv.beginTransaction(ReplicationDbEnv.java:381)
        at org.opends.server.replication.server.ReplicationDB$ReplServerDBCursor.<init>(ReplicationDB.java:363)
        at org.opends.server.replication.server.ReplicationDB$ReplServerDBCursor.<init>(ReplicationDB.java:314)
        at org.opends.server.replication.server.ReplicationDB.openDeleteCursor(ReplicationDB.java:205)
        at org.opends.server.replication.server.DbHandler.trim(DbHandler.java:384)
        at org.opends.server.replication.server.DbHandler.run(DbHandler.java:335)
        at java.lang.Thread.run(Thread.java:619)
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2911 41b1ffd8-f28e-4786-ab96-9950f0a78031
    neil_a_wilson
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@2910 41b1ffd8-f28e-4786-ab96-9950f0a78031
    pgamba
     
  • …nd replace them with a single managedObjectExists method. This will be more useful and more simple for dependency call-backs.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2909 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • …r replication tests.  Fixed an NPE in ServerHandler that occurred in one run of the unit tests
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2908 41b1ffd8-f28e-4786-ab96-9950f0a78031
    davidely
     
  • … sensible default values. These defaults were taken from the current config.ldif default configuration.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@2907 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew_swift
     
  • …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
     
  • - [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
     
  • * 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

4 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
     
  • …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

6 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