27 Jul, 2007
1 commit
-
- A VLV index is defined by a name, base DN, search filter, search scope, sort order. A search request must match these parameters exactly to use the VLV index. - A VLV index made up of the entry IDs matching the definition criteria (above) and the corresponding attribute values that are part of the sort order in the sort order. This information is broken up into blocks of sorted sets. The block size can be configured through admin framework. Default block size is 4000. In the database, the sorted set is stored with the following format: 4 byte set size | entry IDs of 8 bytes each ... | attribute values of 16 bytes each ... - Each sorted set is keyed by the entry ID and attribute values of the largest entry in the sorted set. A special comparator (VLVKeyComparator) is used to sort the keys in the database in the order of the specified sort order. - When entries are added to the VLV index, its sort values are extracted and inserted into the sorted set whose key (also the largest entry in the set) is the smallest key that represents a entry that is greater or equal to the entry being inserted. If the sorted set exceeds the block size, it is divided in two and stored back into the database with the new key. In this implementation, a sorted set's key is never changed after it is created. - On importing from LDIF, each entry's sort values and ID is written out to a intermediate file in order. These files are later merged and inserted into the database. - Index rebuild and verify also works with VLV indexes. The verify job ensures that all the entries stored in the VLV index is in the correct order. - With this implementation, once a VLV index is created, it can not be changed without a rebuild. The server will NOT warn the user if the index has changed offline. Until a rebuild is done, it can return incorrect results. This should be fixed later. - Performance wise, modify, add, and delete performance will be degraded if the entry matches the indexing criteria. Searches not using the VLV index should not see any notable performance degradation. If the block size is set too big, there is a potential that a large number of updates will result in some JE lock timeouts since the few sorted sets are hotly contested. However, if the block size is too small, searches using the VLV control with offsets could be slow since there are more records to look through. This area need further investigation to determine the optimal default value. Fix for issue 38 git-svn-id: https://svn.forgerock.org/opendj/trunk@2499 41b1ffd8-f28e-4786-ab96-9950f0a78031
26 Jul, 2007
1 commit
-
With this change, dsconfig now prompts for component names if they are not specified on the command-line. Where more than one choice is available, dsconfig displays a list of choices. For create-xxx sub-commands dsconfig also prompts for the component type (-t flag) if it is not specified. Users can, at this point, request help which displays a detailed description of each type. A subsequent change will add support for interactively setting property values. A major part of this change includes improvements to the type-safety of the client admin APIs (e.g. use of raw types), which were being flagged in the latest version of Eclipse (apologies: I should have committed these separately, but they got too tangled up in this change). git-svn-id: https://svn.forgerock.org/opendj/trunk@2480 41b1ffd8-f28e-4786-ab96-9950f0a78031
23 Jul, 2007
2 commits
-
It is now possible to tag a property as advanced. This is achieved by adding the "advanced" attribute to XML property definitions. For example: <adm:property name="java-implementation-class" mandatory="true" advanced="true"> ... </adm:property> Advanced properties must be either option or, if they are mandatory, have default values (defined or inherited). This constraint is enforced except for abstract property definitions where sub-definitions can override the property and give it a default (this is the case for java implementation class properties). Dsconfig has been modified so that get-xxx-prop and list-properties sub-commands only display advanced properties if the user provides the "--advanced" command line option. There will be similar support for set-xxx-prop and create-xxx sub-commands once they have a fully functional interactive mode (issue 1831). This change just adds support for advanced properties. A subsequent change (for issue 1829) will designate which properties are advanced. git-svn-id: https://svn.forgerock.org/opendj/trunk@2457 41b1ffd8-f28e-4786-ab96-9950f0a78031 -
git-svn-id: https://svn.forgerock.org/opendj/trunk@2453 41b1ffd8-f28e-4786-ab96-9950f0a78031
20 Jul, 2007
1 commit
-
Add support for hiding relations and, using this feature, prevent users from access root DN user configurations through the CLI. To make it easier to add new features to relation definitions in the future I have refactored the RelationDefinition classes so that they provide a Builder API for incrementally constructing new definitions. git-svn-id: https://svn.forgerock.org/opendj/trunk@2444 41b1ffd8-f28e-4786-ab96-9950f0a78031
19 Jul, 2007
1 commit
-
…nents with empty names), and 1998 (exception when creating components with blank names). This change allows one-to-many relations to use a property of the referenced component for naming the component. For example, a je-index has an attribute called "index-attribute" which is the attribute type indexed by the index. There is no need for the je-indexes to have a naming attribute since the value of the "index-attribute" property is sufficient. With this change it is possible to specify a "naming property" for one-to-many relations. In the case of je-indexes, the je-backend je-index relation is now defined as follows: <adm:relation name="je-index"> <adm:one-to-many naming-property="index-attribute"/> <adm:profile name="ldap"> <ldap:rdn-sequence> cn=Index </ldap:rdn-sequence> </adm:profile> <adm:profile name="cli"> <cli:relation> <cli:default-property name="index-type" /> </cli:relation> </adm:profile> </adm:relation> Note that the one-to-many element now has a "naming-property" attribute which identifies the je-index property which should be used for naming. Also note that the LDAP profile no longer needs a naming-attribute element, since the naming attribute will be the one associated with the index-attribute property. git-svn-id: https://svn.forgerock.org/opendj/trunk@2434 41b1ffd8-f28e-4786-ab96-9950f0a78031
06 Jul, 2007
1 commit
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@2283 41b1ffd8-f28e-4786-ab96-9950f0a78031
15 Jun, 2007
1 commit
-
This change modifies the admin framework XML schema so that it is possible for all types of required admin action to have a description. For example, when there is no additional administrator action required when a property is modified, it is sometimes nice to indicate how the change will dynamically take effect. In addition, it is now possible to query the specific type of admin action associated with a property and its synopsis via the admin framework APIs. git-svn-id: https://svn.forgerock.org/opendj/trunk@2110 41b1ffd8-f28e-4786-ab96-9950f0a78031
13 Jun, 2007
1 commit
-
…ged object can be grouped together. Tagging will enable us to automatically generate more user-friendly documentation and administration tools as a result of them being easier to navigate and search. For example, an administration CLI will be able to split the available set of sub-commands into categories, thus making it easier for administrators to find the sub-command that they need. This change is implemented as follows: * provide an extensible way in which tags can be defined: the XML root configuration definition element now supports an "adm:tag-definition" element, which can be used as follows: <adm:tag-definition name="logging"> <adm:synopsis>Logging</adm:synopsis> </adm:tag-definition> * provide a means for tagging managed object definitions with zero or more tags using an "adm:tag" element, which can be used as follows: <adm:tag name="logging"/> * add support to the admin framework APIs for querying a managed object definition's tags * define an initial set of tags and tag managed object definitions appropriately (this is just an initial guess and is likely to change): * logging * replication (incl. mmr) * database (incl. caching) * security (authn and authz) * identity (user account management, pwp, etc) * core (connection handlers, virtual attributes, etc) git-svn-id: https://svn.forgerock.org/opendj/trunk@2093 41b1ffd8-f28e-4786-ab96-9950f0a78031
11 Jun, 2007
2 commits
-
…perty definitions. The CLI profile defines two annotations at the moment: * the operand name which should be used in sub-command usage help to identify the names of managed objects being added, removed, modified, etc * the list of properties which should be displayed by default in list-xxx sub-commands. For example, when listing connection handlers we can display a summary table that lists the "enabled", "listen-port", and "use-ssl" properties by default Both of these annotations apply only to relation definitions. Existing relations have been updated to include these CLI annotations, although their content is subject to change if we decide that better operand names/default properties exist. These annotations will be used in the forthcoming dsconfig CLI. git-svn-id: https://svn.forgerock.org/opendj/trunk@2075 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
…s which define a pattern constraint. The usage string is used when the syntax of a property needs to be displayed, for example in a CLI help screen or in server-side log messages when a bad property value is encountered. For example, a property whose values must be a valid UNIX mode could have the following string syntax definition: <adm:string> <adm:pattern> <adm:regex>^[0-7][0-7][0-7]$</adm:regex> <adm:usage>MODE</adm:usage> <adm:synopsis> An valid UNIX mode string. The mode string must contain three digits between zero and seven. </adm:synopsis> </adm:pattern> </adm:string> Existing string based properties have been updated with appropriate usage. git-svn-id: https://svn.forgerock.org/opendj/trunk@2073 41b1ffd8-f28e-4786-ab96-9950f0a78031
30 May, 2007
2 commits
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@1977 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
This change adds default values for all java-implementation-class style properties where appropriate. These properties are usually defined in an abstract definition but have sensible default values in their sub-definitions. For example, the PasswordValidatorConfiguration definition defines a "validator-class" property which is mandatory but has no sensible default value. However, its derived definition DictionaryPasswordValidatorConfiguration does have a sensible default value for this property, DictionaryPasswordValidator, so this change adds a "property-override" to this sub-definition which defining this default value. Having default values defined for java-class type properties will make it much easier for administrators to create new configurations as they will no longer need to figure out which class is appropriate (they are still free to override the default with their own implementation if they wish). git-svn-id: https://svn.forgerock.org/opendj/trunk@1976 41b1ffd8-f28e-4786-ab96-9950f0a78031
29 May, 2007
1 commit
-
It is now possible to override the default behavior and required admin action of an inherited property definition using a "property-override" element. This makes it possible to specify default values for inherited properties like java-implementation-class and will, ultimately, make a client tools much more user-friendly. A subsequent change will add default values for java-implementation-class properties in all managed object definitions. git-svn-id: https://svn.forgerock.org/opendj/trunk@1969 41b1ffd8-f28e-4786-ab96-9950f0a78031
28 May, 2007
1 commit
-
* 1444: implement inherited default values * 1445: prevent commit if mandatory properties are missing * 1446: refactor managed object factory method API in generated APIs * 1625: allow read-only properties to be defined during managed object construction and add support for "monitoring" properties (e.g. a property which is server generated and contains the list of support ciphers) These issues have been fixed in a single change as they depend upon each (issue 1446 being the main issue). [Reviewed by Josu] git-svn-id: https://svn.forgerock.org/opendj/trunk@1960 41b1ffd8-f28e-4786-ab96-9950f0a78031
22 May, 2007
1 commit
-
* client API methods are much more specific about what sort of exceptions they can throw * new exceptions for wrapping underlying transport related error conditions (e.g. IO problems, authorization problems) * improved Javadoc generation for client APIs * pull-up AbstractPropertyDefinitionVisitor into PropertyDefinitionVisitor and improve type-safety of EnumPropertyDefinition visitor method * refactor the LDAP client implementation (remove LDAPChangeBuilder, introduce JNDI DirContext wrapper interface called LDAPConnection to make the client APIs more testable) * move various unit test classes out of the admin server-side unit tests so that they can be re-used by client unit tests * introduce "mock" client connections and property providers to facilitate testing of the admin client API * implement client API unit tests git-svn-id: https://svn.forgerock.org/opendj/trunk@1931 41b1ffd8-f28e-4786-ab96-9950f0a78031
07 May, 2007
1 commit
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@1825 41b1ffd8-f28e-4786-ab96-9950f0a78031
03 May, 2007
1 commit
-
1. Migrated configuration to the new admin framework. 2. Removed all dependencies on the JDK logger. (Issue 1503) 3. Added option to set the file permissions on all log files. (Issue 202) 4. Added option to write log files asynchronously. 5. Retention and rotation policies are now separate managed objects registered to the Directory Server. 6. Rotation and retention policies are not extensible. 6. Post-rotation actions are not yet implemented in this set of changes. 7. Tools and tasks can now use a custom log publisher that only picks up messages generated by a specific thread or thread group. 8. Debug logger no longer creates a log record object for every message. 9. Configurable Log File Paths (Issue 174) 10. Log Level Support by Category/Severity. This capability is limited for error logger. (Issue 177) 11. Support log file rotation (Issue 188) 12. Sized-based, Time-based rotation policies (Issues 190, 191) 13. Time-based, max size-based, file count-based retention policies (Issues 199, 201, 202) 14. Debug logger configurable via the admin framework (Issue 836) git-svn-id: https://svn.forgerock.org/opendj/trunk@1805 41b1ffd8-f28e-4786-ab96-9950f0a78031
02 May, 2007
1 commit
-
- Entry Cache - Account Status Notification Handler - Password Storage Scheme git-svn-id: https://svn.forgerock.org/opendj/trunk@1767 41b1ffd8-f28e-4786-ab96-9950f0a78031
24 Apr, 2007
1 commit
-
…discovered when specifying some duration based properties: * duration and size units had to be specified in default behaviors * upper/lower limit had to be specified without a unit and with values in the property's base unit (bytes for size properties) This change enables us to specify duration and size property constraints and defaults with or without units (when no unit is specified we default to the property's base unit). The Duration{Unit|PropertyDefinition} APIs have also been re-aligned with the Size{Unit|PropertyDefinition} APIs where possible and the unit tests updated (incl. replacing many bad uses of the assert keyword with the assertEquals TestNG method). git-svn-id: https://svn.forgerock.org/opendj/trunk@1689 41b1ffd8-f28e-4786-ab96-9950f0a78031
23 Apr, 2007
1 commit
-
It is now possible to constrain the set of valid values for a string property using regular expressions. git-svn-id: https://svn.forgerock.org/opendj/trunk@1678 41b1ffd8-f28e-4786-ab96-9950f0a78031
20 Apr, 2007
1 commit
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@1673 41b1ffd8-f28e-4786-ab96-9950f0a78031
19 Apr, 2007
3 commits
-
…tion definitions when defined in abstract managed object definitions. git-svn-id: https://svn.forgerock.org/opendj/trunk@1660 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@1659 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
This change introduces a new style-sheet which generates en_US property files containing all the description elements from the XML configuration definitions. In order to expose these properties the admin framework APIs have been modified as follows: * managed object definitions o user friendly name o user friendly plural name o synopsis o description * property definitions o synopsis o description o unit description (for integer properties) o value descriptions (for enumeration properties) o pattern descriptions (for string properties). This is pretty much useless at the moment since the string property definition class does not support patterns (even though the XML schema does): issue 1523 o alias default behavior description * relation definitions o synopsis o description o user friendly name (usually the user friendly name of the referenced managed object) o user friendly plural name for one-to-many relations (usually the user friendly plural name of the referenced managed object) Since there is currently only weak API support for required admin actions (issue 1426), the admin action descriptions cannot be exposed through any API at this stage. For I18N, translators are expected to take the generated property files and translate them into localized versions. git-svn-id: https://svn.forgerock.org/opendj/trunk@1658 41b1ffd8-f28e-4786-ab96-9950f0a78031
18 Apr, 2007
1 commit
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@1646 41b1ffd8-f28e-4786-ab96-9950f0a78031
16 Apr, 2007
1 commit
-
…classes, attribute types, and rdn sequences are present where required. git-svn-id: https://svn.forgerock.org/opendj/trunk@1632 41b1ffd8-f28e-4786-ab96-9950f0a78031
09 Apr, 2007
2 commits
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@1599 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
case-insensitive property of the string syntax. git-svn-id: https://svn.forgerock.org/opendj/trunk@1597 41b1ffd8-f28e-4786-ab96-9950f0a78031
24 Mar, 2007
1 commit
-
…d object's short name into global variables (I've indicated that they are private by prefixing them with an underscore). git-svn-id: https://svn.forgerock.org/opendj/trunk@1507 41b1ffd8-f28e-4786-ab96-9950f0a78031
23 Mar, 2007
1 commit
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@1502 41b1ffd8-f28e-4786-ab96-9950f0a78031