| New file |
| | |
| | | <html> |
| | | |
| | | <head> |
| | | <title>AspectJ License</title> |
| | | |
| | | |
| | | </head> |
| | | |
| | | <BODY BGCOLOR="white"> |
| | | |
| | | <h2 align="center"><b>AspectJ<sup><small>TM</small></sup> |
| | | Compiler and Core Tools License</b></h2> |
| | | |
| | | <p>This is a binary-only release. Source code |
| | | is available from |
| | | <a href="http://eclipse.org/aspectj">http://eclipse.org/aspectj</a></p> |
| | | |
| | | <p>The Eclipse Foundation makes available all content in this distribution ("Content"). |
| | | Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the |
| | | Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available |
| | | at <a href="../../org/documents/epl-v10.php">http://www.eclipse.org/legal/epl-v10.html</a>. |
| | | For purposes of the EPL, "Program" will mean the Content.</p> |
| | | |
| | | <p>If you did not receive this Content directly from the Eclipse Foundation, the Content is |
| | | being redistributed by another party ("Redistributor") and different terms and conditions may |
| | | apply to your use of any object code in the Content. Check the Redistributor's license |
| | | that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise |
| | | indicated below, the terms and conditions of the EPL still apply to any source code in the Content |
| | | and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p> |
| | | |
| | | |
| | | <h3>Third Party Content</h3> |
| | | <p>The Content includes items that have been sourced from third parties as set out below. If you |
| | | did not receive this Content directly from the Eclipse Foundation, the following is provided |
| | | for informational purposes only, and you should look to the Redistributor?s license for |
| | | terms and conditions of use.</p> |
| | | <em> |
| | | |
| | | <h4>BCEL v5.1</h4> |
| | | <p>This product contains software developed by the |
| | | Apache Software Foundation (<a href="http://www.apache.org/">http://www.apache.org</a>).</p> |
| | | |
| | | <p>AspectJ includes a modified version of the Apache Jakarta Byte Code Engineering Library (BCEL) v5.1. |
| | | BCEL is available at <a href="http://jakarta.apache.org/bcel/">http://jakarta.apache.org/bcel/</a>. Source |
| | | code for the modified version of BCEL is available at Eclipse.org in the AspectJ source tree. This code |
| | | is made available under the Apache Software License v1.1</p> |
| | | |
| | | <h4>ASM v2.2.1</h4> |
| | | <p>AspectJ includes a binary version of ASM v2.2.1 (<a href="http://asm.objectweb.org/index.html">http://asm.objectweb.org/</a>) |
| | | The source code for ASM is available from the ObjectWeb download site at |
| | | <a href="http://asm.objectweb.org/download/">http://asm.objectweb.org/download/</a>. |
| | | <p>The ASM license is available at <a href="http://asm.objectweb.org/license.html">http://asm.objectweb.org/license.html</a>. |
| | | The license is also reproduced here: |
| | | </p> |
| | | |
| | | <pre>Copyright (c) 2000-2005 INRIA, France Telecom |
| | | All rights reserved. |
| | | |
| | | Redistribution and use in source and binary forms, with or without |
| | | modification, are permitted provided that the following conditions |
| | | are met: |
| | | |
| | | 1. Redistributions of source code must retain the above copyright |
| | | notice, this list of conditions and the following disclaimer. |
| | | |
| | | 2. Redistributions in binary form must reproduce the above copyright |
| | | notice, this list of conditions and the following disclaimer in the |
| | | documentation and/or other materials provided with the distribution. |
| | | |
| | | 3. Neither the name of the copyright holders nor the names of its |
| | | contributors may be used to endorse or promote products derived from |
| | | this software without specific prior written permission. |
| | | |
| | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| | | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
| | | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| | | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| | | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| | | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| | | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| | | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
| | | THE POSSIBILITY OF SUCH DAMAGE. |
| | | </pre> |
| | | |
| | | </em> |
| | | |
| | | </body> |
| | | |
| | | </html> |
| New file |
| | |
| | | <html> |
| | | |
| | | <head> |
| | | <meta http-equiv="Content-Language" content="en-us"> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> |
| | | <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> |
| | | <meta name="ProgId" content="FrontPage.Editor.Document"> |
| | | <title>AspectJ Readme</title> |
| | | <STYLE TYPE="text/css"> |
| | | <!-- |
| | | |
| | | /* FOR THE SDA PAGE */ |
| | | |
| | | /* |
| | | BODY {margin-top: 15px; margin-left: 15px; margin-right: 15px;} |
| | | */ |
| | | |
| | | A:link { |
| | | color:#4756AC; |
| | | } |
| | | A:visited { |
| | | color:#60657B; |
| | | } |
| | | A:hover { |
| | | color:red |
| | | } |
| | | |
| | | INPUT {font:12px "Courier New", sans-serif;} |
| | | |
| | | H2 { |
| | | font:18px/18px Verdana, Arial, Helvetica, sans-serif; |
| | | color:black; |
| | | font-weight:bold; |
| | | margin-left: 10px; |
| | | line-height:110%; |
| | | } |
| | | H3 { |
| | | font:18px/18px Verdana, Arial, Helvetica, sans-serif; |
| | | color:black; |
| | | font-weight:bold; |
| | | margin-left: 10px; |
| | | line-height:110%; |
| | | } |
| | | H4 { |
| | | font:15px/16px Verdana, Arial, Helvetica, sans-serif; |
| | | color:black; |
| | | font-weight:bold; |
| | | margin-left: 10px; |
| | | line-height:140%; |
| | | } |
| | | P { |
| | | font:13px/13px Verdana, Arial, Helvetica, sans-serif; |
| | | margin-right: 10px; |
| | | margin-left: 10px; |
| | | line-height:130%; |
| | | } |
| | | .paragraph { |
| | | font:13px/13px Verdana, Arial, Helvetica, sans-serif; |
| | | margin-right: 10px; |
| | | margin-left: 10px; |
| | | line-height:130%; |
| | | } |
| | | .smallParagraph { |
| | | font:11px/11px Verdana, Arial, Helvetica, sans-serif; |
| | | margin-right: 10px; |
| | | margin-left: 10px; |
| | | line-height:130%; |
| | | } |
| | | /* |
| | | LI { |
| | | font:13px/13px Verdana, Arial, Helvetica, sans-serif; |
| | | text-align:justify; |
| | | margin-right: 10px; |
| | | margin-left: 15px; |
| | | line-height:120%; |
| | | } |
| | | |
| | | UL { |
| | | font:13px/13px Verdana, Arial, Helvetica, sans-serif; |
| | | text-align:justify; |
| | | margin-right: 10px; |
| | | margin-left: 15px; |
| | | line-height:120%; |
| | | }*/ |
| | | |
| | | DL { |
| | | font:13px/13px Verdana, Arial, Helvetica, sans-serif; |
| | | text-align:justify; |
| | | margin-right: 10px; |
| | | margin-left: 15px; |
| | | line-height:120%; |
| | | } |
| | | B { font:13px/13px Verdana, Arial, Helvetica, sans-serif; |
| | | font-weight:bold; |
| | | line-height:140%; |
| | | } |
| | | .footer { |
| | | font:10px/10px Verdana, Arial, Helvetica, sans-serif; |
| | | color:#888888; |
| | | text-align:left |
| | | } |
| | | .figureTitle { |
| | | font:13px/13px Verdana, Arial, Helvetica, sans-serif; |
| | | text-align:justify; |
| | | text-align:center |
| | | } |
| | | .copyrightNotice { |
| | | font:10px/10px Verdana, Arial, Helvetica, sans-serif; |
| | | color:#999999; |
| | | line-height:110%; |
| | | } |
| | | .smallHeading { |
| | | font:13px/13px Verdana, Arial, Helvetica, sans-serif; |
| | | font-weight:bold; |
| | | line-height:110%; |
| | | } |
| | | .tinyHeading { |
| | | font:11px/11px Verdana, Arial, Helvetica, sans-serif; |
| | | font-weight:bold; |
| | | line-height:120%; |
| | | } |
| | | .newsText { |
| | | font:11px/11px Verdana, Arial, Helvetica, sans-serif; |
| | | line-height:130%; |
| | | } |
| | | .smallParagraph { |
| | | font:11px/11px Verdana, Arial, Helvetica, sans-serif; |
| | | line-height:130%; |
| | | } |
| | | .fancyHeading { |
| | | font:20px/20px Chantilly, Arial, Helvetica, sans-serif; |
| | | margin-right: 10px; |
| | | color:#6f7a92; |
| | | margin-left: 10px; |
| | | line-height:130%; |
| | | } |
| | | |
| | | --> |
| | | </STYLE> |
| | | </head> |
| | | |
| | | <BODY BGCOLOR="white"> |
| | | |
| | | <h2 align="center">AspectJ<sup><small>TM</small></sup></h2> |
| | | |
| | | <p align="center"><i>Version 1.5.3 released on Wednesday Nov 22, 2006.</i></p> |
| | | |
| | | <h3>1 Contents of this Package</h3> |
| | | |
| | | <UL> |
| | | <li>the <a href="bin"><CODE><aspectj install dir>/bin</CODE></a> |
| | | directory has scripts for |
| | | <ul> |
| | | <li><CODE>ajc</CODE>: the compiler for the AspectJ language</li> |
| | | |
| | | <!-- XXX removed references to ajdoc and ajdb --> |
| | | <li><CODE>ajbrowser</CODE>: a graphical editor for |
| | | compiling programs with <CODE>ajc</CODE> |
| | | and navigating the crosscutting structure of those programs</li> |
| | | </ul> |
| | | |
| | | <li>the directory <a href="lib"><CODE><aspectj install dir>/lib</CODE></a> |
| | | has the AspectJ binaries, |
| | | <ul> |
| | | <li><CODE><a href="lib/aspectjtools.jar">aspectjtools.jar</a></CODE>: libraries for |
| | | <code>ajc</code>, <code>ajbrowser</code>, and the Ant tasks</li> |
| | | |
| | | <li><CODE>aspectjrt.jar</CODE>: runtime library for AspectJ programs</li> |
| | | </ul> |
| | | </li> |
| | | <li>the directory <a href="doc"><CODE><aspectj install dir>/doc</CODE></a> |
| | | has examples, programming and development environment guides, |
| | | instructions for the Ant tasks, a README for 1.1 changes, |
| | | and a quick reference, all linked |
| | | from the <a href="doc/index.html">index</a> page. |
| | | </li> |
| | | <li>this <a href="README-AspectJ.html">README-AspectJ.html</a>, and |
| | | </li> |
| | | <li>the <a href="LICENSE-AspectJ.html">LICENSE-AspectJ.html</a> |
| | | applying to this distribution. |
| | | </li> |
| | | </UL> |
| | | |
| | | <hr> |
| | | |
| | | <h3>2 Install Procedure</h3> |
| | | |
| | | <p>The AspectJ tools <code>ajc</code> and <code>ajbrowser</code> are |
| | | Java programs that can be run indirectly from the scripts or |
| | | directly from <code>aspectjtools.jar</code>. |
| | | The <code>aspectjrt.jar</code> needs to be on the classpath |
| | | when compiling or running programs compiled |
| | | by <code>ajc</code>. This procedure shows ways to do that. |
| | | </p> |
| | | |
| | | <p>After finishing automatic installation, we recommend that the |
| | | following steps to complete your installation:</p> |
| | | |
| | | <p><b>2.1 Add <CODE><aspectj install dir>/lib/aspectjrt.jar</CODE> |
| | | to your class path</b></p> |
| | | |
| | | <blockquote> |
| | | <p>This small .jar file contains classes required to compile programs |
| | | with the ajc compiler, and to run programs compiled with the ajc |
| | | compiler. You must have these classes somewhere on your class path |
| | | when running programs compiled with ajc. For detailed instructions |
| | | please see the <a href="#configInstructions">Configuration |
| | | Instructions</a> at the bottom of this document.</p> |
| | | </blockquote> |
| | | |
| | | <p><b>2.2 Put the AspectJ <code>bin</code> directory on your PATH</b></p> |
| | | |
| | | <blockquote> |
| | | <p>Modify your PATH to include <code><b><aspectj install |
| | | dir>/bin</b></code>. This will make it easier to run ajc. |
| | | For detailed instructions please see the |
| | | <a href="#configInstructions">Configuration Instructions</a> at the |
| | | bottom of this document.</p> |
| | | </blockquote> |
| | | |
| | | <p><b>2.3 Review the documentation and examples </b></p> |
| | | |
| | | <blockquote> |
| | | <p>Development and programming guides |
| | | are available in <a href="doc/index.html">docs</a>, |
| | | and example programs and an Ant script are available in |
| | | <a href="doc/examples/">examples</a>. |
| | | </blockquote> |
| | | |
| | | <p>If you did not use the automatic installation process, you may wish |
| | | to create short launch scripts to start ajc easily (section 3).</p> |
| | | |
| | | <hr> |
| | | |
| | | <h3>3. Running the Tools</h3> |
| | | |
| | | <p>If you did not use the automatic installation process or the |
| | | default launch scripts do not work on your system, you may wish to |
| | | create short launch scripts to start ajc easily. </p> |
| | | |
| | | <p>You can also run the <code>aspectjtools.jar</code> directly |
| | | using java's -jar option: |
| | | |
| | | <blockquote> |
| | | <CODE>C:\jdk1.3\bin\java.exe -jar D:\aspectj\lib\aspectjtools.jar %*</CODE> |
| | | </blockquote> |
| | | |
| | | <p>With no arguments or only argument list (.lst) files, this will launch |
| | | <code>ajbrowser</code>, the GUI structure browser; otherwise, it will |
| | | run <code>ajc</code>, the AspectJ compiler. This means that |
| | | if your browser is set up to run jar files, clicking a link |
| | | to <a href="lib/aspectjtools.jar">lib/aspectjtools.jar</a> will |
| | | launch <code>ajbrowser</code>. |
| | | |
| | | <p> You can also create scripts like those created by the installer. |
| | | These scripts use full paths that are system dependent so you will |
| | | likely have to change these. </p> |
| | | |
| | | <p>Here's a sample launch script for WinNT and Win2K (note that this |
| | | is single line in the .bat file):</p> |
| | | |
| | | <blockquote> |
| | | <CODE>C:\jdk1.3\bin\java.exe -classpath D:\aspectj\lib\aspectjtools.jar -Xmx64M |
| | | org.aspectj.tools.ajc.Main %*</CODE> |
| | | </blockquote> |
| | | |
| | | <p>Here's a sample launch script for a Unix shell (on Linux using Sun's JDK1.3):</p> |
| | | |
| | | <blockquote> |
| | | <CODE>/usr/java/jdk1.3/jre/bin/java -classpath /home/aspectj/lib/aspectjtools.jar -Xmx64M org.aspectj.tools.ajc.Main "$@"</CODE> |
| | | </blockquote> |
| | | |
| | | <hr> |
| | | <h3><a name="configInstructions">4. Configuration Instructions</a></h3> |
| | | |
| | | <h4>4.1 Adding <code><aspectj install dir>/lib/aspectjrt.jar</code> to your classpath</h4> |
| | | |
| | | <p>There are several ways to add this jar file to your classpath:</p> |
| | | |
| | | <ul> |
| | | <li> |
| | | copy <code>aspectjrt.jar</code> to the <code>jdk/jre/lib/ext</code> directory</li> |
| | | <li> |
| | | add <code>aspectjrt.jar</code> to your CLASSPATH |
| | | environment variable (see the next section for details)</li> |
| | | <li> |
| | | always use the "<code>-classpath aspectjrt.jar</code>" option when running |
| | | programs compiled with ajc</li> |
| | | </ul> |
| | | <h4>4.2 <A NAME="6.1">Setting the Environment Variables on Windows</A></h4> |
| | | |
| | | <P>The following instructions use the PATH variable as an example, but |
| | | this process is identical for the CLASSPATH variable. </P> |
| | | |
| | | <P>You can do the variables permanently for all the shells that you |
| | | will run or temporarily only for the current shell. To change the |
| | | PATH only in the current shell, and assuming you've installed AspectJ |
| | | in <code>C:\apps\aspectj</code>, type:</P> |
| | | |
| | | <blockquote><code>> set PATH=%PATH%;C:\apps\aspectj\bin</code></blockquote> |
| | | |
| | | <P><b>Changing Environment Variables Permanently on WinNT and Win2000</b> |
| | | <ul> |
| | | <li> |
| | | <p class="paragraph">open the Environment Variables dialog |
| | | <ul> |
| | | <li> |
| | | <p class="paragraph">WinNT: in "Control Panels" double-click |
| | | "System" and select the "Environment" tab</li> |
| | | <li> |
| | | <p class="paragraph">Win2K: in "Control Panels" double-click |
| | | "System", select the "Advanced" tab and click the |
| | | "Environment Variables..." button</li> |
| | | </ul> |
| | | </li> |
| | | <li> |
| | | <p class="paragraph">select the environment variable for editing, or add it |
| | | using the "New..." button if it does not exist</li> |
| | | <li> |
| | | <p class="paragraph">add the new entry separated from the others by a |
| | | semi-colon (;) and close the dialog</li> |
| | | <li> |
| | | <p class="paragraph">note that the change will not affect shells that were |
| | | already running </li> |
| | | </ul> |
| | | <P><b>Changing Environment Variables Permanently on Win9x</b> |
| | | <ul> |
| | | <li> |
| | | <p class="paragraph">open the AUTOEXEC.BAT with an editor such as NotePad</li> |
| | | |
| | | <LI> |
| | | <p class="paragraph">edit the PATH statement to include the new entry and save |
| | | the file, e.g.<BR> |
| | | |
| | | <blockquote> |
| | | <CODE>PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\;C:\DOS;C:\apps\aspectj\bin</CODE> |
| | | </blockquote> |
| | | </LI> |
| | | <LI> |
| | | <p class="paragraph">note that the change will not affect shells that were |
| | | already running |
| | | </ul> |
| | | |
| | | </body> |
| | | |
| | | </html> |
| New file |
| | |
| | | #!/bin/sh |
| | | # This file generated by AspectJ installer |
| | | # Created on Mon Jan 22 08:32:55 CST 2007 by bl155526 |
| | | |
| | | if [ "$JAVA_HOME" = "" ] ; then JAVA_HOME=/usr/jdk/instances/jdk1.5.0 |
| | | fi |
| | | if [ "$ASPECTJ_HOME" = "" ] ; then ASPECTJ_HOME=/home/bl155526/aspectj1.5 |
| | | fi |
| | | |
| | | "$JAVA_HOME/bin/java" -classpath "$ASPECTJ_HOME/lib/aspectjweaver.jar" "-Djava.system.class.loader=org.aspectj.weaver.loadtime.WeavingURLClassLoader" "-Daj.class.path=$ASPECTPATH:$CLASSPATH" "-Daj.aspect.path=$ASPECTPATH" "$@" |
| New file |
| | |
| | | #!/bin/sh |
| | | # This file generated by AspectJ installer |
| | | # Created on Mon Jan 22 08:32:55 CST 2007 by bl155526 |
| | | |
| | | if [ "$JAVA_HOME" = "" ] ; then JAVA_HOME=/usr/jdk/instances/jdk1.5.0 |
| | | fi |
| | | if [ "$ASPECTJ_HOME" = "" ] ; then ASPECTJ_HOME=/home/bl155526/aspectj1.5 |
| | | fi |
| | | |
| | | "$JAVA_HOME/bin/java" -classpath "$ASPECTJ_HOME/lib/aspectjweaver.jar:$CLASSPATH" "-javaagent:$ASPECTJ_HOME/lib/aspectjweaver.jar" "$@" |
| New file |
| | |
| | | #!/bin/sh |
| | | # This file generated by AspectJ installer |
| | | # Created on Mon Jan 22 08:32:55 CST 2007 by bl155526 |
| | | |
| | | if [ "$JAVA_HOME" = "" ] ; then JAVA_HOME=/usr/jdk/instances/jdk1.5.0 |
| | | fi |
| | | if [ "$ASPECTJ_HOME" = "" ] ; then ASPECTJ_HOME=/home/bl155526/aspectj1.5 |
| | | fi |
| | | |
| | | "$JAVA_HOME/bin/java" -classpath "$ASPECTJ_HOME/lib/aspectjtools.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH" -Xmx64M org.aspectj.tools.ajbrowser.Main "$@" |
| New file |
| | |
| | | #!/bin/sh |
| | | # This file generated by AspectJ installer |
| | | # Created on Mon Jan 22 08:32:55 CST 2007 by bl155526 |
| | | |
| | | if [ "$JAVA_HOME" = "" ] ; then JAVA_HOME=/usr/jdk/instances/jdk1.5.0 |
| | | fi |
| | | if [ "$ASPECTJ_HOME" = "" ] ; then ASPECTJ_HOME=/home/bl155526/aspectj1.5 |
| | | fi |
| | | |
| | | "$JAVA_HOME/bin/java" -classpath "$ASPECTJ_HOME/lib/aspectjtools.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH" -Xmx64M org.aspectj.tools.ajc.Main "$@" |
| New file |
| | |
| | | #!/bin/sh |
| | | # This file generated by AspectJ installer |
| | | # Created on Mon Jan 22 08:32:55 CST 2007 by bl155526 |
| | | |
| | | if [ "$JAVA_HOME" = "" ] ; then JAVA_HOME=/usr/jdk/instances/jdk1.5.0 |
| | | fi |
| | | if [ "$ASPECTJ_HOME" = "" ] ; then ASPECTJ_HOME=/home/bl155526/aspectj1.5 |
| | | fi |
| | | |
| | | "$JAVA_HOME/bin/java" -classpath "$ASPECTJ_HOME/lib/aspectjtools.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH" -Xmx64M org.aspectj.tools.ajdoc.Main "$@" |
| | |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License, Version 1.0 only |
| | | # (the "License"). You may not use this file except in compliance |
| | | # with the License. |
| | | # |
| | | # You can obtain a copy of the license at |
| | | # trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | # or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at |
| | | # trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | # add the following below this CDDL HEADER, with the fields enclosed |
| | | # by brackets "[]" replaced with your own identifying * information: |
| | | # Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | # |
| | | # |
| | | # This file contains the primary Directory Server configuration. It must not |
| | | # be directly edited while the server is online. The server configuration |
| | | # should only be managed using the administration utilities provided with the |
| | | # Directory Server. |
| | | |
| | | dn: cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-root-config |
| | | cn: config |
| | | ds-cfg-check-schema: true |
| | | ds-cfg-add-missing-rdn-attributes: true |
| | | ds-cfg-allow-attribute-name-exceptions: false |
| | | ds-cfg-invalid-attribute-syntax-behavior: reject |
| | | ds-cfg-single-structural-objectclass-behavior: reject |
| | | ds-cfg-notify-abandoned-operations: false |
| | | ds-cfg-proxied-authorization-identity-mapper-dn: cn=Exact Match,cn=Identity Mappers,cn=config |
| | | ds-cfg-size-limit: 1000 |
| | | ds-cfg-time-limit: 60 seconds |
| | | ds-cfg-lookthrough-limit: 5000 |
| | | ds-cfg-writability-mode: enabled |
| | | ds-cfg-bind-with-dn-requires-password: true |
| | | ds-cfg-reject-unauthenticated-requests: false |
| | | ds-cfg-single-structural-objectclass-behavior: reject |
| | | ds-cfg-check-schema: true |
| | | ds-cfg-allow-attribute-name-exceptions: false |
| | | ds-cfg-default-password-policy: cn=Default Password Policy,cn=Password Policies,cn=config |
| | | ds-cfg-proxied-authorization-identity-mapper-dn: cn=Exact Match,cn=Identity Mappers,cn=config |
| | | ds-cfg-lookthrough-limit: 5000 |
| | | ds-cfg-time-limit: 60 seconds |
| | | ds-cfg-writability-mode: enabled |
| | | ds-cfg-add-missing-rdn-attributes: true |
| | | ds-cfg-notify-abandoned-operations: true |
| | | ds-cfg-reject-unauthenticated-requests: false |
| | | cn: config |
| | | ds-cfg-size-limit: 1000 |
| | | modifiersName: cn=Privileged User,o=test |
| | | modifyTimestamp: 20070301011016Z |
| | | |
| | | dn: cn=Access Control Handler,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-access-control-handler |
| | | cn: Access Control Handler |
| | | ds-cfg-acl-handler-class: org.opends.server.authorization.dseecompat.AciProvider |
| | | objectClass: top |
| | | ds-cfg-acl-handler-enabled: false |
| | | ds-cfg-acl-handler-class: org.opends.server.authorization.dseecompat.AciProvider |
| | | cn: Access Control Handler |
| | | |
| | | dn: cn=Account Status Notification Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Account Status Notification Handlers |
| | | |
| | | dn: cn=Error Log Handler,cn=Account Status Notification Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-account-status-notification-handler |
| | | objectClass: top |
| | | objectClass: ds-cfg-error-log-account-status-notification-handler |
| | | cn: Error Log Handler |
| | | ds-cfg-account-status-notification-handler-class: org.opends.server.extensions.ErrorLogAccountStatusNotificationHandler |
| | | ds-cfg-account-status-notification-handler-enabled: true |
| | | ds-cfg-account-status-notification-type: account-temporarily-locked |
| | |
| | | ds-cfg-account-status-notification-type: password-expiring |
| | | ds-cfg-account-status-notification-type: password-reset |
| | | ds-cfg-account-status-notification-type: password-changed |
| | | cn: Error Log Handler |
| | | |
| | | dn: cn=Alert Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Alert Handlers |
| | | |
| | | dn: cn=JMX Alert Handler,cn=Alert Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-alert-handler |
| | | ds-cfg-alert-handler-enabled: true |
| | | cn: JMX Alert Handler |
| | | ds-cfg-alert-handler-class: org.opends.server.extensions.JMXAlertHandler |
| | | ds-cfg-alert-handler-enabled: true |
| | | |
| | | dn: cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Backends |
| | | |
| | | dn: ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-backend |
| | | objectClass: ds-cfg-je-backend |
| | | ds-cfg-backend-enabled: true |
| | | ds-cfg-backend-class: org.opends.server.backends.jeb.BackendImpl |
| | | ds-cfg-backend-id: userRoot |
| | | ds-cfg-backend-writability-mode: enabled |
| | | ds-cfg-backend-base-dn: dc=example,dc=com |
| | | ds-cfg-backend-directory: db |
| | | ds-cfg-backend-mode: 700 |
| | | ds-cfg-backend-index-entry-limit: 4000 |
| | | ds-cfg-backend-subtree-delete-size-limit: 100000 |
| | | ds-cfg-backend-preload-time-limit: 0 seconds |
| | | ds-cfg-backend-import-temp-directory: importTmp |
| | | ds-cfg-backend-import-buffer-size: 256 megabytes |
| | | ds-cfg-backend-import-queue-size: 100 |
| | | ds-cfg-backend-import-pass-size: 0 |
| | | ds-cfg-backend-import-thread-count: 8 |
| | | ds-cfg-backend-entries-compressed: false |
| | | ds-cfg-backend-deadlock-retry-limit: 10 |
| | | |
| | | dn: cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | cn: Index |
| | | |
| | | dn: ds-cfg-index-attribute=aci,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: aci |
| | | ds-cfg-index-type: presence |
| | | |
| | | dn: ds-cfg-index-attribute=cn,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: cn |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | |
| | | dn: ds-cfg-index-attribute=givenName,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: givenName |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | |
| | | dn: ds-cfg-index-attribute=mail,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: mail |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | |
| | | dn: ds-cfg-index-attribute=member,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: member |
| | | ds-cfg-index-type: equality |
| | | |
| | | dn: ds-cfg-index-attribute=objectClass,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: objectClass |
| | | ds-cfg-index-type: equality |
| | | |
| | | dn: ds-cfg-index-attribute=sn,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: sn |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | |
| | | dn: ds-cfg-index-attribute=telephoneNumber,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: telephoneNumber |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | |
| | | dn: ds-cfg-index-attribute=uid,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: uid |
| | | ds-cfg-index-type: equality |
| | | |
| | | dn: ds-cfg-index-attribute=ds-sync-hist,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: ds-sync-hist |
| | | ds-cfg-index-type: ordering |
| | | |
| | | dn: ds-cfg-index-attribute=entryuuid,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-attribute: entryuuid |
| | | ds-cfg-index-type: equality |
| | | |
| | | dn: cn=JE Database,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-database |
| | | cn: JE Database |
| | | ds-cfg-database-cache-percent: 10 |
| | | ds-cfg-database-cache-size: 0 megabytes |
| | | ds-cfg-database-txn-no-sync: false |
| | | ds-cfg-database-txn-write-no-sync: true |
| | | ds-cfg-database-run-cleaner: true |
| | | ds-cfg-database-cleaner-num-threads: 1 |
| | | ds-cfg-database-cleaner-min-utilization: 75 |
| | | ds-cfg-database-evictor-lru-only: true |
| | | ds-cfg-database-evictor-nodes-per-scan: 10 |
| | | ds-cfg-database-log-file-max: 50 megabytes |
| | | ds-cfg-database-logging-file-handler-on: true |
| | | ds-cfg-database-logging-level: CONFIG |
| | | ds-cfg-database-checkpointer-bytes-interval: 20 megabytes |
| | | ds-cfg-database-checkpointer-wakeup-interval: 30 seconds |
| | | ds-cfg-database-lock-num-lock-tables: 19 |
| | | |
| | | dn: ds-cfg-backend-id=backup,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-backend |
| | | objectClass: ds-cfg-backup-backend |
| | | ds-cfg-backend-enabled: true |
| | | ds-cfg-backend-class: org.opends.server.backends.BackupBackend |
| | | ds-cfg-backend-id: backup |
| | | ds-cfg-backend-writability-mode: disabled |
| | | objectClass: ds-cfg-backend |
| | | ds-cfg-backend-base-dn: cn=backups |
| | | ds-cfg-backend-id: backup |
| | | ds-cfg-backup-directory: bak |
| | | ds-cfg-backend-writability-mode: disabled |
| | | ds-cfg-backend-class: org.opends.server.backends.BackupBackend |
| | | ds-cfg-backend-enabled: true |
| | | |
| | | dn: ds-cfg-backend-id=config,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-backend |
| | | ds-cfg-backend-enabled: true |
| | | ds-cfg-backend-class: org.opends.server.extensions.ConfigFileHandler |
| | | ds-cfg-backend-base-dn: cn=config |
| | | ds-cfg-backend-id: config |
| | | ds-cfg-backend-writability-mode: enabled |
| | | ds-cfg-backend-base-dn: cn=config |
| | | ds-cfg-backend-class: org.opends.server.extensions.ConfigFileHandler |
| | | ds-cfg-backend-enabled: true |
| | | |
| | | dn: ds-cfg-backend-id=monitor,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-backend |
| | | ds-cfg-backend-enabled: true |
| | | ds-cfg-backend-class: org.opends.server.backends.MonitorBackend |
| | | ds-cfg-backend-base-dn: cn=monitor |
| | | ds-cfg-backend-id: monitor |
| | | ds-cfg-backend-writability-mode: disabled |
| | | ds-cfg-backend-base-dn: cn=monitor |
| | | ds-cfg-backend-class: org.opends.server.backends.MonitorBackend |
| | | ds-cfg-backend-enabled: true |
| | | |
| | | dn: ds-cfg-backend-id=schema,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-backend |
| | | objectClass: ds-cfg-schema-backend |
| | | ds-cfg-backend-enabled: true |
| | | ds-cfg-backend-class: org.opends.server.backends.SchemaBackend |
| | | ds-cfg-backend-id: schema |
| | | ds-cfg-backend-writability-mode: enabled |
| | | objectClass: ds-cfg-backend |
| | | ds-cfg-backend-base-dn: cn=schema |
| | | ds-cfg-backend-id: schema |
| | | ds-cfg-show-all-attributes: false |
| | | ds-cfg-backend-writability-mode: enabled |
| | | ds-cfg-backend-class: org.opends.server.backends.SchemaBackend |
| | | ds-cfg-backend-enabled: true |
| | | |
| | | dn: ds-cfg-backend-id=tasks,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-backend |
| | | objectClass: ds-cfg-task-backend |
| | | ds-cfg-backend-enabled: true |
| | | ds-cfg-backend-class: org.opends.server.backends.task.TaskBackend |
| | | ds-cfg-backend-id: tasks |
| | | ds-cfg-backend-writability-mode: enabled |
| | | ds-cfg-backend-base-dn: cn=tasks |
| | | ds-cfg-task-backing-file: config/tasks.ldif |
| | | ds-cfg-backend-id: tasks |
| | | ds-cfg-task-retention-time: 24 hours |
| | | ds-cfg-task-backing-file: config/tasks.ldif |
| | | ds-cfg-backend-writability-mode: enabled |
| | | ds-cfg-backend-class: org.opends.server.backends.task.TaskBackend |
| | | ds-cfg-backend-enabled: true |
| | | |
| | | dn: ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: ds-cfg-je-backend |
| | | objectClass: top |
| | | objectClass: ds-cfg-backend |
| | | ds-cfg-backend-import-buffer-size: 256 megabytes |
| | | ds-cfg-backend-deadlock-retry-limit: 10 |
| | | ds-cfg-backend-base-dn: dc=example,dc=com |
| | | ds-cfg-backend-id: userRoot |
| | | ds-cfg-backend-import-queue-size: 100 |
| | | ds-cfg-backend-index-entry-limit: 4000 |
| | | ds-cfg-backend-writability-mode: enabled |
| | | ds-cfg-backend-class: org.opends.server.backends.jeb.BackendImpl |
| | | ds-cfg-backend-subtree-delete-size-limit: 100000 |
| | | ds-cfg-backend-directory: db |
| | | ds-cfg-backend-import-thread-count: 8 |
| | | ds-cfg-backend-preload-time-limit: 0 seconds |
| | | ds-cfg-backend-import-pass-size: 0 |
| | | ds-cfg-backend-entries-compressed: false |
| | | ds-cfg-backend-mode: 700 |
| | | ds-cfg-backend-enabled: TRUE |
| | | ds-cfg-backend-import-temp-directory: importTmp |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301011024Z |
| | | |
| | | dn: cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Index |
| | | |
| | | dn: ds-cfg-index-attribute=aci,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-attribute: aci |
| | | |
| | | dn: ds-cfg-index-attribute=cn,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-attribute: cn |
| | | |
| | | dn: ds-cfg-index-attribute=ds-sync-hist,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: ordering |
| | | ds-cfg-index-attribute: ds-sync-hist |
| | | |
| | | dn: ds-cfg-index-attribute=entryuuid,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-attribute: entryuuid |
| | | |
| | | dn: ds-cfg-index-attribute=givenName,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-attribute: givenName |
| | | |
| | | dn: ds-cfg-index-attribute=mail,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-attribute: mail |
| | | |
| | | dn: ds-cfg-index-attribute=member,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-attribute: member |
| | | |
| | | dn: ds-cfg-index-attribute=objectClass,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-attribute: objectClass |
| | | |
| | | dn: ds-cfg-index-attribute=sn,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-attribute: sn |
| | | |
| | | dn: ds-cfg-index-attribute=telephoneNumber,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-attribute: telephoneNumber |
| | | |
| | | dn: ds-cfg-index-attribute=uid,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-attribute: uid |
| | | |
| | | dn: cn=JE Database,ds-cfg-backend-id=userRoot,cn=Backends,cn=config |
| | | objectClass: ds-cfg-je-database |
| | | objectClass: top |
| | | ds-cfg-database-lock-num-lock-tables: 19 |
| | | ds-cfg-database-evictor-nodes-per-scan: 10 |
| | | ds-cfg-database-logging-file-handler-on: true |
| | | ds-cfg-database-evictor-lru-only: true |
| | | ds-cfg-database-cache-percent: 10 |
| | | ds-cfg-database-run-cleaner: true |
| | | ds-cfg-database-cleaner-min-utilization: 75 |
| | | ds-cfg-database-checkpointer-wakeup-interval: 30 seconds |
| | | ds-cfg-database-cache-size: 0 megabytes |
| | | ds-cfg-database-checkpointer-bytes-interval: 20 megabytes |
| | | ds-cfg-database-log-file-max: 50 megabytes |
| | | ds-cfg-database-cleaner-num-threads: 1 |
| | | ds-cfg-database-logging-level: CONFIG |
| | | cn: JE Database |
| | | ds-cfg-database-txn-no-sync: false |
| | | ds-cfg-database-txn-write-no-sync: true |
| | | |
| | | dn: ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: ds-cfg-je-backend |
| | | objectClass: top |
| | | objectClass: ds-cfg-backend |
| | | ds-cfg-backend-import-buffer-size: 256 megabytes |
| | | ds-cfg-backend-deadlock-retry-limit: 10 |
| | | ds-cfg-backend-base-dn: dc=verify, dc=jeb |
| | | ds-cfg-backend-id: verifyRoot |
| | | ds-cfg-backend-import-queue-size: 100 |
| | | ds-cfg-backend-index-entry-limit: 10 |
| | | ds-cfg-backend-writability-mode: enabled |
| | | ds-cfg-backend-class: org.opends.server.backends.jeb.BackendImpl |
| | | ds-cfg-backend-subtree-delete-size-limit: 100000 |
| | | ds-cfg-backend-directory: db_verify |
| | | ds-cfg-backend-import-thread-count: 8 |
| | | ds-cfg-backend-preload-time-limit: 0 seconds |
| | | ds-cfg-backend-import-pass-size: 0 |
| | | ds-cfg-backend-entries-compressed: false |
| | | ds-cfg-backend-mode: 700 |
| | | ds-cfg-backend-enabled: TRUE |
| | | ds-cfg-backend-import-temp-directory: importTmp |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301010722Z |
| | | |
| | | dn: cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Index |
| | | |
| | | dn: ds-cfg-index-attribute=cn,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-attribute: cn |
| | | |
| | | dn: ds-cfg-index-attribute=ds-sync-hist,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: ordering |
| | | ds-cfg-index-attribute: ds-sync-hist |
| | | |
| | | dn: ds-cfg-index-attribute=entryuuid,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-attribute: entryuuid |
| | | |
| | | dn: ds-cfg-index-attribute=givenName,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-attribute: givenName |
| | | |
| | | dn: ds-cfg-index-attribute=mail,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-type: ordering |
| | | ds-cfg-index-attribute: mail |
| | | |
| | | dn: ds-cfg-index-attribute=member,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-attribute: member |
| | | |
| | | dn: ds-cfg-index-attribute=sn,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-attribute: sn |
| | | |
| | | dn: ds-cfg-index-attribute=telephoneNumber,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: presence |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-type: substring |
| | | ds-cfg-index-attribute: telephoneNumber |
| | | |
| | | dn: ds-cfg-index-attribute=uid,cn=Index,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-je-index |
| | | ds-cfg-index-type: equality |
| | | ds-cfg-index-attribute: uid |
| | | |
| | | dn: cn=JE Database,ds-cfg-backend-id=verifyRoot,cn=Backends,cn=config |
| | | objectClass: ds-cfg-je-database |
| | | objectClass: top |
| | | ds-cfg-database-lock-num-lock-tables: 19 |
| | | ds-cfg-database-evictor-nodes-per-scan: 10 |
| | | ds-cfg-database-logging-file-handler-on: true |
| | | ds-cfg-database-evictor-lru-only: true |
| | | ds-cfg-database-cache-percent: 10 |
| | | ds-cfg-database-run-cleaner: true |
| | | ds-cfg-database-cleaner-min-utilization: 75 |
| | | ds-cfg-database-checkpointer-wakeup-interval: 30 seconds |
| | | ds-cfg-database-cache-size: 0 megabytes |
| | | ds-cfg-database-checkpointer-bytes-interval: 20 megabytes |
| | | ds-cfg-database-log-file-max: 50 megabytes |
| | | ds-cfg-database-cleaner-num-threads: 1 |
| | | ds-cfg-database-logging-level: CONFIG |
| | | cn: JE Database |
| | | ds-cfg-database-txn-no-sync: false |
| | | ds-cfg-database-txn-write-no-sync: true |
| | | |
| | | dn: cn=Certificate Mappers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Certificate Mappers |
| | | |
| | | dn: cn=Fingerprint Mapper,cn=Certificate Mappers,cn=config |
| | | objectClass: ds-cfg-fingerprint-certificate-mapper |
| | | objectClass: top |
| | | objectClass: ds-cfg-certificate-mapper |
| | | ds-cfg-certificate-mapper-class: org.opends.server.extensions.FingerprintCertificateMapper |
| | | ds-cfg-certificate-mapper-enabled: true |
| | | ds-cfg-certificate-fingerprint-attribute-type: ds-certificate-fingerprint |
| | | cn: Fingerprint Mapper |
| | | ds-cfg-certificate-fingerprint-algorithm: MD5 |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301010843Z |
| | | |
| | | dn: cn=Subject Attribute to User Attribute,cn=Certificate Mappers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-subject-attribute-to-user-attribute-certificate-mapper |
| | | objectClass: ds-cfg-certificate-mapper |
| | | ds-cfg-certificate-mapper-enabled: true |
| | | ds-cfg-certificate-mapper-class: org.opends.server.extensions.SubjectAttributeToUserAttributeCertificateMapper |
| | | ds-cfg-certificate-subject-attribute-mapping: cn:cn |
| | | ds-cfg-certificate-subject-attribute-mapping: e:mail |
| | | cn: Subject Attribute to User Attribute |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301010846Z |
| | | |
| | | dn: cn=Subject DN to User Attribute,cn=Certificate Mappers,cn=config |
| | | objectClass: ds-cfg-subject-dn-to-user-attribute-certificate-mapper |
| | | objectClass: top |
| | | objectClass: ds-cfg-certificate-mapper |
| | | ds-cfg-certificate-mapper-enabled: true |
| | | ds-cfg-certificate-mapper-class: org.opends.server.extensions.SubjectDNToUserAttributeCertificateMapper |
| | | cn: Subject DN to User Attribute |
| | | ds-cfg-certificate-subject-attribute-type: ds-certificate-subject-dn |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301010846Z |
| | | |
| | | dn: cn=Subject Equals DN,cn=Certificate Mappers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-certificate-mapper |
| | | cn: Subject Equals DN |
| | | ds-cfg-certificate-mapper-class: org.opends.server.extensions.SubjectEqualsDNCertificateMapper |
| | | ds-cfg-certificate-mapper-enabled: true |
| | | |
| | | dn: cn=Subject DN to User Attribute,cn=Certificate Mappers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-certificate-mapper |
| | | objectClass: ds-cfg-subject-dn-to-user-attribute-certificate-mapper |
| | | cn: Subject DN to User Attribute |
| | | ds-cfg-certificate-mapper-class: org.opends.server.extensions.SubjectDNToUserAttributeCertificateMapper |
| | | ds-cfg-certificate-mapper-enabled: true |
| | | ds-cfg-certificate-subject-attribute-type: ds-certificate-subject-dn |
| | | |
| | | dn: cn=Subject Attribute to User Attribute,cn=Certificate Mappers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-certificate-mapper |
| | | objectClass: ds-cfg-subject-attribute-to-user-attribute-certificate-mapper |
| | | cn: Subject Attribute to User Attribute |
| | | ds-cfg-certificate-mapper-class: org.opends.server.extensions.SubjectAttributeToUserAttributeCertificateMapper |
| | | ds-cfg-certificate-mapper-enabled: true |
| | | ds-cfg-certificate-subject-attribute-mapping: cn:cn |
| | | ds-cfg-certificate-subject-attribute-mapping: e:mail |
| | | |
| | | dn: cn=Fingerprint Mapper,cn=Certificate Mappers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-certificate-mapper |
| | | objectClass: ds-cfg-fingerprint-certificate-mapper |
| | | cn: Fingerprint Mapper |
| | | ds-cfg-certificate-mapper-class: org.opends.server.extensions.FingerprintCertificateMapper |
| | | ds-cfg-certificate-mapper-enabled: true |
| | | ds-cfg-certificate-fingerprint-attribute-type: ds-certificate-fingerprint |
| | | ds-cfg-certificate-fingerprint-algorithm: MD5 |
| | | cn: Subject Equals DN |
| | | |
| | | dn: cn=Connection Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Connection Handlers |
| | | |
| | | dn: cn=LDAP Connection Handler,cn=Connection Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-connection-handler |
| | | objectClass: ds-cfg-ldap-connection-handler |
| | | cn: LDAP Connection Handler |
| | | ds-cfg-connection-handler-class: org.opends.server.protocols.ldap.LDAPConnectionHandler |
| | | ds-cfg-connection-handler-enabled: true |
| | | ds-cfg-listen-address: 0.0.0.0 |
| | | ds-cfg-listen-port: 389 |
| | | ds-cfg-accept-backlog: 128 |
| | | ds-cfg-allow-ldapv2: true |
| | | ds-cfg-keep-stats: true |
| | | ds-cfg-use-tcp-keepalive: true |
| | | ds-cfg-use-tcp-nodelay: true |
| | | ds-cfg-allow-tcp-reuse-address: true |
| | | ds-cfg-send-rejection-notice: true |
| | | ds-cfg-max-request-size: 5 megabytes |
| | | ds-cfg-num-request-handlers: 2 |
| | | ds-cfg-allow-start-tls: false |
| | | ds-cfg-use-ssl: false |
| | | ds-cfg-ssl-client-auth-policy: optional |
| | | ds-cfg-ssl-cert-nickname: server-cert |
| | | |
| | | dn: cn=LDAPS Connection Handler,cn=Connection Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-connection-handler |
| | | objectClass: ds-cfg-ldap-connection-handler |
| | | cn: LDAPS Connection Handler |
| | | ds-cfg-connection-handler-class: org.opends.server.protocols.ldap.LDAPConnectionHandler |
| | | ds-cfg-connection-handler-enabled: false |
| | | ds-cfg-listen-address: 0.0.0.0 |
| | | ds-cfg-listen-port: 636 |
| | | ds-cfg-accept-backlog: 128 |
| | | ds-cfg-allow-ldapv2: true |
| | | ds-cfg-keep-stats: true |
| | | ds-cfg-use-tcp-keepalive: true |
| | | ds-cfg-use-tcp-nodelay: true |
| | | ds-cfg-allow-tcp-reuse-address: true |
| | | ds-cfg-send-rejection-notice: true |
| | | ds-cfg-max-request-size: 5 megabytes |
| | | ds-cfg-num-request-handlers: 2 |
| | | ds-cfg-allow-start-tls: false |
| | | ds-cfg-use-ssl: true |
| | | ds-cfg-ssl-client-auth-policy: optional |
| | | ds-cfg-ssl-cert-nickname: server-cert |
| | | ds-cfg-key-manager-provider-dn: cn=JKS,cn=Key Manager Providers,cn=config |
| | | ds-cfg-trust-manager-provider-dn: cn=JKS,cn=Trust Manager Providers,cn=config |
| | | |
| | | dn: cn=JMX Connection Handler,cn=Connection Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-connection-handler |
| | | objectClass: ds-cfg-jmx-connection-handler |
| | | cn: JMX Connection Handler |
| | | ds-cfg-connection-handler-class: org.opends.server.protocols.jmx.JmxConnectionHandler |
| | | ds-cfg-connection-handler-enabled: true |
| | | ds-cfg-use-ssl: false |
| | | ds-cfg-listen-port: 1689 |
| | | ds-cfg-listen-port: 47147 |
| | | ds-cfg-ssl-cert-nickname: server-cert |
| | | ds-cfg-connection-handler-class: org.opends.server.protocols.jmx.JmxConnectionHandler |
| | | cn: JMX Connection Handler |
| | | ds-cfg-use-ssl: false |
| | | ds-cfg-connection-handler-enabled: true |
| | | |
| | | dn: cn=LDAP Connection Handler,cn=Connection Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-connection-handler |
| | | objectClass: ds-cfg-ldap-connection-handler |
| | | ds-cfg-trust-manager-provider-dn: cn=JKS,cn=Trust Manager Providers,cn=config |
| | | ds-cfg-use-tcp-nodelay: true |
| | | ds-cfg-use-tcp-keepalive: true |
| | | ds-cfg-ssl-client-auth-policy: optional |
| | | ds-cfg-allow-tcp-reuse-address: true |
| | | ds-cfg-use-ssl: false |
| | | ds-cfg-keep-stats: true |
| | | ds-cfg-listen-port: 47146 |
| | | ds-cfg-send-rejection-notice: true |
| | | ds-cfg-allow-start-tls: true |
| | | ds-cfg-ssl-cert-nickname: server-cert |
| | | ds-cfg-connection-handler-class: org.opends.server.protocols.ldap.LDAPConnectionHandler |
| | | ds-cfg-allow-ldapv2: true |
| | | ds-cfg-accept-backlog: 128 |
| | | cn: LDAP Connection Handler |
| | | ds-cfg-key-manager-provider-dn: cn=JKS,cn=Key Manager Providers,cn=config |
| | | ds-cfg-num-request-handlers: 2 |
| | | ds-cfg-listen-address: 0.0.0.0 |
| | | ds-cfg-connection-handler-enabled: true |
| | | ds-cfg-max-request-size: 5 megabytes |
| | | |
| | | dn: cn=LDAPS Connection Handler,cn=Connection Handlers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-connection-handler |
| | | objectClass: ds-cfg-ldap-connection-handler |
| | | ds-cfg-trust-manager-provider-dn: cn=JKS,cn=Trust Manager Providers,cn=config |
| | | ds-cfg-use-tcp-nodelay: true |
| | | ds-cfg-use-tcp-keepalive: true |
| | | ds-cfg-ssl-client-auth-policy: optional |
| | | ds-cfg-allow-tcp-reuse-address: true |
| | | ds-cfg-use-ssl: true |
| | | ds-cfg-keep-stats: true |
| | | ds-cfg-listen-port: 47148 |
| | | ds-cfg-send-rejection-notice: true |
| | | ds-cfg-allow-start-tls: false |
| | | ds-cfg-ssl-cert-nickname: server-cert |
| | | ds-cfg-connection-handler-class: org.opends.server.protocols.ldap.LDAPConnectionHandler |
| | | ds-cfg-allow-ldapv2: true |
| | | ds-cfg-accept-backlog: 128 |
| | | cn: LDAPS Connection Handler |
| | | ds-cfg-key-manager-provider-dn: cn=JKS,cn=Key Manager Providers,cn=config |
| | | ds-cfg-num-request-handlers: 2 |
| | | ds-cfg-listen-address: 0.0.0.0 |
| | | ds-cfg-connection-handler-enabled: true |
| | | ds-cfg-max-request-size: 5 megabytes |
| | | |
| | | dn: cn=Entry Cache,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-entry-cache |
| | | objectClass: ds-cfg-soft-reference-entry-cache |
| | | cn: Entry Cache |
| | | objectClass: ds-cfg-entry-cache |
| | | objectClass: top |
| | | ds-cfg-entry-cache-class: org.opends.server.extensions.SoftReferenceEntryCache |
| | | ds-cfg-entry-cache-enabled: false |
| | | cn: Entry Cache |
| | | |
| | | dn: cn=Extended Operations,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Extended Operations |
| | | |
| | | dn: cn=Cancel,cn=Extended Operations,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-extended-operation-handler |
| | | cn: Cancel |
| | | ds-cfg-extended-operation-handler-class: org.opends.server.extensions.CancelExtendedOperation |
| | | ds-cfg-extended-operation-handler-enabled: true |
| | | cn: Cancel |
| | | |
| | | dn: cn=Password Modify,cn=Extended Operations,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-extended-operation-handler |
| | | objectClass: ds-cfg-password-modify-extended-operation-handler |
| | | cn: Password Modify |
| | | ds-cfg-extended-operation-handler-class: org.opends.server.extensions.PasswordModifyExtendedOperation |
| | | ds-cfg-extended-operation-handler-enabled: true |
| | | cn: Password Modify |
| | | ds-cfg-identity-mapper-dn: cn=Exact Match,cn=Identity Mappers,cn=config |
| | | |
| | | dn: cn=StartTLS,cn=Extended Operations,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-extended-operation-handler |
| | | cn: StartTLS |
| | | ds-cfg-extended-operation-handler-class: org.opends.server.extensions.StartTLSExtendedOperation |
| | | ds-cfg-extended-operation-handler-enabled: true |
| | | cn: StartTLS |
| | | |
| | | dn: cn=Who Am I,cn=Extended Operations,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-extended-operation-handler |
| | | cn: Who Am I |
| | | ds-cfg-extended-operation-handler-class: org.opends.server.extensions.WhoAmIExtendedOperation |
| | | ds-cfg-extended-operation-handler-enabled: true |
| | | cn: Who Am I |
| | | |
| | | dn: cn=Group Implementations,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Group Implementations |
| | | |
| | | dn: cn=Static,cn=Group Implementations,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-group-implementation |
| | | cn: Static |
| | | ds-cfg-group-implementation-class: org.opends.server.extensions.StaticGroup |
| | | ds-cfg-group-implementation-enabled: true |
| | | ds-cfg-group-implementation-class: org.opends.server.extensions.StaticGroup |
| | | cn: Static |
| | | |
| | | dn: cn=Identity Mappers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Identity Mappers |
| | | |
| | | dn: cn=Exact Match,cn=Identity Mappers,cn=config |
| | | objectClass: ds-cfg-exact-match-identity-mapper |
| | | objectClass: top |
| | | objectClass: ds-cfg-identity-mapper |
| | | objectClass: ds-cfg-exact-match-identity-mapper |
| | | cn: Exact Match |
| | | ds-cfg-identity-mapper-class: org.opends.server.extensions.ExactMatchIdentityMapper |
| | | ds-cfg-identity-mapper-enabled: true |
| | | cn: Exact Match |
| | | ds-cfg-match-attribute: uid |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301010843Z |
| | | |
| | | dn: cn=Key Manager Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Key Manager Providers |
| | | |
| | | dn: cn=JKS,cn=Key Manager Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-key-manager-provider |
| | | objectClass: top |
| | | objectClass: ds-cfg-file-based-key-manager-provider |
| | | cn: JKS |
| | | ds-cfg-key-manager-provider-class: org.opends.server.extensions.FileBasedKeyManagerProvider |
| | | ds-cfg-key-manager-provider-enabled: false |
| | | ds-cfg-key-store-type: JKS |
| | | ds-cfg-key-store-file: config/keystore |
| | | ds-cfg-key-store-pin-file: config/keystore.pin |
| | | |
| | | dn: cn=PKCS12,cn=Key Manager Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-key-manager-provider |
| | | objectClass: ds-cfg-file-based-key-manager-provider |
| | | cn: PKCS12 |
| | | ds-cfg-key-manager-provider-class: org.opends.server.extensions.FileBasedKeyManagerProvider |
| | | ds-cfg-key-manager-provider-enabled: false |
| | | ds-cfg-key-store-type: PKCS12 |
| | | ds-cfg-key-store-file: config/keystore.p12 |
| | | ds-cfg-key-store-pin-file: config/keystore.pin |
| | | ds-cfg-key-store-pin: password |
| | | cn: JKS |
| | | ds-cfg-key-store-file: config/server.keystore |
| | | ds-cfg-key-manager-provider-enabled: true |
| | | |
| | | dn: cn=PKCS11,cn=Key Manager Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-key-manager-provider |
| | | objectClass: top |
| | | objectClass: ds-cfg-pkcs11-key-manager-provider |
| | | cn: PKCS11 |
| | | ds-cfg-key-manager-provider-class: org.opends.server.extensions.PKCS11KeyManagerProvider |
| | | ds-cfg-key-manager-provider-enabled: false |
| | | ds-cfg-key-store-pin-file: config/keystore.pin |
| | | cn: PKCS11 |
| | | ds-cfg-key-manager-provider-enabled: false |
| | | |
| | | dn: cn=PKCS12,cn=Key Manager Providers,cn=config |
| | | objectClass: ds-cfg-key-manager-provider |
| | | objectClass: top |
| | | objectClass: ds-cfg-file-based-key-manager-provider |
| | | ds-cfg-key-store-type: PKCS12 |
| | | ds-cfg-key-manager-provider-class: org.opends.server.extensions.FileBasedKeyManagerProvider |
| | | ds-cfg-key-store-pin: password |
| | | cn: PKCS12 |
| | | ds-cfg-key-store-file: config/server-cert.p12 |
| | | ds-cfg-key-manager-provider-enabled: true |
| | | |
| | | dn: cn=Loggers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Loggers |
| | | |
| | | dn: cn=File-Based Access Logger,cn=Loggers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-logger |
| | | objectClass: ds-cfg-access-logger |
| | | objectClass: ds-cfg-file-based-access-logger |
| | | cn: File-Based Access Logger |
| | | ds-cfg-logger-class: org.opends.server.loggers.DirectoryAccessLogger |
| | | ds-cfg-logger-enabled: true |
| | | ds-cfg-log-file: logs/access |
| | | ds-cfg-suppress-internal-operations: true |
| | | objectClass: ds-cfg-logger |
| | | objectClass: top |
| | | objectClass: ds-cfg-access-logger |
| | | ds-cfg-rotation-policy: Size |
| | | ds-cfg-rotation-policy: FixedTime |
| | | ds-cfg-size-limit: 104857600 |
| | | ds-cfg-log-file: logs/access |
| | | ds-cfg-logger-class: org.opends.server.loggers.DirectoryAccessLogger |
| | | ds-cfg-fixed-time-limit: 86400000 |
| | | ds-cfg-suppress-internal-operations: false |
| | | cn: File-Based Access Logger |
| | | ds-cfg-logger-enabled: true |
| | | ds-cfg-size-limit: 104857600 |
| | | |
| | | dn: cn=File-Based Audit Logger,cn=Loggers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-logger |
| | | objectClass: ds-cfg-access-logger |
| | | objectClass: ds-cfg-file-based-access-logger |
| | | cn: File-Based Audit Logger |
| | | ds-cfg-logger-class: org.opends.server.loggers.DirectoryAuditLogger |
| | | ds-cfg-logger-enabled: false |
| | | ds-cfg-log-file: logs/audit |
| | | ds-cfg-suppress-internal-operations: true |
| | | objectClass: ds-cfg-logger |
| | | objectClass: top |
| | | objectClass: ds-cfg-access-logger |
| | | ds-cfg-rotation-policy: Size |
| | | ds-cfg-rotation-policy: FixedTime |
| | | ds-cfg-size-limit: 104857600 |
| | | ds-cfg-log-file: logs/audit |
| | | ds-cfg-logger-class: org.opends.server.loggers.DirectoryAuditLogger |
| | | ds-cfg-fixed-time-limit: 86400000 |
| | | ds-cfg-suppress-internal-operations: true |
| | | cn: File-Based Audit Logger |
| | | ds-cfg-logger-enabled: false |
| | | ds-cfg-size-limit: 104857600 |
| | | |
| | | dn: cn=File-Based Debug Logger,cn=Loggers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-logger |
| | | objectClass: ds-cfg-debug-logger |
| | | objectClass: top |
| | | objectClass: ds-cfg-file-based-debug-logger |
| | | cn: File-Based Debug Logger |
| | | ds-cfg-logger-class: org.opends.server.loggers.DirectoryDebugLogger |
| | | ds-cfg-logger-enabled: true |
| | | objectClass: ds-cfg-debug-logger |
| | | ds-cfg-log-file: logs/debug |
| | | ds-cfg-override-severity: EXCEPTION=INFO |
| | | ds-cfg-logger-class: org.opends.server.loggers.DirectoryDebugLogger |
| | | ds-cfg-default-severity: ERROR |
| | | ds-cfg-default-severity: WARNING |
| | | cn: File-Based Debug Logger |
| | | ds-cfg-logger-enabled: true |
| | | |
| | | dn: cn=File-Based Error Logger,cn=Loggers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-logger |
| | | objectClass: ds-cfg-error-logger |
| | | objectClass: top |
| | | objectClass: ds-cfg-file-based-error-logger |
| | | cn: File-Based Error Logger |
| | | ds-cfg-logger-class: org.opends.server.loggers.DirectoryErrorLogger |
| | | ds-cfg-logger-enabled: true |
| | | ds-cfg-rotation-policy: Size |
| | | ds-cfg-rotation-policy: FixedTime |
| | | ds-cfg-log-file: logs/errors |
| | | ds-cfg-logger-class: org.opends.server.loggers.DirectoryErrorLogger |
| | | ds-cfg-fixed-time-limit: 86400000 |
| | | ds-cfg-default-severity: FATAL_ERROR |
| | | ds-cfg-default-severity: NOTICE |
| | | ds-cfg-default-severity: SEVERE_ERROR |
| | | ds-cfg-default-severity: SEVERE_WARNING |
| | | ds-cfg-rotation-policy: Size |
| | | ds-cfg-rotation-policy: FixedTime |
| | | cn: File-Based Error Logger |
| | | ds-cfg-logger-enabled: true |
| | | ds-cfg-size-limit: 104857600 |
| | | ds-cfg-fixed-time-limit: 86400000 |
| | | |
| | | dn: cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Matching Rules |
| | | |
| | | dn: cn=Auth Password Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Auth Password Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.AuthPasswordEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Auth Password Exact Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Auth Password Exact Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.AuthPasswordExactEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Bit String Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Bit String Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.BitStringEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Boolean Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Boolean Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.BooleanEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Exact Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Exact Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseExactEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Exact Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | cn: Case Exact Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseExactOrderingMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Exact Substring Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | cn: Case Exact Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseExactSubstringMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Exact IA5 Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Exact IA5 Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseExactIA5EqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Exact IA5 Substring Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Exact IA5 Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseExactIA5SubstringMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Ignore Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | cn: Case Ignore Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Ignore Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | dn: cn=Case Exact Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | cn: Case Ignore Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreOrderingMatchingRule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Exact Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseExactOrderingMatchingRule |
| | | |
| | | dn: cn=Case Ignore Substring Matching Rule,cn=Matching Rules,cn=config |
| | | dn: cn=Case Exact Substring Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | cn: Case Ignore Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreSubstringMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Exact Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseExactSubstringMatchingRule |
| | | |
| | | dn: cn=Case Ignore IA5 Equality Matching Rule,cn=Matching Rules,cn=config |
| | | dn: cn=Case Ignore Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Ignore Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreEqualityMatchingRule |
| | | |
| | | dn: cn=Case Ignore IA5 Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Ignore IA5 Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreIA5EqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Ignore IA5 Substring Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Ignore IA5 Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreIA5SubstringMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Ignore List Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Ignore List Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreListEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Case Ignore List Substring Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Ignore List Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreListSubstringMatchingRule |
| | | |
| | | dn: cn=Case Ignore Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Ignore Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreOrderingMatchingRule |
| | | |
| | | dn: cn=Case Ignore Substring Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Case Ignore Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.CaseIgnoreSubstringMatchingRule |
| | | |
| | | dn: cn=Directory String First Component Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Directory String First Component Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.DirectoryStringFirstComponentEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Distinguished Name Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Distinguished Name Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.DistinguishedNameEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Double Metaphone Approximate Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-approximate-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Double Metaphone Approximate Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.DoubleMetaphoneApproximateMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Generalized Time Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Generalized Time Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.GeneralizedTimeEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Generalized Time Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Generalized Time Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.GeneralizedTimeOrderingMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Historical CSN Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | ds-cfg-matching-rule-class: org.opends.server.synchronization.plugin.HistoricalCsnOrderingMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Historical CSN Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.synchronization.plugin.HistoricalCsnOrderingMatchingRule |
| | | |
| | | dn: cn=Integer Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Integer Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.IntegerEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Integer Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | cn: Integer Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.IntegerOrderingMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Integer First Component Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Integer First Component Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.IntegerFirstComponentEqualityMatchingRule |
| | | |
| | | dn: cn=Integer Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Integer Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.IntegerOrderingMatchingRule |
| | | |
| | | dn: cn=Keyword Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Keyword Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.KeywordEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Numeric String Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Numeric String Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.NumericStringEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Numeric String Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Numeric String Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.NumericStringOrderingMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Numeric String Substring Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Numeric String Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.NumericStringSubstringMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Object Identifier Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Object Identifier Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.ObjectIdentifierEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Object Identifier First Component Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Object Identifier First Component Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.ObjectIdentifierFirstComponentEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Octet String Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Octet String Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.OctetStringEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Octet String Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Octet String Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.OctetStringOrderingMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Octet String Substring Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Octet String Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.OctetStringSubstringMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Presentation Address Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Presentation Address Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.PresentationAddressEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Protocol Information Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Protocol Information Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.ProtocolInformationEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Telephone Number Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Telephone Number Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.TelephoneNumberEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Telephone Number Substring Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Telephone Number Substring Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.TelephoneNumberSubstringMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Unique Member Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Unique Member Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.UniqueMemberEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=User Password Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: User Password Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.UserPasswordEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=User Password Exact Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: User Password Exact Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.UserPasswordExactEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=UUID Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-equality-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: UUID Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.UUIDEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=UUID Ordering Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-ordering-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: UUID Ordering Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.UUIDOrderingMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Word Equality Matching Rule,cn=Matching Rules,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-matching-rule |
| | | objectClass: ds-cfg-substring-matching-rule |
| | | ds-cfg-matching-rule-enabled: true |
| | | cn: Word Equality Matching Rule |
| | | ds-cfg-matching-rule-class: org.opends.server.schema.WordEqualityMatchingRule |
| | | ds-cfg-matching-rule-enabled: true |
| | | |
| | | dn: cn=Monitor Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Monitor Providers |
| | | |
| | | dn: cn=JVM Stack Trace,cn=Monitor Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-monitor-provider |
| | | cn: JVM Stack Trace |
| | | objectClass: top |
| | | ds-cfg-monitor-provider-class: org.opends.server.monitors.StackTraceMonitorProvider |
| | | ds-cfg-monitor-provider-enabled: true |
| | | cn: JVM Stack Trace |
| | | |
| | | dn: cn=System Info,cn=Monitor Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-monitor-provider |
| | | cn: System Info |
| | | objectClass: top |
| | | ds-cfg-monitor-provider-class: org.opends.server.monitors.SystemInfoMonitorProvider |
| | | ds-cfg-monitor-provider-enabled: true |
| | | cn: System Info |
| | | |
| | | dn: cn=Version,cn=Monitor Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-monitor-provider |
| | | cn: Version |
| | | objectClass: top |
| | | ds-cfg-monitor-provider-class: org.opends.server.monitors.VersionMonitorProvider |
| | | ds-cfg-monitor-provider-enabled: true |
| | | cn: Version |
| | | |
| | | dn: cn=Password Generators,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Password Generators |
| | | |
| | | dn: cn=Random Password Generator,cn=Password Generators,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-generator |
| | | objectClass: top |
| | | objectClass: ds-cfg-random-password-generator |
| | | cn: Random Password Generator |
| | | ds-cfg-password-generator-class: org.opends.server.extensions.RandomPasswordGenerator |
| | | ds-cfg-password-generator-enabled: true |
| | | ds-cfg-password-format: alpha:3,numeric:2,alpha:3 |
| | | ds-cfg-password-character-set: alpha:abcdefghijklmnopqrstuvwxyz |
| | | ds-cfg-password-character-set: numeric:0123456789 |
| | | ds-cfg-password-format: alpha:3,numeric:2,alpha:3 |
| | | ds-cfg-password-generator-enabled: true |
| | | cn: Random Password Generator |
| | | |
| | | dn: cn=Password Policies,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Password Policies |
| | | |
| | | dn: cn=Default Password Policy,cn=Password Policies,cn=config |
| | | objectClass: top |
| | | dn: cn=Clear UserPassword Policy,cn=Password Policies,cn=config |
| | | objectClass: ds-cfg-password-policy |
| | | cn: Default Password Policy |
| | | ds-cfg-password-attribute: userPassword |
| | | ds-cfg-default-password-storage-scheme: SSHA |
| | | ds-cfg-allow-expired-password-changes: false |
| | | ds-cfg-allow-multiple-password-values: false |
| | | ds-cfg-allow-pre-encoded-passwords: false |
| | | ds-cfg-allow-user-password-changes: true |
| | | ds-cfg-expire-passwords-without-warning: false |
| | | ds-cfg-force-change-on-add: false |
| | | ds-cfg-force-change-on-reset: false |
| | | ds-cfg-grace-login-count: 0 |
| | | ds-cfg-idle-lockout-interval: 0 seconds |
| | | ds-cfg-lockout-failure-count: 0 |
| | | objectClass: top |
| | | ds-cfg-skip-validation-for-administrators: false |
| | | ds-cfg-lockout-duration: 0 seconds |
| | | ds-cfg-maximum-password-age: 0 seconds |
| | | ds-cfg-lockout-failure-expiration-interval: 0 seconds |
| | | ds-cfg-allow-user-password-changes: true |
| | | ds-cfg-allow-multiple-password-values: false |
| | | ds-cfg-minimum-password-age: 0 seconds |
| | | ds-cfg-force-change-on-add: false |
| | | ds-cfg-allow-expired-password-changes: false |
| | | ds-cfg-password-attribute: userPassword |
| | | ds-cfg-lockout-failure-count: 0 |
| | | ds-cfg-allow-pre-encoded-passwords: false |
| | | ds-cfg-require-secure-password-changes: false |
| | | ds-cfg-password-change-requires-current-password: false |
| | | ds-cfg-force-change-on-reset: false |
| | | ds-cfg-password-expiration-warning-interval: 5 days |
| | | ds-cfg-default-password-storage-scheme: CLEAR |
| | | ds-cfg-grace-login-count: 0 |
| | | ds-cfg-maximum-password-reset-age: 0 seconds |
| | | ds-cfg-password-validator-dn: cn=Test Password Validator,cn=Password Validators,cn=config |
| | | ds-cfg-expire-passwords-without-warning: false |
| | | ds-cfg-idle-lockout-interval: 0 seconds |
| | | ds-cfg-password-generator-dn: cn=Random Password Generator,cn=Password Generators,cn=config |
| | | ds-cfg-require-secure-authentication: false |
| | | cn: Test AuthPassword Policy |
| | | |
| | | dn: cn=Default Password Policy,cn=Password Policies,cn=config |
| | | objectClass: ds-cfg-password-policy |
| | | objectClass: top |
| | | ds-cfg-skip-validation-for-administrators: false |
| | | ds-cfg-password-expiration-warning-interval: 5 days |
| | | ds-cfg-default-password-storage-scheme: SSHA |
| | | ds-cfg-grace-login-count: 0 |
| | | ds-cfg-lockout-duration: 0 seconds |
| | | ds-cfg-maximum-password-age: 0 seconds |
| | | ds-cfg-maximum-password-reset-age: 0 seconds |
| | | ds-cfg-password-expiration-warning-interval: 5 days |
| | | ds-cfg-lockout-failure-expiration-interval: 0 seconds |
| | | ds-cfg-allow-user-password-changes: true |
| | | ds-cfg-allow-multiple-password-values: false |
| | | ds-cfg-minimum-password-age: 0 seconds |
| | | ds-cfg-expire-passwords-without-warning: false |
| | | ds-cfg-idle-lockout-interval: 0 seconds |
| | | ds-cfg-password-generator-dn: cn=Random Password Generator,cn=Password Generators,cn=config |
| | | ds-cfg-password-change-requires-current-password: false |
| | | ds-cfg-require-secure-authentication: false |
| | | ds-cfg-force-change-on-add: false |
| | | ds-cfg-allow-expired-password-changes: false |
| | | ds-cfg-password-attribute: userPassword |
| | | ds-cfg-lockout-failure-count: 0 |
| | | ds-cfg-allow-pre-encoded-passwords: false |
| | | cn: Default Password Policy |
| | | ds-cfg-require-secure-password-changes: false |
| | | ds-cfg-skip-validation-for-administrators: false |
| | | ds-cfg-password-change-requires-current-password: false |
| | | ds-cfg-force-change-on-reset: false |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301010844Z |
| | | |
| | | dn: cn=Root Password Policy,cn=Password Policies,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-policy |
| | | cn: Root Password Policy |
| | | ds-cfg-password-attribute: userPassword |
| | | objectClass: top |
| | | ds-cfg-password-expiration-warning-interval: 5 days |
| | | ds-cfg-skip-validation-for-administrators: false |
| | | ds-cfg-default-password-storage-scheme: SSHA |
| | | ds-cfg-allow-expired-password-changes: false |
| | | ds-cfg-allow-multiple-password-values: false |
| | | ds-cfg-allow-pre-encoded-passwords: false |
| | | ds-cfg-allow-user-password-changes: true |
| | | ds-cfg-expire-passwords-without-warning: false |
| | | ds-cfg-force-change-on-add: false |
| | | ds-cfg-force-change-on-reset: false |
| | | ds-cfg-grace-login-count: 0 |
| | | ds-cfg-idle-lockout-interval: 0 seconds |
| | | ds-cfg-lockout-failure-count: 0 |
| | | ds-cfg-lockout-duration: 0 seconds |
| | | ds-cfg-maximum-password-reset-age: 0 seconds |
| | | ds-cfg-maximum-password-age: 0 seconds |
| | | ds-cfg-lockout-failure-expiration-interval: 0 seconds |
| | | ds-cfg-allow-multiple-password-values: false |
| | | ds-cfg-allow-user-password-changes: true |
| | | ds-cfg-minimum-password-age: 0 seconds |
| | | ds-cfg-expire-passwords-without-warning: false |
| | | ds-cfg-idle-lockout-interval: 0 seconds |
| | | ds-cfg-require-secure-authentication: false |
| | | ds-cfg-force-change-on-add: false |
| | | ds-cfg-allow-pre-encoded-passwords: false |
| | | ds-cfg-allow-expired-password-changes: false |
| | | ds-cfg-password-attribute: userPassword |
| | | ds-cfg-lockout-failure-count: 0 |
| | | cn: Root Password Policy |
| | | ds-cfg-require-secure-password-changes: false |
| | | ds-cfg-password-change-requires-current-password: true |
| | | ds-cfg-force-change-on-reset: false |
| | | |
| | | dn: cn=SHA1 AuthPassword Policy,cn=Password Policies,cn=config |
| | | objectClass: ds-cfg-password-policy |
| | | objectClass: top |
| | | ds-cfg-skip-validation-for-administrators: false |
| | | ds-cfg-password-expiration-warning-interval: 5 days |
| | | ds-cfg-default-password-storage-scheme: SHA1 |
| | | ds-cfg-grace-login-count: 0 |
| | | ds-cfg-lockout-duration: 0 seconds |
| | | ds-cfg-maximum-password-age: 0 seconds |
| | | ds-cfg-maximum-password-reset-age: 0 seconds |
| | | ds-cfg-password-expiration-warning-interval: 5 days |
| | | ds-cfg-password-change-requires-current-password: true |
| | | ds-cfg-lockout-failure-expiration-interval: 0 seconds |
| | | ds-cfg-allow-user-password-changes: true |
| | | ds-cfg-allow-multiple-password-values: false |
| | | ds-cfg-minimum-password-age: 0 seconds |
| | | ds-cfg-expire-passwords-without-warning: false |
| | | ds-cfg-idle-lockout-interval: 0 seconds |
| | | ds-cfg-password-generator-dn: cn=Random Password Generator,cn=Password Generators,cn=config |
| | | ds-cfg-require-secure-authentication: false |
| | | ds-cfg-force-change-on-add: false |
| | | ds-cfg-allow-expired-password-changes: false |
| | | ds-cfg-password-attribute: authPassword |
| | | ds-cfg-lockout-failure-count: 0 |
| | | ds-cfg-allow-pre-encoded-passwords: false |
| | | cn: SHA1 AuthPassword Policy |
| | | ds-cfg-require-secure-password-changes: false |
| | | ds-cfg-password-change-requires-current-password: false |
| | | ds-cfg-force-change-on-reset: false |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301010844Z |
| | | |
| | | dn: cn=SSHA512 UserPassword Policy,cn=Password Policies,cn=config |
| | | objectClass: ds-cfg-password-policy |
| | | objectClass: top |
| | | ds-cfg-skip-validation-for-administrators: false |
| | | ds-cfg-lockout-duration: 0 seconds |
| | | ds-cfg-maximum-password-age: 0 seconds |
| | | ds-cfg-lockout-failure-expiration-interval: 0 seconds |
| | | ds-cfg-allow-user-password-changes: true |
| | | ds-cfg-allow-multiple-password-values: false |
| | | ds-cfg-minimum-password-age: 0 seconds |
| | | ds-cfg-force-change-on-add: false |
| | | ds-cfg-allow-expired-password-changes: false |
| | | ds-cfg-password-attribute: userPassword |
| | | ds-cfg-lockout-failure-count: 0 |
| | | ds-cfg-allow-pre-encoded-passwords: false |
| | | ds-cfg-require-secure-password-changes: false |
| | | ds-cfg-password-change-requires-current-password: false |
| | | ds-cfg-force-change-on-reset: false |
| | | ds-cfg-password-expiration-warning-interval: 5 days |
| | | ds-cfg-default-password-storage-scheme: SSHA512 |
| | | ds-cfg-grace-login-count: 0 |
| | | ds-cfg-maximum-password-reset-age: 0 seconds |
| | | ds-cfg-password-validator-dn: cn=Test Password Validator,cn=Password Validators,cn=config |
| | | ds-cfg-expire-passwords-without-warning: false |
| | | ds-cfg-idle-lockout-interval: 0 seconds |
| | | ds-cfg-password-generator-dn: cn=Random Password Generator,cn=Password Generators,cn=config |
| | | ds-cfg-require-secure-authentication: false |
| | | cn: SSHA512 UserPassword Policy |
| | | |
| | | dn: cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Password Storage Schemes |
| | | |
| | | dn: cn=Base64,cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-storage-scheme |
| | | cn: Base64 |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.Base64PasswordStorageScheme |
| | | ds-cfg-password-storage-scheme-enabled: true |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.Base64PasswordStorageScheme |
| | | cn: Base64 |
| | | |
| | | dn: cn=Clear,cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-storage-scheme |
| | | cn: Clear |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.ClearPasswordStorageScheme |
| | | ds-cfg-password-storage-scheme-enabled: true |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.ClearPasswordStorageScheme |
| | | cn: Clear |
| | | |
| | | dn: cn=MD5,cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-storage-scheme |
| | | cn: MD5 |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.MD5PasswordStorageScheme |
| | | ds-cfg-password-storage-scheme-enabled: true |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.MD5PasswordStorageScheme |
| | | cn: MD5 |
| | | |
| | | dn: cn=Salted MD5,cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-storage-scheme |
| | | cn: Salted MD5 |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedMD5PasswordStorageScheme |
| | | ds-cfg-password-storage-scheme-enabled: true |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedMD5PasswordStorageScheme |
| | | cn: Salted MD5 |
| | | |
| | | dn: cn=Salted SHA-1,cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-storage-scheme |
| | | cn: Salted SHA-1 |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedSHA1PasswordStorageScheme |
| | | ds-cfg-password-storage-scheme-enabled: true |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedSHA1PasswordStorageScheme |
| | | cn: Salted SHA-1 |
| | | |
| | | dn: cn=Salted SHA-256,cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-storage-scheme |
| | | cn: Salted SHA-256 |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedSHA256PasswordStorageScheme |
| | | ds-cfg-password-storage-scheme-enabled: true |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedSHA256PasswordStorageScheme |
| | | cn: Salted SHA-256 |
| | | |
| | | dn: cn=Salted SHA-384,cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-storage-scheme |
| | | cn: Salted SHA-384 |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedSHA384PasswordStorageScheme |
| | | ds-cfg-password-storage-scheme-enabled: true |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedSHA384PasswordStorageScheme |
| | | cn: Salted SHA-384 |
| | | |
| | | dn: cn=Salted SHA-512,cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-storage-scheme |
| | | cn: Salted SHA-512 |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedSHA512PasswordStorageScheme |
| | | ds-cfg-password-storage-scheme-enabled: true |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SaltedSHA512PasswordStorageScheme |
| | | cn: Salted SHA-512 |
| | | |
| | | dn: cn=SHA-1,cn=Password Storage Schemes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-storage-scheme |
| | | cn: SHA-1 |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SHA1PasswordStorageScheme |
| | | ds-cfg-password-storage-scheme-enabled: true |
| | | ds-cfg-password-storage-scheme-class: org.opends.server.extensions.SHA1PasswordStorageScheme |
| | | cn: SHA-1 |
| | | |
| | | dn: cn=Password Validators,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Password Validators |
| | | |
| | | dn: cn=Length-Based Password Validator,cn=Password Validators,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-password-validator |
| | | objectClass: top |
| | | objectClass: ds-cfg-length-based-password-validator |
| | | cn: Length-Based Password Validator |
| | | ds-cfg-password-validator-class: org.opends.server.extensions.LengthBasedPasswordValidator |
| | | ds-cfg-password-validator-enabled: true |
| | | ds-cfg-minimum-password-length: 6 |
| | | ds-cfg-maximum-password-length: 0 |
| | | ds-cfg-password-validator-class: org.opends.server.extensions.LengthBasedPasswordValidator |
| | | ds-cfg-minimum-password-length: 6 |
| | | cn: Length-Based Password Validator |
| | | ds-cfg-password-validator-enabled: true |
| | | |
| | | dn: cn=Test Password Validator,cn=Password Validators,cn=config |
| | | objectClass: ds-cfg-password-validator |
| | | objectClass: top |
| | | ds-cfg-password-validator-class: org.opends.server.extensions.TestPasswordValidator |
| | | cn: Test Password Validator |
| | | ds-cfg-password-validator-enabled: true |
| | | |
| | | dn: cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Plugins |
| | | |
| | | dn: cn=Delay PreOperation Plugin,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | ds-cfg-plugin-class: org.opends.server.plugins.DelayPreOpPlugin |
| | | ds-cfg-plugin-enabled: true |
| | | cn: Delay PreOperation Plugin |
| | | ds-cfg-plugin-type: preOperationAdd |
| | | ds-cfg-plugin-type: preOperationBind |
| | | ds-cfg-plugin-type: preOperationCompare |
| | | ds-cfg-plugin-type: preOperationDelete |
| | | ds-cfg-plugin-type: preOperationExtended |
| | | ds-cfg-plugin-type: preOperationModify |
| | | ds-cfg-plugin-type: preOperationModifyDN |
| | | ds-cfg-plugin-type: preOperationSearch |
| | | |
| | | dn: cn=Disconnect Client Plugin,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | ds-cfg-plugin-class: org.opends.server.plugins.DisconnectClientPlugin |
| | | ds-cfg-plugin-enabled: true |
| | | cn: Disconnect Client Plugin |
| | | ds-cfg-plugin-type: preParseAbandon |
| | | ds-cfg-plugin-type: preParseAdd |
| | | ds-cfg-plugin-type: preParseBind |
| | | ds-cfg-plugin-type: preParseCompare |
| | | ds-cfg-plugin-type: preParseDelete |
| | | ds-cfg-plugin-type: preParseExtended |
| | | ds-cfg-plugin-type: preParseModify |
| | | ds-cfg-plugin-type: preParseModifyDN |
| | | ds-cfg-plugin-type: preParseSearch |
| | | ds-cfg-plugin-type: preParseUnbind |
| | | ds-cfg-plugin-type: preOperationAdd |
| | | ds-cfg-plugin-type: preOperationBind |
| | | ds-cfg-plugin-type: preOperationCompare |
| | | ds-cfg-plugin-type: preOperationDelete |
| | | ds-cfg-plugin-type: preOperationExtended |
| | | ds-cfg-plugin-type: preOperationModify |
| | | ds-cfg-plugin-type: preOperationModifyDN |
| | | ds-cfg-plugin-type: preOperationSearch |
| | | ds-cfg-plugin-type: postOperationAbandon |
| | | ds-cfg-plugin-type: postOperationAdd |
| | | ds-cfg-plugin-type: postOperationBind |
| | | ds-cfg-plugin-type: postOperationCompare |
| | | ds-cfg-plugin-type: postOperationDelete |
| | | ds-cfg-plugin-type: postOperationExtended |
| | | ds-cfg-plugin-type: postOperationModify |
| | | ds-cfg-plugin-type: postOperationModifyDN |
| | | ds-cfg-plugin-type: postOperationSearch |
| | | ds-cfg-plugin-type: postOperationUnbind |
| | | ds-cfg-plugin-type: postResponseAdd |
| | | ds-cfg-plugin-type: postResponseBind |
| | | ds-cfg-plugin-type: postResponseCompare |
| | | ds-cfg-plugin-type: postResponseDelete |
| | | ds-cfg-plugin-type: postResponseExtended |
| | | ds-cfg-plugin-type: postResponseModify |
| | | ds-cfg-plugin-type: postResponseModifyDN |
| | | ds-cfg-plugin-type: postResponseSearch |
| | | |
| | | dn: cn=Entry UUID,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | cn: Entry UUID |
| | | ds-cfg-plugin-class: org.opends.server.plugins.EntryUUIDPlugin |
| | | ds-cfg-plugin-enabled: true |
| | | cn: Entry UUID |
| | | ds-cfg-plugin-type: ldifImport |
| | | ds-cfg-plugin-type: preOperationAdd |
| | | |
| | | dn: cn=Invocation Counter Plugin,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | ds-cfg-plugin-class: org.opends.server.plugins.InvocationCounterPlugin |
| | | ds-cfg-plugin-enabled: true |
| | | cn: Invocation Counter Plugin |
| | | ds-cfg-plugin-type: preParseAbandon |
| | | ds-cfg-plugin-type: preParseAdd |
| | | ds-cfg-plugin-type: preParseBind |
| | | ds-cfg-plugin-type: preParseCompare |
| | | ds-cfg-plugin-type: preParseDelete |
| | | ds-cfg-plugin-type: preParseExtended |
| | | ds-cfg-plugin-type: preParseModify |
| | | ds-cfg-plugin-type: preParseModifyDN |
| | | ds-cfg-plugin-type: preParseSearch |
| | | ds-cfg-plugin-type: preParseUnbind |
| | | ds-cfg-plugin-type: preOperationAdd |
| | | ds-cfg-plugin-type: preOperationBind |
| | | ds-cfg-plugin-type: preOperationCompare |
| | | ds-cfg-plugin-type: preOperationDelete |
| | | ds-cfg-plugin-type: preOperationExtended |
| | | ds-cfg-plugin-type: preOperationModify |
| | | ds-cfg-plugin-type: preOperationModifyDN |
| | | ds-cfg-plugin-type: preOperationSearch |
| | | ds-cfg-plugin-type: postOperationAbandon |
| | | ds-cfg-plugin-type: postOperationAdd |
| | | ds-cfg-plugin-type: postOperationBind |
| | | ds-cfg-plugin-type: postOperationCompare |
| | | ds-cfg-plugin-type: postOperationDelete |
| | | ds-cfg-plugin-type: postOperationExtended |
| | | ds-cfg-plugin-type: postOperationModify |
| | | ds-cfg-plugin-type: postOperationModifyDN |
| | | ds-cfg-plugin-type: postOperationSearch |
| | | ds-cfg-plugin-type: postOperationUnbind |
| | | ds-cfg-plugin-type: postResponseAdd |
| | | ds-cfg-plugin-type: postResponseBind |
| | | ds-cfg-plugin-type: postResponseCompare |
| | | ds-cfg-plugin-type: postResponseDelete |
| | | ds-cfg-plugin-type: postResponseExtended |
| | | ds-cfg-plugin-type: postResponseModify |
| | | ds-cfg-plugin-type: postResponseModifyDN |
| | | ds-cfg-plugin-type: postResponseSearch |
| | | ds-cfg-plugin-type: searchResultEntry |
| | | ds-cfg-plugin-type: searchResultReference |
| | | ds-cfg-plugin-type: intermediateResponse |
| | | ds-cfg-plugin-type: postConnect |
| | | ds-cfg-plugin-type: postDisconnect |
| | | ds-cfg-plugin-type: ldifImport |
| | | ds-cfg-plugin-type: ldifExport |
| | | ds-cfg-plugin-type: startup |
| | | ds-cfg-plugin-type: shutdown |
| | | |
| | | dn: cn=LastMod,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | cn: LastMod |
| | | ds-cfg-plugin-class: org.opends.server.plugins.LastModPlugin |
| | | ds-cfg-plugin-enabled: true |
| | | cn: LastMod |
| | | ds-cfg-plugin-type: preOperationAdd |
| | | ds-cfg-plugin-type: preOperationModify |
| | | ds-cfg-plugin-type: preOperationModifyDN |
| | |
| | | dn: cn=LDAP Attribute Description List,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | cn: LDAP Attribute Description List |
| | | ds-cfg-plugin-class: org.opends.server.plugins.LDAPADListPlugin |
| | | ds-cfg-plugin-enabled: true |
| | | cn: LDAP Attribute Description List |
| | | ds-cfg-plugin-type: preParseSearch |
| | | |
| | | dn: cn=Password Policy Import,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | cn: Password Policy Import |
| | | ds-cfg-plugin-class: org.opends.server.plugins.PasswordPolicyImportPlugin |
| | | ds-cfg-plugin-enabled: true |
| | | cn: Password Policy Import |
| | | ds-cfg-plugin-type: ldifImport |
| | | |
| | | dn: cn=Profiler,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | objectClass: ds-cfg-profiler-plugin |
| | | cn: Profiler |
| | | ds-cfg-plugin-enabled: true |
| | | objectClass: ds-cfg-plugin |
| | | ds-cfg-plugin-class: org.opends.server.plugins.profiler.ProfilerPlugin |
| | | ds-cfg-profile-sample-interval: 10 milliseconds |
| | | ds-cfg-plugin-enabled: true |
| | | ds-cfg-profile-directory: logs |
| | | cn: Profiler |
| | | ds-cfg-plugin-type: startup |
| | | ds-cfg-enable-profiling-on-startup: false |
| | | ds-cfg-profile-directory: logs |
| | | ds-cfg-profile-sample-interval: 10 milliseconds |
| | | |
| | | dn: cn=Short Circuit Plugin,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | ds-cfg-plugin-class: org.opends.server.plugins.ShortCircuitPlugin |
| | | ds-cfg-plugin-enabled: true |
| | | cn: Short Circuit Plugin |
| | | ds-cfg-plugin-type: preParseAbandon |
| | | ds-cfg-plugin-type: preParseAdd |
| | | ds-cfg-plugin-type: preParseBind |
| | | ds-cfg-plugin-type: preParseCompare |
| | | ds-cfg-plugin-type: preParseDelete |
| | | ds-cfg-plugin-type: preParseExtended |
| | | ds-cfg-plugin-type: preParseModify |
| | | ds-cfg-plugin-type: preParseModifyDN |
| | | ds-cfg-plugin-type: preParseSearch |
| | | ds-cfg-plugin-type: preParseUnbind |
| | | ds-cfg-plugin-type: preOperationAdd |
| | | ds-cfg-plugin-type: preOperationBind |
| | | ds-cfg-plugin-type: preOperationCompare |
| | | ds-cfg-plugin-type: preOperationDelete |
| | | ds-cfg-plugin-type: preOperationExtended |
| | | ds-cfg-plugin-type: preOperationModify |
| | | ds-cfg-plugin-type: preOperationModifyDN |
| | | ds-cfg-plugin-type: preOperationSearch |
| | | |
| | | dn: cn=Update PreOperation Plugin,cn=Plugins,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-plugin |
| | | ds-cfg-plugin-class: org.opends.server.plugins.UpdatePreOpPlugin |
| | | ds-cfg-plugin-enabled: true |
| | | cn: Delay PreOperation Plugin |
| | | ds-cfg-plugin-type: preOperationAdd |
| | | ds-cfg-plugin-type: preOperationModify |
| | | |
| | | dn: cn=Root DNs,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-root-dn-base |
| | | cn: Root DNs |
| | | objectClass: top |
| | | ds-cfg-default-root-privilege-name: bypass-acl |
| | | ds-cfg-default-root-privilege-name: modify-acl |
| | | ds-cfg-default-root-privilege-name: config-read |
| | |
| | | ds-cfg-default-root-privilege-name: password-reset |
| | | ds-cfg-default-root-privilege-name: update-schema |
| | | ds-cfg-default-root-privilege-name: privilege-change |
| | | cn: Root DNs |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301011032Z |
| | | |
| | | dn: cn=Directory Manager,cn=Root DNs,cn=config |
| | | objectClass: top |
| | | objectClass: person |
| | | objectClass: organizationalPerson |
| | | objectClass: inetOrgPerson |
| | | objectClass: person |
| | | objectClass: top |
| | | objectClass: organizationalPerson |
| | | objectClass: ds-cfg-root-dn |
| | | userPassword: {SSHA}bT3wAPjyrpVlzX5548I8vvhZ91xIMPWiHRSR3Q== |
| | | cn: Directory Manager |
| | | givenName: Directory |
| | | sn: Manager |
| | | userPassword: {SSHA512}l1t43vVl7Uh03PpQ2vCsT0B7Q0HTi+tKJmH7tZTmSGaKrMHWHO1czfwEsjMgfbeQoiYQDGDuxolipR0H6ajMu1YHlTjPNG9Z |
| | | givenName: Directory |
| | | ds-cfg-alternate-bind-dn: cn=Directory Manager |
| | | ds-rlim-size-limit: 0 |
| | | modifiersName: cn=Directory Manager,cn=Root DNs,cn=config |
| | | ds-rlim-time-limit: 0 |
| | | modifyTimestamp: 20070301010844Z |
| | | pwdChangedTime: 20070301010844.840Z |
| | | ds-rlim-lookthrough-limit: 0 |
| | | ds-rlim-size-limit: 0 |
| | | ds-pwp-password-policy-dn: cn=Root Password Policy,cn=Password Policies,cn=config |
| | | |
| | | dn: cn=Root DSE,cn=config |
| | | dn: cn=Proxy Root,cn=Root DNs,cn=config |
| | | objectClass: inetOrgPerson |
| | | objectClass: person |
| | | objectClass: top |
| | | objectClass: organizationalPerson |
| | | objectClass: ds-cfg-root-dn |
| | | sn: Root |
| | | userPassword: {SSHA}BrU+IXUb4GWXKe6Zeb6DQAzTVcaw3LUj7JcpVQ== |
| | | cn: Proxy Root |
| | | uid: proxy.root |
| | | givenName: Proxy |
| | | pwdChangedTime: 20070301011015.945Z |
| | | entryUUID: f3f5c38a-2c20-4f31-a6ce-e5c0af21da82 |
| | | createTimestamp: 20070301011015Z |
| | | creatorsName: cn=Internal Client,cn=Root DNs,cn=config |
| | | ds-privilege-name: proxied-auth |
| | | |
| | | dn: cn=Root DSE,cn=config |
| | | objectClass: ds-cfg-root-dse |
| | | cn: Root DSE |
| | | objectClass: top |
| | | ds-cfg-show-all-attributes: false |
| | | cn: Root DSE |
| | | |
| | | dn: cn=SASL Mechanisms,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: SASL Mechanisms |
| | | |
| | | dn: cn=ANONYMOUS,cn=SASL Mechanisms,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-sasl-mechanism-handler |
| | | cn: ANONYMOUS |
| | | objectClass: top |
| | | ds-cfg-sasl-mechanism-handler-class: org.opends.server.extensions.AnonymousSASLMechanismHandler |
| | | ds-cfg-sasl-mechanism-handler-enabled: false |
| | | cn: ANONYMOUS |
| | | |
| | | dn: cn=CRAM-MD5,cn=SASL Mechanisms,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-sasl-mechanism-handler |
| | | objectClass: top |
| | | objectClass: ds-cfg-cram-md5-sasl-mechanism-handler |
| | | cn: CRAM-MD5 |
| | | ds-cfg-sasl-mechanism-handler-class: org.opends.server.extensions.CRAMMD5SASLMechanismHandler |
| | | ds-cfg-sasl-mechanism-handler-enabled: true |
| | | cn: CRAM-MD5 |
| | | ds-cfg-identity-mapper-dn: cn=Exact Match,cn=Identity Mappers,cn=config |
| | | |
| | | dn: cn=DIGEST-MD5,cn=SASL Mechanisms,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-sasl-mechanism-handler |
| | | objectClass: top |
| | | objectClass: ds-cfg-digest-md5-sasl-mechanism-handler |
| | | cn: DIGEST-MD5 |
| | | ds-cfg-sasl-mechanism-handler-class: org.opends.server.extensions.DigestMD5SASLMechanismHandler |
| | | ds-cfg-sasl-mechanism-handler-enabled: true |
| | | cn: DIGEST-MD5 |
| | | ds-cfg-identity-mapper-dn: cn=Exact Match,cn=Identity Mappers,cn=config |
| | | |
| | | dn: cn=EXTERNAL,cn=SASL Mechanisms,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-sasl-mechanism-handler |
| | | objectClass: top |
| | | objectClass: ds-cfg-external-sasl-mechanism-handler |
| | | cn: EXTERNAL |
| | | ds-cfg-sasl-mechanism-handler-class: org.opends.server.extensions.ExternalSASLMechanismHandler |
| | | ds-cfg-sasl-mechanism-handler-enabled: true |
| | | ds-cfg-client-certificate-validation-policy: ifpresent |
| | | ds-cfg-certificate-attribute: userCertificate |
| | | cn: EXTERNAL |
| | | ds-cfg-certificate-mapper-dn: cn=Subject Equals DN,cn=Certificate Mappers,cn=config |
| | | ds-cfg-sasl-mechanism-handler-class: org.opends.server.extensions.ExternalSASLMechanismHandler |
| | | ds-cfg-certificate-attribute: userCertificate |
| | | ds-cfg-client-certificate-validation-policy: ifpresent |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301010846Z |
| | | |
| | | dn: cn=GSSAPI,cn=SASL Mechanisms,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-sasl-mechanism-handler |
| | | objectClass: ds-cfg-gssapi-sasl-mechanism-handler |
| | | cn: GSSAPI |
| | | objectClass: top |
| | | ds-cfg-sasl-mechanism-handler-class: org.opends.server.extensions.GSSAPISASLMechanismHandler |
| | | ds-cfg-sasl-mechanism-handler-enabled: false |
| | | ds-cfg-identity-mapper-dn: cn=Exact Match,cn=Identity Mappers,cn=config |
| | | ds-cfg-keytab: /etc/krb5/krb5.keytab |
| | | ds-cfg-sasl-mechanism-handler-enabled: false |
| | | cn: GSSAPI |
| | | ds-cfg-identity-mapper-dn: cn=Exact Match,cn=Identity Mappers,cn=config |
| | | |
| | | dn: cn=PLAIN,cn=SASL Mechanisms,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-sasl-mechanism-handler |
| | | objectClass: ds-cfg-plain-sasl-mechanism-handler |
| | | cn: PLAIN |
| | | objectClass: top |
| | | ds-cfg-sasl-mechanism-handler-class: org.opends.server.extensions.PlainSASLMechanismHandler |
| | | ds-cfg-sasl-mechanism-handler-enabled: true |
| | | cn: PLAIN |
| | | ds-cfg-identity-mapper-dn: cn=Exact Match,cn=Identity Mappers,cn=config |
| | | |
| | | dn: cn=Synchronization Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Synchronization Providers |
| | | |
| | | dn: cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Syntaxes |
| | | |
| | | dn: cn=Absolute Subtree Specification,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Absolute Subtree Specification |
| | | ds-cfg-syntax-class: org.opends.server.schema.AbsoluteSubtreeSpecificationSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Absolute Subtree Specification |
| | | |
| | | dn: cn=Attribute Type Description,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Attribute Type Description |
| | | ds-cfg-syntax-class: org.opends.server.schema.AttributeTypeSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Attribute Type Description |
| | | |
| | | dn: cn=Authentication Password,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Authentiation Password |
| | | ds-cfg-syntax-class: org.opends.server.schema.AuthPasswordSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Authentiation Password |
| | | |
| | | dn: cn=Binary,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Binary |
| | | ds-cfg-syntax-class: org.opends.server.schema.BinarySyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Binary |
| | | |
| | | dn: cn=Bit String,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Bit String |
| | | ds-cfg-syntax-class: org.opends.server.schema.BitStringSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Bit String |
| | | |
| | | dn: cn=Boolean,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Boolean |
| | | ds-cfg-syntax-class: org.opends.server.schema.BooleanSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Boolean |
| | | |
| | | dn: cn=Certificate,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Certificate |
| | | ds-cfg-syntax-class: org.opends.server.schema.CertificateSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Certificate |
| | | |
| | | dn: cn=Certificate List,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Certificate List |
| | | ds-cfg-syntax-class: org.opends.server.schema.CertificateListSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Certificate List |
| | | |
| | | dn: cn=Certificate Pair,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Certificate Pair |
| | | ds-cfg-syntax-class: org.opends.server.schema.CertificatePairSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Certificate Pair |
| | | |
| | | dn: cn=Country String,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Country String |
| | | ds-cfg-syntax-class: org.opends.server.schema.CountryStringSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Country String |
| | | |
| | | dn: cn=Delivery Method,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Delivery Method |
| | | ds-cfg-syntax-class: org.opends.server.schema.DeliveryMethodSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Delivery Method |
| | | |
| | | dn: cn=Directory String,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | objectClass: ds-cfg-directory-string-attribute-syntax |
| | | cn: Directory String |
| | | objectClass: ds-cfg-attribute-syntax |
| | | ds-cfg-allow-zero-length-values: false |
| | | ds-cfg-syntax-class: org.opends.server.schema.DirectoryStringSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | ds-cfg-allow-zero-length-values: false |
| | | cn: Directory String |
| | | |
| | | dn: cn=Distinguished Name,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Distinguished Name |
| | | ds-cfg-syntax-class: org.opends.server.schema.DistinguishedNameSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Distinguished Name |
| | | |
| | | dn: cn=DIT Content Rule Description,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: DIT Content Rule Description |
| | | ds-cfg-syntax-class: org.opends.server.schema.DITContentRuleSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: DIT Content Rule Description |
| | | |
| | | dn: cn=DIT Structure Rule Description,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: DIT Structure Rule Description |
| | | ds-cfg-syntax-class: org.opends.server.schema.DITStructureRuleSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: DIT Structure Rule Description |
| | | |
| | | dn: cn=Enhanced Guide,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Enhanced Guide |
| | | ds-cfg-syntax-class: org.opends.server.schema.EnhancedGuideSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Enhanced Guide |
| | | |
| | | dn: cn=Facsimile Telephone Number,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Facsimile Telephone Number |
| | | ds-cfg-syntax-class: org.opends.server.schema.FaxNumberSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Facsimile Telephone Number |
| | | |
| | | dn: cn=Fax,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Fax |
| | | ds-cfg-syntax-class: org.opends.server.schema.FaxSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Fax |
| | | |
| | | dn: cn=Generalized Time,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Generalized Time |
| | | ds-cfg-syntax-class: org.opends.server.schema.GeneralizedTimeSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Generalized Time |
| | | |
| | | dn: cn=Guide,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Guide |
| | | ds-cfg-syntax-class: org.opends.server.schema.GuideSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Guide |
| | | |
| | | dn: cn=IA5 String,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: IA5 String |
| | | ds-cfg-syntax-class: org.opends.server.schema.IA5StringSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: IA5 String |
| | | |
| | | dn: cn=Integer,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Integer |
| | | ds-cfg-syntax-class: org.opends.server.schema.IntegerSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Integer |
| | | |
| | | dn: cn=JPEG,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: JPEG |
| | | ds-cfg-syntax-class: org.opends.server.schema.JPEGSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: JPEG |
| | | |
| | | dn: cn=LDAP Syntax Description,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: LDAP Syntax Description |
| | | ds-cfg-syntax-class: org.opends.server.schema.LDAPSyntaxDescriptionSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: LDAP Syntax Description |
| | | |
| | | dn: cn=Matching Rule Description,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Matching Rule Description |
| | | ds-cfg-syntax-class: org.opends.server.schema.MatchingRuleSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Matching Rule Description |
| | | |
| | | dn: cn=Matching Rule Use Description,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Matching Rule Use Description |
| | | ds-cfg-syntax-class: org.opends.server.schema.MatchingRuleUseSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Matching Rule Use Description |
| | | |
| | | dn: cn=Name and Optional UID,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Name and Optional UID |
| | | ds-cfg-syntax-class: org.opends.server.schema.NameAndOptionalUIDSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Name and Optional UID |
| | | |
| | | dn: cn=Name Form Description,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Name Form Description |
| | | ds-cfg-syntax-class: org.opends.server.schema.NameFormSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Name Form Description |
| | | |
| | | dn: cn=Numeric String,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Numeric String |
| | | ds-cfg-syntax-class: org.opends.server.schema.NumericStringSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Numeric String |
| | | |
| | | dn: cn=Object Class Description,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Object Class Description |
| | | ds-cfg-syntax-class: org.opends.server.schema.ObjectClassSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Object Class Description |
| | | |
| | | dn: cn=Object Identifier,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Object Identifier |
| | | ds-cfg-syntax-class: org.opends.server.schema.OIDSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Object Identifier |
| | | |
| | | dn: cn=Octet String,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Octet String |
| | | ds-cfg-syntax-class: org.opends.server.schema.OctetStringSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Octet String |
| | | |
| | | dn: cn=Other Mailbox,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Other Mailbox |
| | | ds-cfg-syntax-class: org.opends.server.schema.OtherMailboxSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Other Mailbox |
| | | |
| | | dn: cn=Postal Address,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Postal Address |
| | | ds-cfg-syntax-class: org.opends.server.schema.PostalAddressSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Postal Address |
| | | |
| | | dn: cn=Presentation Address,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Presentation Address |
| | | ds-cfg-syntax-class: org.opends.server.schema.PresentationAddressSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Presentation Address |
| | | |
| | | dn: cn=Printable String,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Printable String |
| | | ds-cfg-syntax-class: org.opends.server.schema.PrintableStringSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Printable String |
| | | |
| | | dn: cn=Protocol Information,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Protocol Information |
| | | ds-cfg-syntax-class: org.opends.server.schema.ProtocolInformationSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Protocol Information |
| | | |
| | | dn: cn=Relative Subtree Specification,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Relative Subtree Specification |
| | | ds-cfg-syntax-class: org.opends.server.schema.RelativeSubtreeSpecificationSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Relative Subtree Specification |
| | | |
| | | dn: cn=Substring Assertion,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Substring Assertion |
| | | ds-cfg-syntax-class: org.opends.server.schema.SubstringAssertionSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Substring Assertion |
| | | |
| | | dn: cn=Subtree Specification,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Subtree Specification |
| | | ds-cfg-syntax-class: org.opends.server.schema.RFC3672SubtreeSpecificationSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Subtree Specification |
| | | |
| | | dn: cn=Supported Algorithm,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Supported Algorithm |
| | | ds-cfg-syntax-class: org.opends.server.schema.SupportedAlgorithmSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Supported Algorithm |
| | | |
| | | dn: cn=Telephone Number,cn=Syntaxes,cn=config |
| | | objectClass: ds-cfg-telephone-number-attribute-syntax |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | objectClass: ds-cfg-telephone-number-attribute-syntax |
| | | cn: Telephone Number |
| | | ds-cfg-syntax-class: org.opends.server.schema.TelephoneNumberSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | ds-cfg-strict-telephone-number-format: false |
| | | cn: Telephone Number |
| | | |
| | | dn: cn=Teletex Terminal Identifier,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Teletex Terminal Identifier |
| | | ds-cfg-syntax-class: org.opends.server.schema.TeletexTerminalIdentifierSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Teletex Terminal Identifier |
| | | |
| | | dn: cn=Telex Number,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: Telex Number |
| | | ds-cfg-syntax-class: org.opends.server.schema.TelexNumberSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | |
| | | dn: cn=UTC Time,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: UTC Time |
| | | ds-cfg-syntax-class: org.opends.server.schema.UTCTimeSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: Telex Number |
| | | |
| | | dn: cn=User Password,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: User Password |
| | | ds-cfg-syntax-class: org.opends.server.schema.UserPasswordSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: User Password |
| | | |
| | | dn: cn=UTC Time,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | ds-cfg-syntax-class: org.opends.server.schema.UTCTimeSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: UTC Time |
| | | |
| | | dn: cn=UUID,cn=Syntaxes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-attribute-syntax |
| | | cn: UUID |
| | | ds-cfg-syntax-class: org.opends.server.schema.UUIDSyntax |
| | | ds-cfg-syntax-enabled: true |
| | | cn: UUID |
| | | |
| | | dn: cn=Trust Manager Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Trust Manager Providers |
| | | |
| | | dn: cn=Blind Trust,cn=Trust Manager Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-trust-manager-provider |
| | | cn: Blind Trust |
| | | ds-cfg-trust-manager-provider-class: org.opends.server.extensions.BlindTrustManagerProvider |
| | | objectClass: top |
| | | ds-cfg-trust-manager-provider-enabled: false |
| | | ds-cfg-trust-manager-provider-class: org.opends.server.extensions.BlindTrustManagerProvider |
| | | cn: Blind Trust |
| | | |
| | | dn: cn=JKS,cn=Trust Manager Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-trust-manager-provider |
| | | objectClass: top |
| | | objectClass: ds-cfg-file-based-trust-manager-provider |
| | | cn: JKS |
| | | ds-cfg-trust-manager-provider-enabled: true |
| | | ds-cfg-trust-manager-provider-class: org.opends.server.extensions.FileBasedTrustManagerProvider |
| | | ds-cfg-trust-manager-provider-enabled: false |
| | | ds-cfg-trust-store-pin: password |
| | | ds-cfg-trust-store-type: JKS |
| | | ds-cfg-trust-store-file: config/truststore |
| | | cn: JKS |
| | | ds-cfg-trust-store-file: config/server.truststore |
| | | |
| | | dn: cn=PKCS12,cn=Trust Manager Providers,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-trust-manager-provider |
| | | objectClass: top |
| | | objectClass: ds-cfg-file-based-trust-manager-provider |
| | | cn: PKCS12 |
| | | ds-cfg-trust-manager-provider-class: org.opends.server.extensions.FileBasedTrustManagerProvider |
| | | ds-cfg-trust-manager-provider-enabled: false |
| | | ds-cfg-trust-manager-provider-class: org.opends.server.extensions.FileBasedTrustManagerProvider |
| | | ds-cfg-trust-store-type: PKCS12 |
| | | cn: PKCS12 |
| | | ds-cfg-trust-store-file: config/truststore.p12 |
| | | |
| | | dn: cn=Virtual Attributes,cn=config |
| | | objectClass: top |
| | | objectClass: ds-cfg-branch |
| | | objectClass: top |
| | | cn: Virtual Attributes |
| | | |
| | | dn: cn=Work Queue,cn=config |
| | | objectClass: ds-cfg-traditional-work-queue |
| | | objectClass: top |
| | | objectClass: ds-cfg-work-queue |
| | | objectClass: ds-cfg-traditional-work-queue |
| | | ds-cfg-max-work-queue-capacity: 0 |
| | | ds-cfg-num-worker-threads: 24 |
| | | cn: Work Queue |
| | | ds-cfg-work-queue-class: org.opends.server.extensions.TraditionalWorkQueue |
| | | ds-cfg-num-worker-threads: 24 |
| | | ds-cfg-max-work-queue-capacity: 0 |
| | | modifiersName: cn=Internal Client,cn=Root DNs,cn=config |
| | | modifyTimestamp: 20070301010846Z |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.dsml.protocol; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.dsml.protocol; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.dsml.protocol; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.dsml.protocol; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.dsml.protocol; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.dsml.protocol; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.dsml.protocol; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.dsml.protocol; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.event; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.event; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.event; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.event; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.event; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.event; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.event; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.event; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer.webstart; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.installer.webstart; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.ui; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.ui; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.ui; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.ui; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.ui; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.ui; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.ui; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.ui; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.uninstaller; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.uninstaller; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.uninstaller; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.uninstaller; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.quicksetup.util; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.quicksetup.util; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.util; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.util; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.util; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.util; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.util; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | package org.opends.quicksetup.util; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class AccountStatusNotificationHandler |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.AccountStatusNotificationHandler"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizeStatusNotificationHandler() |
| | | { |
| | | assert debugEnter(CLASS_NAME, |
| | | "finalizeStatusNotificationHandler"); |
| | | |
| | | // No action is required by default. |
| | | } |
| | |
| | | public void handleStatusNotification( |
| | | AccountStatusNotification notification) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "handleStatusNotification", |
| | | String.valueOf(notification)); |
| | | |
| | | handleStatusNotification(notification.getNotificationType(), |
| | | notification.getUserDN(), |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | |
| | | import org.opends.server.types.DN; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.ByteString; |
| | | import org.opends.server.types.ConditionResult; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | public abstract class ApproximateMatchingRule |
| | | extends MatchingRule |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.ApproximateMatchingRule"; |
| | | |
| | | |
| | | |
| | |
| | | public ConditionResult valuesMatch(ByteString attributeValue, |
| | | ByteString assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valuesMatch", |
| | | String.valueOf(attributeValue), |
| | | String.valueOf(assertionValue)); |
| | | |
| | | if (approximatelyMatch(attributeValue, assertionValue)) |
| | | { |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.ByteString; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class AttributeSyntax |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.AttributeSyntax"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizeSyntax() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeSyntax"); |
| | | |
| | | // No implementation required. |
| | | } |
| | |
| | | */ |
| | | public int hashCode() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hashCode"); |
| | | |
| | | int hashCode = 0; |
| | | |
| | |
| | | */ |
| | | public boolean equals(Object o) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "equals", String.valueOf(o)); |
| | | |
| | | if (o == null) |
| | | { |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("( "); |
| | | buffer.append(getOID()); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.RestoreConfig; |
| | | import org.opends.server.types.WritabilityMode; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | |
| | |
| | | */ |
| | | public abstract class Backend |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.Backend"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | protected Backend() |
| | | { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | backendID = null; |
| | | parentBackend = null; |
| | |
| | | public boolean entryExists(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryExists", |
| | | String.valueOf(entryDN)); |
| | | |
| | | Lock lock = null; |
| | | for (int i=0; i < 3; i++) |
| | |
| | | */ |
| | | public final boolean supportsControl(String controlOID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsControl", |
| | | String.valueOf(controlOID)); |
| | | |
| | | Set<String> supportedControls = getSupportedControls(); |
| | | return ((supportedControls != null) && |
| | |
| | | */ |
| | | public final boolean supportsFeature(String featureOID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsFeature", |
| | | String.valueOf(featureOID)); |
| | | |
| | | Set<String> supportedFeatures = getSupportedFeatures(); |
| | | return ((supportedFeatures != null) && |
| | |
| | | */ |
| | | public String getBackendID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBackendID"); |
| | | |
| | | return backendID; |
| | | } |
| | |
| | | */ |
| | | public void setBackendID(String backendID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setBackendID", |
| | | String.valueOf(backendID)); |
| | | |
| | | this.backendID = backendID; |
| | | } |
| | |
| | | */ |
| | | public boolean isPrivateBackend() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isPrivateBackend"); |
| | | |
| | | return isPrivateBackend; |
| | | } |
| | |
| | | */ |
| | | public WritabilityMode getWritabilityMode() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getWritabilityMode"); |
| | | |
| | | return writabilityMode; |
| | | } |
| | |
| | | */ |
| | | public void setWritabilityMode(WritabilityMode writabilityMode) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setWritabilityMode", |
| | | String.valueOf(writabilityMode)); |
| | | |
| | | if (writabilityMode == null) |
| | | { |
| | |
| | | */ |
| | | public BackendMonitor getBackendMonitor() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBackendMonitor"); |
| | | |
| | | return backendMonitor; |
| | | } |
| | |
| | | */ |
| | | public void setBackendMonitor(BackendMonitor backendMonitor) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setBackendMonitor", |
| | | String.valueOf(backendMonitor)); |
| | | |
| | | this.backendMonitor = backendMonitor; |
| | | } |
| | |
| | | */ |
| | | public Backend getParentBackend() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getParentBackend"); |
| | | |
| | | return parentBackend; |
| | | } |
| | |
| | | */ |
| | | public void setParentBackend(Backend parentBackend) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setParentBackend", |
| | | String.valueOf(parentBackend)); |
| | | |
| | | synchronized (this) |
| | | { |
| | |
| | | */ |
| | | public Backend[] getSubordinateBackends() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSubordinateBackends"); |
| | | |
| | | return subordinateBackends; |
| | | } |
| | |
| | | */ |
| | | public void setSubordinateBackends(Backend[] subordinateBackends) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setSubordinateBackends", |
| | | String.valueOf(subordinateBackends)); |
| | | |
| | | synchronized (this) |
| | | { |
| | |
| | | */ |
| | | public boolean hasSubSuffix(DN subSuffixDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasSubSuffix", |
| | | String.valueOf(subSuffixDN)); |
| | | |
| | | Backend[] subBackends = subordinateBackends; |
| | | for (Backend b : subBackends) |
| | |
| | | public void removeSubSuffix(DN subSuffixDN, DN parentDN) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeSubSuffix", |
| | | String.valueOf(subSuffixDN)); |
| | | |
| | | synchronized (this) |
| | | { |
| | |
| | | */ |
| | | public void addSubordinateBackend(Backend subordinateBackend) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addSubordinateBackend", |
| | | String.valueOf(subordinateBackend)); |
| | | |
| | | synchronized (this) |
| | | { |
| | |
| | | */ |
| | | public void removeSubordinateBackend(Backend subordinateBackend) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeSubordinateBackend", |
| | | String.valueOf(subordinateBackend)); |
| | | |
| | | synchronized (this) |
| | | { |
| | |
| | | */ |
| | | public boolean handlesEntry(DN entryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "handlesEntry", |
| | | String.valueOf(entryDN)); |
| | | |
| | | DN[] baseDNs = getBaseDNs(); |
| | | for (int i=0; i < baseDNs.length; i++) |
| | |
| | | List<DN> baseDNs, |
| | | List<DN> excludeDNs) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "handlesEntry", |
| | | String.valueOf(entryDN)); |
| | | |
| | | for (DN baseDN : baseDNs) |
| | | { |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.Entry; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class CertificateMapper |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.CertificateMapper"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizeCertificateMapper() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeCertificateMapper"); |
| | | |
| | | // No implementation is required by default. |
| | | } |
| | |
| | | import org.opends.server.util.TimeThread; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static |
| | | org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static |
| | | org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.messages.CoreMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | |
| | | */ |
| | | public abstract class ClientConnection |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.ClientConnection"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | protected ClientConnection() |
| | | { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | connectTime = TimeThread.getTime(); |
| | | connectTimeString = TimeThread.getUTCTime(); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeConnectionInternal", |
| | | e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | public long getConnectTime() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConnectTime"); |
| | | |
| | | return connectTime; |
| | | } |
| | |
| | | */ |
| | | public String getConnectTimeString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConnectTimeString"); |
| | | |
| | | return connectTimeString; |
| | | } |
| | |
| | | public final boolean sendIntermediateResponse( |
| | | IntermediateResponse intermediateResponse) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "sendIntermediateResponse", |
| | | String.valueOf(intermediateResponse)); |
| | | |
| | | |
| | | // Invoke the intermediate response plugins for the response |
| | |
| | | boolean sendNotification, |
| | | int messageID, Object... arguments) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "disconnect", |
| | | String.valueOf(disconnectReason), |
| | | String.valueOf(sendNotification), |
| | | String.valueOf(messageID), |
| | | String.valueOf(arguments)); |
| | | |
| | | String message = getMessage(messageID, arguments); |
| | | disconnect(disconnectReason, sendNotification, message, |
| | |
| | | */ |
| | | public boolean bindInProgress() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "bindInProgress"); |
| | | |
| | | return bindInProgress; |
| | | } |
| | |
| | | */ |
| | | public void setBindInProgress(boolean bindInProgress) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setBindInProgress", |
| | | String.valueOf(bindInProgress)); |
| | | |
| | | this.bindInProgress = bindInProgress; |
| | | } |
| | |
| | | */ |
| | | public boolean mustChangePassword() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "mustChangePassword"); |
| | | |
| | | if (authenticationInfo == null) |
| | | { |
| | |
| | | */ |
| | | public void setMustChangePassword(boolean mustChangePassword) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setMustChangePassword", |
| | | String.valueOf(mustChangePassword)); |
| | | |
| | | if (authenticationInfo == null) |
| | | { |
| | |
| | | public CopyOnWriteArrayList<PersistentSearch> |
| | | getPersistentSearches() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPersistentSearches"); |
| | | |
| | | return persistentSearches; |
| | | } |
| | |
| | | public void registerPersistentSearch(PersistentSearch |
| | | persistentSearch) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "registerPersistentSearch", |
| | | String.valueOf(persistentSearch)); |
| | | |
| | | persistentSearches.add(persistentSearch); |
| | | } |
| | |
| | | public void deregisterPersistentSearch(PersistentSearch |
| | | persistentSearch) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deregisterPersistentSearch", |
| | | String.valueOf(persistentSearch)); |
| | | |
| | | persistentSearches.remove(persistentSearch); |
| | | } |
| | |
| | | */ |
| | | public AuthenticationInfo getAuthenticationInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAuthenticationInfo"); |
| | | |
| | | return authenticationInfo; |
| | | } |
| | |
| | | public void setAuthenticationInfo(AuthenticationInfo |
| | | authenticationInfo) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setAuthenticationInfo", |
| | | String.valueOf(authenticationInfo)); |
| | | |
| | | if (this.authenticationInfo != null) |
| | | { |
| | |
| | | */ |
| | | public void updateAuthenticationInfo(Entry oldEntry, Entry newEntry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "updateAuthenticationInfo", |
| | | String.valueOf(oldEntry), |
| | | String.valueOf(newEntry)); |
| | | |
| | | Entry authNEntry = authenticationInfo.getAuthenticationEntry(); |
| | | Entry authZEntry = authenticationInfo.getAuthorizationEntry(); |
| | |
| | | */ |
| | | public void setUnauthenticated() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setUnauthenticated"); |
| | | |
| | | this.authenticationInfo = new AuthenticationInfo(); |
| | | this.sizeLimit = DirectoryServer.getSizeLimit(); |
| | |
| | | public boolean hasPrivilege(Privilege privilege, |
| | | Operation operation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasPrivilege", |
| | | String.valueOf(privilege), |
| | | String.valueOf(operation)); |
| | | |
| | | boolean result = privileges.contains(privilege); |
| | | if (operation == null) |
| | |
| | | public boolean hasAllPrivileges(Privilege[] privileges, |
| | | Operation operation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasAllPrivileges", |
| | | String.valueOf(privileges), |
| | | String.valueOf(operation)); |
| | | |
| | | HashSet<Privilege> privSet = this.privileges; |
| | | boolean result = true; |
| | |
| | | */ |
| | | private void updatePrivileges(Entry entry, boolean isRoot) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "updatePrivileges", |
| | | String.valueOf(entry)); |
| | | |
| | | HashSet<Privilege> newPrivileges = new HashSet<Privilege>(); |
| | | HashSet<Privilege> removePrivileges = new HashSet<Privilege>(); |
| | |
| | | */ |
| | | public final Object getSASLAuthStateInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSASLAuthStateInfo"); |
| | | |
| | | return saslAuthState; |
| | | } |
| | |
| | | */ |
| | | public final void setSASLAuthStateInfo(Object saslAuthState) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setSASLAuthStateInfo", |
| | | String.valueOf(saslAuthState)); |
| | | |
| | | this.saslAuthState = saslAuthState; |
| | | } |
| | |
| | | */ |
| | | public final int getSizeLimit() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSizeLimit"); |
| | | |
| | | return sizeLimit; |
| | | } |
| | |
| | | */ |
| | | public final void setSizeLimit(int sizeLimit) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setSizeLimit", |
| | | String.valueOf(sizeLimit)); |
| | | |
| | | this.sizeLimit = sizeLimit; |
| | | } |
| | |
| | | */ |
| | | public final int getLookthroughLimit() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLookthroughLimit"); |
| | | |
| | | return lookthroughLimit; |
| | | } |
| | |
| | | */ |
| | | public final void setLookthroughLimit(int lookthroughLimit) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setLookthroughLimit", |
| | | String.valueOf(lookthroughLimit)); |
| | | |
| | | this.lookthroughLimit = lookthroughLimit; |
| | | } |
| | |
| | | */ |
| | | public final int getTimeLimit() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTimeLimit"); |
| | | |
| | | return timeLimit; |
| | | } |
| | |
| | | */ |
| | | public final void setTimeLimit(int timeLimit) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setTimeLimit", |
| | | String.valueOf(timeLimit)); |
| | | |
| | | this.timeLimit = timeLimit; |
| | | } |
| | |
| | | public boolean isMemberOf(Group group, Operation operation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isMemberOf", String.valueOf(group), |
| | | String.valueOf(operation)); |
| | | |
| | | if (operation == null) |
| | | { |
| | |
| | | public Set<Group> getGroups(Operation operation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getGroups", |
| | | String.valueOf(operation)); |
| | | |
| | | |
| | | // FIXME -- This probably isn't the most efficient implementation. |
| | |
| | | */ |
| | | public DN getKeyManagerProviderDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getKeyManagerProviderDN"); |
| | | |
| | | // In the default implementation, we'll return null. |
| | | return null; |
| | |
| | | */ |
| | | public DN getTrustManagerProviderDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTrustManagerProviderDN"); |
| | | |
| | | // In the default implementation, we'll return null. |
| | | return null; |
| | |
| | | */ |
| | | public final String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.ConfigChangeResult; |
| | | import org.opends.server.types.DN; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.HostPort; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | public abstract class ConnectionHandler |
| | | extends DirectoryThread |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.ConnectionHandler"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(threadName); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(threadName)); |
| | | monitor = null; |
| | | } |
| | | |
| | |
| | | */ |
| | | public ConnectionHandlerMonitor getConnectionHandlerMonitor() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConnectionHandlerMonitor"); |
| | | |
| | | return monitor; |
| | | } |
| | |
| | | public void setConnectionHandlerMonitor( |
| | | ConnectionHandlerMonitor monitor) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setConnectionHandlerMonitor", |
| | | String.valueOf(monitor)); |
| | | |
| | | this.monitor = monitor; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.backends.task.Task; |
| | | import org.opends.server.core.DirectoryServer; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | | |
| | |
| | | public class DirectoryThread |
| | | extends Thread |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.core.DirectoryThread"; |
| | | |
| | | |
| | | |
| | |
| | | super (DirectoryServer.getDirectoryThreadGroup(), target, |
| | | threadName); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(threadName)); |
| | | |
| | | init(); |
| | | } |
| | |
| | | { |
| | | super(DirectoryServer.getDirectoryThreadGroup(), threadName); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(threadName)); |
| | | |
| | | init(); |
| | | } |
| | |
| | | { |
| | | super(threadGroup, threadName); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(threadGroup), |
| | | String.valueOf(threadName)); |
| | | |
| | | init(); |
| | | } |
| | |
| | | */ |
| | | public StackTraceElement[] getCreationStackTrace() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getCreationStackTrace"); |
| | | |
| | | return creationStackTrace; |
| | | } |
| | |
| | | */ |
| | | public Thread getParentThread() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getParentThread"); |
| | | |
| | | return parentThread; |
| | | } |
| | |
| | | */ |
| | | public Task getAssociatedTask() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAssociatedTask"); |
| | | |
| | | return task; |
| | | } |
| | |
| | | */ |
| | | public void setAssociatedTask(Task task) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setAssociatedTask"); |
| | | |
| | | this.task = task; |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.ByteString; |
| | | import org.opends.server.types.ConditionResult; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static |
| | | org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static |
| | | org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | |
| | | |
| | |
| | | public abstract class EqualityMatchingRule |
| | | extends MatchingRule |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.EqualityMatchingRule"; |
| | | |
| | | |
| | | |
| | |
| | | public ConditionResult valuesMatch(ByteString attributeValue, |
| | | ByteString assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valuesMatch", |
| | | String.valueOf(attributeValue), |
| | | String.valueOf(assertionValue)); |
| | | |
| | | if (areEqual(attributeValue, assertionValue)) |
| | | { |
| | |
| | | */ |
| | | public int generateHashCode(AttributeValue attributeValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "generateHashCode", |
| | | String.valueOf(attributeValue)); |
| | | |
| | | try |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "generateHashCode", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | try |
| | | { |
| | |
| | | } |
| | | catch (Exception e2) |
| | | { |
| | | assert debugException(CLASS_NAME, "generateHashCode", e2); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e2); |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.core.ExtendedOperation; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class ExtendedOperationHandler |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.ExtendedOperationHandler"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizeExtendedOperationHandler() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeExtendedOperationHandler"); |
| | | |
| | | // No implementation is required by default. |
| | | } |
| | |
| | | */ |
| | | public Set<String> getSupportedControls() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedControls"); |
| | | |
| | | return supportedControlOIDs; |
| | | } |
| | |
| | | */ |
| | | public final boolean supportsControl(String controlOID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsControl", |
| | | String.valueOf(controlOID)); |
| | | |
| | | return getSupportedControls().contains(controlOID); |
| | | } |
| | |
| | | */ |
| | | public Set<String> getSupportedFeatures() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedFeatures"); |
| | | |
| | | return supportedFeatureOIDs; |
| | | } |
| | |
| | | */ |
| | | public final boolean supportsFeature(String featureOID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsFeature", |
| | | String.valueOf(featureOID)); |
| | | |
| | | return getSupportedFeatures().contains(featureOID); |
| | | } |
| | |
| | | import org.opends.server.types.SearchFilter; |
| | | import org.opends.server.types.SearchScope; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class Group |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.Group"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizeGroupImplementation() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeGroupImplementation"); |
| | | |
| | | // No implementation is required by default. |
| | | } |
| | |
| | | public MemberList getMembers() |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMembers"); |
| | | |
| | | return getMembers(null, null, null); |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.Entry; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class IdentityMapper |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.IdentityMapper"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizeIdentityMapper() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeIdentityMapper"); |
| | | |
| | | // No implementation is required by default. |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.InvokableMethod; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | | import org.opends.server.loggers.LogRecord; |
| | | import org.opends.server.loggers.LogErrorHandler; |
| | | |
| | | /** |
| | | * LogPublishers are reponsible for distributing logged messages from |
| | | * the Logger object to a destination. |
| | | */ |
| | | public interface LogPublisher |
| | | { |
| | | /** |
| | | * Sends the log message to the logging destination. Every |
| | | * LogPublisher must implement the publish method for |
| | | * the generic LogRecord. Specialized LogPublishers should |
| | | * also include an implementation to publish specialized |
| | | * LogRecords (ie. DebugLogRecord). |
| | | * |
| | | * @param record the log record to publish. |
| | | * @param handler the error handler to use when an error occurs. |
| | | */ |
| | | public void publish(LogRecord record, LogErrorHandler handler); |
| | | |
| | | /** |
| | | * Releases any resources and prepare for close. |
| | | */ |
| | | public void shutdown(); |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.DirectoryException; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class MatchingRule |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.MatchingRule"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public String getNameOrOID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getNameOrOID"); |
| | | |
| | | String name = getName(); |
| | | if ((name == null) || (name.length() == 0)) |
| | |
| | | */ |
| | | public boolean isObsolete() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isObsolete"); |
| | | |
| | | return false; |
| | | } |
| | |
| | | */ |
| | | public int hashCode() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hashCode"); |
| | | |
| | | int hashCode = 0; |
| | | |
| | |
| | | */ |
| | | public boolean equals(Object o) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "equals", String.valueOf(o)); |
| | | |
| | | if (o == null) |
| | | { |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("( "); |
| | | buffer.append(getOID()); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.InitializationException; |
| | | import org.opends.server.types.ObjectClass; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static |
| | | org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static |
| | | org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | | |
| | | |
| | |
| | | public abstract class MonitorProvider |
| | | extends DirectoryThread |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.MonitorProvider"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(threadName); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | stopRequested = false; |
| | | monitorThread = null; |
| | |
| | | */ |
| | | public void finalizeMonitorProvider() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeMonitorProvider"); |
| | | |
| | | // Signal the monitor thread that it should stop. |
| | | stopRequested = true; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeMonitorProvider", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | public ObjectClass getMonitorObjectClass() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMonitorObjectClass"); |
| | | |
| | | return DirectoryConfig.getObjectClass(OC_EXTENSIBLE_OBJECT_LC, |
| | | true); |
| | |
| | | */ |
| | | public final void run() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "run"); |
| | | |
| | | |
| | | monitorThread = Thread.currentThread(); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.ByteString; |
| | | import org.opends.server.types.ConditionResult; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | extends MatchingRule |
| | | implements Comparator<byte[]>, Serializable |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.OrderingMatchingRule"; |
| | | |
| | | |
| | | |
| | |
| | | public ConditionResult valuesMatch(ByteString attributeValue, |
| | | ByteString assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valuesMatch", |
| | | String.valueOf(attributeValue), |
| | | String.valueOf(assertionValue)); |
| | | |
| | | return ConditionResult.UNDEFINED; |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.Entry; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class PasswordGenerator |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.PasswordGenerator"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizePasswordGenerator() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizePasswordGenerator"); |
| | | |
| | | // No action is performed by default. |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.DirectoryException; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class PasswordStorageScheme |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.PasswordStorageScheme"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizePasswordStorageScheme() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizePasswordStorageScheme"); |
| | | |
| | | // No implementation required by default. |
| | | } |
| | |
| | | */ |
| | | public String getAuthPasswordSchemeName() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAuthPasswordSchemeName"); |
| | | |
| | | return getStorageSchemeName(); |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.Entry; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class PasswordValidator |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.PasswordValidator"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizePasswordValidator() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizePasswordValidator"); |
| | | |
| | | |
| | | // No action is required by default. |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.core.BindOperation; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class SASLMechanismHandler |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.SASLMechanismHandler"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizeSASLMechanismHandler() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeSASLMechanismHandler"); |
| | | |
| | | // No implementation is required by default. |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.ConditionResult; |
| | | import org.opends.server.types.DirectoryException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | public abstract class SubstringMatchingRule |
| | | extends MatchingRule |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.SubstringMatchingRule"; |
| | | |
| | | |
| | | |
| | |
| | | public ConditionResult valuesMatch(ByteString attributeValue, |
| | | ByteString assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valuesMatch", |
| | | String.valueOf(attributeValue), |
| | | String.valueOf(assertionValue)); |
| | | |
| | | return ConditionResult.UNDEFINED; |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugConstructor; |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | |
| | | import java.util.AbstractSet; |
| | | import java.util.Collection; |
| | | import java.util.HashSet; |
| | |
| | | */ |
| | | public final class SubtreeSpecificationSet extends |
| | | AbstractSet<SubtreeSpecification> { |
| | | // Fully qualified class name for debugging purposes. |
| | | private static final String CLASS_NAME = |
| | | SubtreeSpecificationSet.class.getName(); |
| | | |
| | | // Underlying implementation is simply a set. |
| | | private HashSet<SubtreeSpecification> pimpl; |
| | |
| | | * Constructs a new empty subtree specification set. |
| | | */ |
| | | public SubtreeSpecificationSet() { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | this.pimpl = new HashSet<SubtreeSpecification>(); |
| | | } |
| | |
| | | */ |
| | | public SubtreeSpecificationSet( |
| | | Collection<? extends SubtreeSpecification> c) { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | this.pimpl = new HashSet<SubtreeSpecification>(c); |
| | | } |
| | |
| | | * specified entry. |
| | | */ |
| | | public boolean isWithinScope(Entry entry) { |
| | | assert debugEnter(CLASS_NAME, "contains"); |
| | | |
| | | for (SubtreeSpecification subtreeSpecification : pimpl) { |
| | | if (subtreeSpecification.isWithinScope(entry)) { |
| | |
| | | */ |
| | | @Override |
| | | public boolean add(SubtreeSpecification e) { |
| | | assert debugEnter(CLASS_NAME, "add"); |
| | | |
| | | return pimpl.add(e); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public Iterator<SubtreeSpecification> iterator() { |
| | | assert debugEnter(CLASS_NAME, "iterator"); |
| | | |
| | | return pimpl.iterator(); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public boolean contains(Object o) { |
| | | assert debugEnter(CLASS_NAME, "contains"); |
| | | |
| | | return pimpl.contains(o); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public int size() { |
| | | assert debugEnter(CLASS_NAME, "size"); |
| | | |
| | | return pimpl.size(); |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.InitializationException; |
| | | import org.opends.server.types.SynchronizationProviderResult; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class SynchronizationProvider |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.SynchronizationProvider"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public void finalizeSynchronizationProvider() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeSynchronizationProvider"); |
| | | |
| | | // No implementation is required by default. |
| | | } |
| | |
| | | handleConflictResolution(AddOperation addOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "handleConflictResolution", |
| | | String.valueOf(addOperation)); |
| | | |
| | | // No processing is required by default. |
| | | return new SynchronizationProviderResult(true); |
| | |
| | | handleConflictResolution(DeleteOperation deleteOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "handleConflictResolution", |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | // No processing is required by default. |
| | | return new SynchronizationProviderResult(true); |
| | |
| | | modifyOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "handleConflictResolution", |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | // No processing is required by default. |
| | | return new SynchronizationProviderResult(true); |
| | |
| | | modifyDNOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "handleConflictResolution", |
| | | String.valueOf(modifyDNOperation)); |
| | | |
| | | // No processing is required by default. |
| | | return new SynchronizationProviderResult(true); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api; |
| | | |
| | |
| | | import org.opends.server.types.DirectoryException; |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public abstract class WorkQueue |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.WorkQueue"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public boolean waitUntilIdle(long timeLimit) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "waitUntilIdle", |
| | | String.valueOf(timeLimit)); |
| | | |
| | | long stopWaitingTime; |
| | | if (timeLimit <= 0) |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | |
| | | import org.opends.server.types.SearchResultReference; |
| | | import org.opends.server.types.operation.*; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.PluginMessages.*; |
| | | |
| | |
| | | */ |
| | | public abstract class DirectoryServerPlugin |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.DirectoryServerPlugin"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | protected DirectoryServerPlugin() |
| | | { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | public final void initializeInternal(DN pluginDN, |
| | | Set<PluginType> pluginTypes) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeInternal", |
| | | String.valueOf(pluginDN), |
| | | String.valueOf(pluginTypes)); |
| | | |
| | | this.pluginDN = pluginDN; |
| | | this.pluginTypes = pluginTypes; |
| | |
| | | */ |
| | | public void finalizePlugin() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizePlugin"); |
| | | |
| | | // No implementation is required by default. |
| | | } |
| | |
| | | */ |
| | | public final DN getPluginEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPluginEntryDN"); |
| | | |
| | | return pluginDN; |
| | | } |
| | |
| | | */ |
| | | public final Set<PluginType> getPluginTypes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPluginTypes"); |
| | | |
| | | return pluginTypes; |
| | | } |
| | |
| | | */ |
| | | public StartupPluginResult doStartup() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doStartup"); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | */ |
| | | public void doShutdown(String reason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doShutdown", |
| | | String.valueOf(reason)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostConnectPluginResult doPostConnect(ClientConnection |
| | | clientConnection) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostConnect", |
| | | String.valueOf(clientConnection)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | DisconnectReason disconnectReason, |
| | | int messageID, String message) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostDisconnect", |
| | | String.valueOf(clientConnection), |
| | | String.valueOf(disconnectReason), |
| | | String.valueOf(messageID), |
| | | String.valueOf(message)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String msg = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public LDIFPluginResult doLDIFImport(LDIFImportConfig importConfig, |
| | | Entry entry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doLDIFImport", |
| | | String.valueOf(importConfig), |
| | | String.valueOf(entry)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public LDIFPluginResult doLDIFExport(LDIFExportConfig exportConfig, |
| | | Entry entry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doLDIFExport", |
| | | String.valueOf(exportConfig), |
| | | String.valueOf(entry)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseAbandonOperation abandonOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(abandonOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostOperationPluginResult |
| | | doPostOperation(PostOperationAbandonOperation abandonOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(abandonOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseAddOperation addOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(addOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreOperationPluginResult |
| | | doPreOperation(PreOperationAddOperation addOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreOperation", |
| | | String.valueOf(addOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostOperationPluginResult |
| | | doPostOperation(PostOperationAddOperation addOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(addOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostResponsePluginResult |
| | | doPostResponse(PostResponseAddOperation addOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostResponse", |
| | | String.valueOf(addOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseBindOperation bindOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(bindOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreOperationPluginResult |
| | | doPreOperation(PreOperationBindOperation bindOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreOperation", |
| | | String.valueOf(bindOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostOperationPluginResult |
| | | doPostOperation(PostOperationBindOperation bindOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(bindOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostResponsePluginResult |
| | | doPostResponse(PostResponseBindOperation bindOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostResponse", |
| | | String.valueOf(bindOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseCompareOperation compareOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(compareOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreOperationPluginResult |
| | | doPreOperation(PreOperationCompareOperation compareOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreOperation", |
| | | String.valueOf(compareOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostOperationPluginResult |
| | | doPostOperation(PostOperationCompareOperation compareOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(compareOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = |
| | |
| | | public PostResponsePluginResult |
| | | doPostResponse(PostResponseCompareOperation compareOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostResponse", |
| | | String.valueOf(compareOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseDeleteOperation deleteOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreOperationPluginResult |
| | | doPreOperation(PreOperationDeleteOperation deleteOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreOperation", |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostOperationPluginResult |
| | | doPostOperation(PostOperationDeleteOperation deleteOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostResponsePluginResult |
| | | doPostResponse(PostResponseDeleteOperation deleteOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostResponse", |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseExtendedOperation extendedOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(extendedOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreOperationPluginResult |
| | | doPreOperation(PreOperationExtendedOperation extendedOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreOperation", |
| | | String.valueOf(extendedOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = |
| | |
| | | doPostOperation(PostOperationExtendedOperation |
| | | extendedOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(extendedOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = |
| | |
| | | public PostResponsePluginResult |
| | | doPostResponse(PostResponseExtendedOperation extendedOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostResponse", |
| | | String.valueOf(extendedOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseModifyOperation modifyOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreOperationPluginResult |
| | | doPreOperation(PreOperationModifyOperation modifyOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreOperation", |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostOperationPluginResult |
| | | doPostOperation(PostOperationModifyOperation modifyOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostResponsePluginResult |
| | | doPostResponse(PostResponseModifyOperation modifyOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostResponse", |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseModifyDNOperation modifyDNOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(modifyDNOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreOperationPluginResult |
| | | doPreOperation(PreOperationModifyDNOperation modifyDNOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreOperation", |
| | | String.valueOf(modifyDNOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = |
| | |
| | | doPostOperation(PostOperationModifyDNOperation |
| | | modifyDNOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(modifyDNOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = |
| | |
| | | public PostResponsePluginResult |
| | | doPostResponse(PostResponseModifyDNOperation modifyDNOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostResponse", |
| | | String.valueOf(modifyDNOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseSearchOperation searchOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(searchOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreOperationPluginResult |
| | | doPreOperation(PreOperationSearchOperation searchOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreOperation", |
| | | String.valueOf(searchOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | processSearchEntry(SearchEntrySearchOperation searchOperation, |
| | | SearchResultEntry searchEntry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "processSearchEntry", |
| | | String.valueOf(searchOperation), |
| | | String.valueOf(searchEntry)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | searchOperation, |
| | | SearchResultReference searchReference) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "processSearchReference", |
| | | String.valueOf(searchOperation), |
| | | String.valueOf(searchReference)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = |
| | |
| | | public PostOperationPluginResult |
| | | doPostOperation(PostOperationSearchOperation searchOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(searchOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostResponsePluginResult |
| | | doPostResponse(PostResponseSearchOperation searchOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostResponse", |
| | | String.valueOf(searchOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PreParsePluginResult |
| | | doPreParse(PreParseUnbindOperation unbindOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPreParse", |
| | | String.valueOf(unbindOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | public PostOperationPluginResult |
| | | doPostOperation(PostOperationUnbindOperation unbindOperation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "doPostOperation", |
| | | String.valueOf(unbindOperation)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | processIntermediateResponse( |
| | | IntermediateResponse intermediateResponse) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "processIntermediateResponse", |
| | | String.valueOf(intermediateResponse)); |
| | | |
| | | int msgID = MSGID_PLUGIN_TYPE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(pluginDN), |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class IntermediateResponsePluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin." + |
| | | "IntermediateResponsePluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | boolean sendIntermediateResponse, |
| | | boolean continueOperation) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(connectionTerminated), |
| | | String.valueOf(continuePluginProcessing), |
| | | String.valueOf(sendIntermediateResponse), |
| | | String.valueOf(continueOperation)); |
| | | |
| | | this.connectionTerminated = connectionTerminated; |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | |
| | | */ |
| | | public boolean connectionTerminated() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "connectionTerminated"); |
| | | |
| | | return connectionTerminated; |
| | | } |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public boolean sendIntermediateResponse() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "sendIntermediateResponse"); |
| | | |
| | | return sendIntermediateResponse; |
| | | } |
| | |
| | | */ |
| | | public boolean continueOperation() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continueOperation"); |
| | | |
| | | return continueOperation; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("IntermediateResponsePluginResult(" + |
| | | "connectionTerminated="); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class LDIFPluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.LDIFPluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | public LDIFPluginResult(boolean continuePluginProcessing, |
| | | boolean continueEntryProcessing) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(continuePluginProcessing), |
| | | String.valueOf(continueEntryProcessing)); |
| | | |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | | this.continueEntryProcessing = continueEntryProcessing; |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public boolean continueEntryProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continueEntryProcessing"); |
| | | |
| | | return continueEntryProcessing; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("LDIFPluginResult(continuePluginProcessing="); |
| | | buffer.append(continuePluginProcessing); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class PostConnectPluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.PostConnectPluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | public PostConnectPluginResult(boolean connectionTerminated, |
| | | boolean continuePluginProcessing) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(connectionTerminated), |
| | | String.valueOf(continuePluginProcessing)); |
| | | |
| | | this.connectionTerminated = connectionTerminated; |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | |
| | | */ |
| | | public boolean connectionTerminated() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "connectionTerminated"); |
| | | |
| | | return connectionTerminated; |
| | | } |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("PostConnectPluginResult(connectionTerminated="); |
| | | buffer.append(connectionTerminated); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class PostDisconnectPluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.PostDisconnectPluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public PostDisconnectPluginResult(boolean continuePluginProcessing) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(continuePluginProcessing)); |
| | | |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("PostDisconnectPluginResult(" + |
| | | "continuePluginProcessing="); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class PostOperationPluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.PostOperationPluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | public PostOperationPluginResult(boolean connectionTerminated, |
| | | boolean continuePluginProcessing) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(connectionTerminated), |
| | | String.valueOf(continuePluginProcessing)); |
| | | |
| | | this.connectionTerminated = connectionTerminated; |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | |
| | | */ |
| | | public boolean connectionTerminated() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "connectionTerminated"); |
| | | |
| | | return connectionTerminated; |
| | | } |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("PostOperationPluginResult(connectionTerminated="); |
| | | buffer.append(connectionTerminated); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class PostResponsePluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.PostResponsePluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | public PostResponsePluginResult(boolean connectionTerminated, |
| | | boolean continuePluginProcessing) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(connectionTerminated), |
| | | String.valueOf(continuePluginProcessing)); |
| | | |
| | | this.connectionTerminated = connectionTerminated; |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public boolean connectionTerminated() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "connectionTerminated"); |
| | | |
| | | return connectionTerminated; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("PostResponsePluginResult(connectionTerminated="); |
| | | buffer.append(connectionTerminated); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class PreOperationPluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.PreOperationPluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | boolean continuePluginProcessing, |
| | | boolean sendResponseImmediately) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(connectionTerminated), |
| | | String.valueOf(continuePluginProcessing), |
| | | String.valueOf(sendResponseImmediately)); |
| | | |
| | | this.connectionTerminated = connectionTerminated; |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | |
| | | */ |
| | | public boolean connectionTerminated() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "connectionTerminated"); |
| | | |
| | | return connectionTerminated; |
| | | } |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public boolean sendResponseImmediately() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "sendResponseImmediately"); |
| | | |
| | | return sendResponseImmediately; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("PostResponsePluginResult(connectionTerminated="); |
| | | buffer.append(connectionTerminated); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class PreParsePluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.PreParsePluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | boolean continuePluginProcessing, |
| | | boolean sendResponseImmediately) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(connectionTerminated), |
| | | String.valueOf(continuePluginProcessing), |
| | | String.valueOf(sendResponseImmediately)); |
| | | |
| | | this.connectionTerminated = connectionTerminated; |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | |
| | | */ |
| | | public boolean connectionTerminated() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "connectionTerminated"); |
| | | |
| | | return connectionTerminated; |
| | | } |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public boolean sendResponseImmediately() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "sendResponseImmediately"); |
| | | |
| | | return sendResponseImmediately; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("PostResponsePluginResult(connectionTerminated="); |
| | | buffer.append(connectionTerminated); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class SearchEntryPluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.SearchEntryPluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | boolean sendEntry, |
| | | boolean continueSearch) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(connectionTerminated), |
| | | String.valueOf(continuePluginProcessing), |
| | | String.valueOf(sendEntry), |
| | | String.valueOf(continueSearch)); |
| | | |
| | | this.connectionTerminated = connectionTerminated; |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | |
| | | */ |
| | | public boolean connectionTerminated() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "connectionTerminated"); |
| | | |
| | | return connectionTerminated; |
| | | } |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public boolean sendEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "sendEntry"); |
| | | |
| | | return sendEntry; |
| | | } |
| | |
| | | */ |
| | | public boolean continueSearch() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continueSearch"); |
| | | |
| | | return continueSearch; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("SearchEntryPluginResult(connectionTerminated="); |
| | | buffer.append(connectionTerminated); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class SearchReferencePluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.SearchReferencePluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | boolean sendReference, |
| | | boolean continueSearch) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(connectionTerminated), |
| | | String.valueOf(continuePluginProcessing), |
| | | String.valueOf(sendReference), |
| | | String.valueOf(continueSearch)); |
| | | |
| | | this.connectionTerminated = connectionTerminated; |
| | | this.continuePluginProcessing = continuePluginProcessing; |
| | |
| | | */ |
| | | public boolean connectionTerminated() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "connectionTerminated"); |
| | | |
| | | return connectionTerminated; |
| | | } |
| | |
| | | */ |
| | | public boolean continuePluginProcessing() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continuePluginProcessing"); |
| | | |
| | | return continuePluginProcessing; |
| | | } |
| | |
| | | */ |
| | | public boolean sendReference() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "sendReference"); |
| | | |
| | | return sendReference; |
| | | } |
| | |
| | | */ |
| | | public boolean continueSearch() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continueSearch"); |
| | | |
| | | return continueSearch; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("SearchReferencePluginResult(" + |
| | | "connectionTerminated="); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.api.plugin; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public class StartupPluginResult |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.api.plugin.StartupPluginResult"; |
| | | |
| | | |
| | | |
| | |
| | | boolean continueStartup, int errorID, |
| | | String errorMessage) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(completedSuccessfully), |
| | | String.valueOf(continueStartup), |
| | | String.valueOf(errorID), |
| | | String.valueOf(errorMessage)); |
| | | |
| | | this.completedSuccessfully = completedSuccessfully; |
| | | this.continueStartup = continueStartup; |
| | |
| | | */ |
| | | public boolean completedSuccessfully() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "completedSuccessfully"); |
| | | |
| | | return completedSuccessfully; |
| | | } |
| | |
| | | */ |
| | | public boolean continueStartup() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "continueStartup"); |
| | | |
| | | return continueStartup; |
| | | } |
| | |
| | | */ |
| | | public int getErrorID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getErrorID"); |
| | | |
| | | return errorID; |
| | | } |
| | |
| | | */ |
| | | public String getErrorMessage() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getErrorMessage"); |
| | | |
| | | return errorMessage; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", |
| | | "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("StartupPluginResult(completedSuccessfully="); |
| | | buffer.append(completedSuccessfully); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.authorization; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | |
| | | import org.opends.server.api.AccessControlHandler; |
| | | import org.opends.server.core.AddOperation; |
| | |
| | | * requests made by the core directory server. |
| | | */ |
| | | final class BasicAccessControlHandler extends AccessControlHandler { |
| | | // Fully qualified class name for debugging purposes. |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.authorization.BasicAccessControlHandler"; |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(AddOperation addOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(BindOperation bindOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(CompareOperation compareOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(DeleteOperation deleteOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(ExtendedOperation extendedOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(ModifyOperation modifyOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(ModifyDNOperation modifyDNOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(SearchOperation searchOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | @Override |
| | | public boolean maySend(SearchOperation searchOperation, |
| | | SearchResultEntry searchEntry) { |
| | | assert debugEnter(CLASS_NAME, "maySend"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | @Override |
| | | public SearchResultEntry filterEntry(SearchOperation searchOperation, |
| | | SearchResultEntry searchEntry) { |
| | | assert debugEnter(CLASS_NAME, "filterEntry"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | @Override |
| | | public boolean maySend(SearchOperation searchOperation, |
| | | SearchResultReference searchReference) { |
| | | assert debugEnter(CLASS_NAME, "maySend"); |
| | | |
| | | // TODO: not yet implemented. |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.authorization; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugConstructor; |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | |
| | | import org.opends.server.api.AccessControlHandler; |
| | | import org.opends.server.api.AccessControlProvider; |
| | | import org.opends.server.config.ConfigEntry; |
| | |
| | | */ |
| | | public class BasicAccessControlProvider implements |
| | | AccessControlProvider { |
| | | // Fully qualified class name for debugging purposes. |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.authorization.BasicAccessControlProvider"; |
| | | |
| | | /** |
| | | * The single handler instance. |
| | |
| | | public BasicAccessControlProvider() { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | // No implementation required. |
| | | } |
| | |
| | | */ |
| | | public void initializeAccessControlHandler(ConfigEntry configEntry) |
| | | throws ConfigException, InitializationException { |
| | | assert debugEnter(CLASS_NAME, "initializeAccessControlHandler"); |
| | | |
| | | // Avoid potential race conditions constructing the handler instance |
| | | // and create it here. |
| | |
| | | * {@inheritDoc} |
| | | */ |
| | | public void finalizeAccessControlHandler() { |
| | | assert debugEnter(CLASS_NAME, "finalizeAccessControlHandler"); |
| | | |
| | | // No implementation required. |
| | | } |
| | |
| | | * {@inheritDoc} |
| | | */ |
| | | public AccessControlHandler getInstance() { |
| | | assert debugEnter(CLASS_NAME, "getInstance"); |
| | | |
| | | if (instance == null) { |
| | | instance = new BasicAccessControlHandler(); |
| | |
| | | */ |
| | | package org.opends.server.authorization.dseecompat; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugConstructor; |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | |
| | | /** |
| | | * The AciException class defines an exception that may be thrown |
| | |
| | | */ |
| | | public class AciException extends Exception { |
| | | |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.authorization.dseecompat.AciException"; |
| | | |
| | | /** |
| | | * The serial version identifier required to satisfy the compiler because this |
| | |
| | | */ |
| | | public AciException(int messageID, String message) { |
| | | super(message); |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(messageID), |
| | | String.valueOf(message)); |
| | | this.messageID = messageID; |
| | | } |
| | | |
| | |
| | | public AciException(int messageID, String message, Throwable cause) { |
| | | super(message, cause); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(message), |
| | | String.valueOf(cause)); |
| | | |
| | | this.messageID = messageID; |
| | | } |
| | |
| | | * @return The message ID for this exception. |
| | | */ |
| | | public int getMessageID() { |
| | | assert debugEnter(CLASS_NAME, "getMessageID"); |
| | | return messageID; |
| | | } |
| | | } |
| | |
| | | import org.opends.server.api.AccessControlHandler; |
| | | import static org.opends.server.authorization.dseecompat.AciMessages.*; |
| | | import org.opends.server.core.*; |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | import static org.opends.server.loggers.Error.logError; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import org.opends.server.types.*; |
| | | import org.opends.server.types.Attribute; |
| | | import org.opends.server.types.AttributeType; |
| | | import org.opends.server.types.AttributeValue; |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.Entry; |
| | | import org.opends.server.types.ErrorLogCategory; |
| | | import org.opends.server.types.ErrorLogSeverity; |
| | | import org.opends.server.types.Modification; |
| | | import org.opends.server.types.ModificationType; |
| | | import org.opends.server.types.Privilege; |
| | | import org.opends.server.types.SearchResultEntry; |
| | | import org.opends.server.types.SearchResultReference; |
| | | import static org.opends.server.util.StaticUtils.toLowerCase; |
| | | import java.util.LinkedList; |
| | | import java.util.List; |
| | |
| | | public class AciHandler extends AccessControlHandler |
| | | { |
| | | |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.authorization.dseecompat.AciHandler"; |
| | | |
| | | /** |
| | | * ACI_ADD is used to set the container rights for a LDAP add operation. |
| | |
| | | * @return True if access is allowed. |
| | | */ |
| | | public boolean isAllowed(AddOperation operation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | AciLDAPOperationContainer operationContainer = |
| | | new AciLDAPOperationContainer(operation, ACI_ADD); |
| | | boolean ret=isAllowed(operationContainer,operation); |
| | |
| | | * @return True if access is allowed. |
| | | */ |
| | | public boolean isAllowed(CompareOperation operation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | |
| | | AciLDAPOperationContainer operationContainer = |
| | | new AciLDAPOperationContainer(operation, ACI_COMPARE); |
| | |
| | | * @return True if access is allowed. |
| | | */ |
| | | public boolean isAllowed(DeleteOperation operation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | AciLDAPOperationContainer operationContainer= |
| | | new AciLDAPOperationContainer(operation, ACI_DELETE); |
| | | return isAllowed(operationContainer, operation); |
| | |
| | | */ |
| | | |
| | | public boolean isAllowed(ModifyOperation operation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | AciLDAPOperationContainer operationContainer= |
| | | new AciLDAPOperationContainer(operation, ACI_NULL); |
| | | return aciCheckMods(operationContainer, operation, |
| | |
| | | */ |
| | | public boolean |
| | | maySend(SearchOperation operation, SearchResultEntry entry) { |
| | | assert debugEnter(CLASS_NAME, "maySend"); |
| | | AciLDAPOperationContainer operationContainer = |
| | | new AciLDAPOperationContainer(operation, |
| | | (ACI_READ | ACI_SEARCH), entry); |
| | |
| | | public SearchResultEntry filterEntry(SearchOperation operation, |
| | | SearchResultEntry entry) { |
| | | |
| | | assert debugEnter(CLASS_NAME, "filterEntry"); |
| | | AciLDAPOperationContainer operationContainer = |
| | | new AciLDAPOperationContainer(operation, |
| | | (ACI_READ | ACI_SEARCH), entry); |
| | |
| | | @Override |
| | | public boolean maySend(SearchOperation operation, |
| | | SearchResultReference reference) { |
| | | assert debugEnter(CLASS_NAME, "maySend"); |
| | | //TODO: Planned to be implemented. |
| | | return true; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(ModifyDNOperation modifyDNOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | // TODO: Planned to be implemented. |
| | | return true; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(BindOperation bindOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | //Not planned to be implemented. |
| | | return true; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(ExtendedOperation extendedOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | //Not planned to be implemented. |
| | | return true; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public boolean isAllowed(SearchOperation searchOperation) { |
| | | assert debugEnter(CLASS_NAME, "isAllowed"); |
| | | //Not planned to be implemented. |
| | | return true; |
| | | } |
| | |
| | | import org.opends.server.api.ChangeNotificationListener; |
| | | import org.opends.server.api.BackendInitializationListener; |
| | | import org.opends.server.api.Backend; |
| | | import org.opends.server.types.*; |
| | | import org.opends.server.types.operation.PostResponseAddOperation; |
| | | import org.opends.server.types.operation.PostResponseDeleteOperation; |
| | | import org.opends.server.types.operation.PostResponseModifyOperation; |
| | | import org.opends.server.types.operation.PostResponseModifyDNOperation; |
| | | import org.opends.server.protocols.internal.InternalClientConnection; |
| | | import org.opends.server.protocols.internal.InternalSearchOperation; |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.loggers.Error.logError; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.DereferencePolicy; |
| | | import org.opends.server.types.DirectoryException; |
| | | import org.opends.server.types.Entry; |
| | | import org.opends.server.types.ErrorLogCategory; |
| | | import org.opends.server.types.ErrorLogSeverity; |
| | | import org.opends.server.types.SearchFilter; |
| | | import org.opends.server.types.SearchResultEntry; |
| | | import org.opends.server.types.SearchScope; |
| | | import static org.opends.server.authorization.dseecompat.AciMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | |
| | |
| | | public class AciListenerManager |
| | | implements ChangeNotificationListener, BackendInitializationListener { |
| | | |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.core.AciListenerManager"; |
| | | |
| | | private AciList aciList; |
| | | /* |
| | |
| | | continue; |
| | | } |
| | | } catch (Exception e) { |
| | | assert debugException(CLASS_NAME, |
| | | "performBackendInitializationProcessing", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | //TODO log message |
| | | continue; |
| | | } |
| | |
| | | { |
| | | backend.search(internalSearch); |
| | | } catch (Exception e) { |
| | | assert debugException(CLASS_NAME, |
| | | "performBackendInitializationProcessing", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | //TODO log message |
| | | continue; |
| | | } |
| | |
| | | import org.opends.server.config.ConfigEntry; |
| | | import org.opends.server.config.ConfigException; |
| | | import org.opends.server.types.InitializationException; |
| | | import static org.opends.server.loggers.Debug.debugConstructor; |
| | | |
| | | /** |
| | | * This class is the provider class for the dseecompt ACI. |
| | | */ |
| | | public class AciProvider implements AccessControlProvider { |
| | | |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.authorization.dseecompat.AciProvider"; |
| | | |
| | | private static AciHandler instance = null; |
| | | |
| | |
| | | */ |
| | | public AciProvider() { |
| | | super(); |
| | | assert debugConstructor(CLASS_NAME); |
| | | } |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | |
| | |
| | | import org.opends.server.types.SearchScope; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | extends Backend |
| | | implements ConfigurableComponent |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.BackupBackend"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | |
| | | // Perform all initialization in initializeBackend. |
| | |
| | | public void initializeBackend(ConfigEntry configEntry, DN[] baseDNs) |
| | | throws ConfigException, InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeBackend", |
| | | String.valueOf(configEntry)); |
| | | |
| | | |
| | | // Make sure that a configuration entry was provided. If not, then we will |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_BACKUP_CANNOT_DECODE_BACKUP_ROOT_DN; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_BACKUP_CANNOT_DETERMINE_BACKUP_DIR_LIST; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | | throw new InitializationException(msgID, message,e); |
| | | throw new InitializationException(msgID, message, e); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN; |
| | | String message = getMessage(msgID, backupBaseDN.toString(), |
| | |
| | | */ |
| | | public void finalizeBackend() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeBackend"); |
| | | |
| | | DirectoryServer.deregisterConfigurableComponent(this); |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | public DN[] getBaseDNs() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBaseDNs"); |
| | | |
| | | return baseDNs; |
| | | } |
| | |
| | | */ |
| | | public long getEntryCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntryCount"); |
| | | |
| | | int numEntries = 1; |
| | | |
| | |
| | | */ |
| | | public boolean isLocal() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isLocal"); |
| | | |
| | | // For the purposes of this method, this is a local backend. |
| | | return true; |
| | |
| | | public Entry getEntry(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntry", String.valueOf(entryDN)); |
| | | |
| | | |
| | | // If the requested entry was null, then throw an exception. |
| | |
| | | private Entry getBackupDirectoryEntry(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBackupDirectoryEntry", |
| | | String.valueOf(entryDN)); |
| | | |
| | | |
| | | // Make sure that the DN specifies a backup directory. |
| | |
| | | } |
| | | catch (ConfigException ce) |
| | | { |
| | | assert debugException(CLASS_NAME, "getBackupDirectoryEntry", ce); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ce); |
| | | } |
| | | |
| | | int msgID = MSGID_BACKUP_INVALID_BACKUP_DIRECTORY; |
| | | int msgID = MSGID_BACKUP_INVALID_BACKUP_DIRECTORY; |
| | | String message = getMessage(msgID, String.valueOf(entryDN), |
| | | ce.getMessage()); |
| | | throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getBackupDirectoryEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_BACKUP_ERROR_GETTING_BACKUP_DIRECTORY; |
| | | int msgID = MSGID_BACKUP_ERROR_GETTING_BACKUP_DIRECTORY; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message, msgID); |
| | |
| | | private Entry getBackupEntry(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBackupEntry", String.valueOf(entryDN)); |
| | | |
| | | |
| | | // First, get the backup ID from the entry DN. |
| | |
| | | } |
| | | catch (ConfigException ce) |
| | | { |
| | | assert debugException(CLASS_NAME, "getBackupEntry", ce); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ce); |
| | | } |
| | | |
| | | int msgID = MSGID_BACKUP_INVALID_BACKUP_DIRECTORY; |
| | | int msgID = MSGID_BACKUP_INVALID_BACKUP_DIRECTORY; |
| | | String message = getMessage(msgID, ce.getMessage()); |
| | | throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message, |
| | | msgID); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getBackupEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_BACKUP_ERROR_GETTING_BACKUP_DIRECTORY; |
| | | int msgID = MSGID_BACKUP_ERROR_GETTING_BACKUP_DIRECTORY; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message, msgID); |
| | |
| | | public void addEntry(Entry entry, AddOperation addOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addEntry", String.valueOf(entry), |
| | | String.valueOf(addOperation)); |
| | | |
| | | int msgID = MSGID_BACKUP_ADD_NOT_SUPPORTED; |
| | | String message = getMessage(msgID); |
| | |
| | | public void deleteEntry(DN entryDN, DeleteOperation deleteOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deleteEntry", String.valueOf(entryDN), |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | int msgID = MSGID_BACKUP_DELETE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID); |
| | |
| | | public void replaceEntry(Entry entry, ModifyOperation modifyOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "replaceEntry", String.valueOf(entry), |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | int msgID = MSGID_BACKUP_MODIFY_NOT_SUPPORTED; |
| | | String message = getMessage(msgID); |
| | |
| | | ModifyDNOperation modifyDNOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "renameEntry", String.valueOf(currentDN), |
| | | String.valueOf(entry), String.valueOf(modifyDNOperation)); |
| | | |
| | | int msgID = MSGID_BACKUP_MODIFY_DN_NOT_SUPPORTED; |
| | | String message = getMessage(msgID); |
| | |
| | | public void search(SearchOperation searchOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "search", String.valueOf(searchOperation)); |
| | | |
| | | |
| | | // Get the base entry for the search, if possible. If it doesn't exist, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "search", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | continue; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "search", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | continue; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "search", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | continue; |
| | | } |
| | |
| | | */ |
| | | public HashSet<String> getSupportedControls() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedControls"); |
| | | |
| | | return supportedControls; |
| | | } |
| | |
| | | */ |
| | | public HashSet<String> getSupportedFeatures() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedFeatures"); |
| | | |
| | | return supportedFeatures; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFExport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFExport"); |
| | | |
| | | // We do not support LDIF exports. |
| | | return false; |
| | |
| | | LDIFExportConfig exportConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "exportLDIF", String.valueOf(exportConfig)); |
| | | |
| | | int msgID = MSGID_BACKUP_EXPORT_NOT_SUPPORTED; |
| | | String message = getMessage(msgID); |
| | |
| | | */ |
| | | public boolean supportsLDIFImport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFImport"); |
| | | |
| | | // This backend does not support LDIF imports. |
| | | return false; |
| | |
| | | LDIFImportConfig importConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "importLDIF", String.valueOf(importConfig)); |
| | | |
| | | |
| | | // This backend does not support LDIF imports. |
| | |
| | | */ |
| | | public boolean supportsBackup() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | | return false; |
| | |
| | | public boolean supportsBackup(BackupConfig backupConfig, |
| | | StringBuilder unsupportedReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createBackup", String.valueOf(backupConfig)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | String backupID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeBackup", |
| | | String.valueOf(backupDirectory), |
| | | String.valueOf(backupID)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | */ |
| | | public boolean supportsRestore() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsRestore"); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | RestoreConfig restoreConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "restoreBackup", |
| | | String.valueOf(restoreConfig)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | */ |
| | | public DN getConfigurableComponentEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurableComponentEntryDN"); |
| | | |
| | | return configEntryDN; |
| | | } |
| | |
| | | */ |
| | | public List<ConfigAttribute> getConfigurationAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurationAttributes"); |
| | | |
| | | |
| | | LinkedList<ConfigAttribute> attrs = new LinkedList<ConfigAttribute>(); |
| | |
| | | public boolean hasAcceptableConfiguration(ConfigEntry configEntry, |
| | | List<String> unacceptableReasons) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasAcceptableConfiguration", |
| | | String.valueOf(configEntry), "java.util.List<String>"); |
| | | |
| | | |
| | | // We'll accept anything here. The only configurable attribute is the |
| | |
| | | public ConfigChangeResult applyNewConfiguration(ConfigEntry configEntry, |
| | | boolean detailedResults) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyNewConfiguration", |
| | | String.valueOf(configEntry), |
| | | String.valueOf(detailedResults)); |
| | | |
| | | |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_BACKUP_CANNOT_DETERMINE_BACKUP_DIR_LIST; |
| | | messages.add(getMessage(msgID, stackTraceToSingleLineString(e))); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends; |
| | | |
| | |
| | | import org.opends.server.util.LDIFReader; |
| | | import org.opends.server.util.LDIFWriter; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class MemoryBackend |
| | | extends Backend |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.MemoryBackend"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | |
| | | // Perform all initialization in initializeBackend. |
| | |
| | | DN[] baseDNs) |
| | | throws ConfigException, InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeBackend", |
| | | String.valueOf(configEntry), String.valueOf(baseDNs)); |
| | | |
| | | |
| | | // We won't support anything other than exactly one base DN in this |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN; |
| | | String message = getMessage(msgID, dn.toString(), |
| | |
| | | */ |
| | | public synchronized void finalizeBackend() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeBackend"); |
| | | |
| | | clearMemoryBackend(); |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public DN[] getBaseDNs() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBaseDNs"); |
| | | |
| | | return baseDNs; |
| | | } |
| | |
| | | */ |
| | | public synchronized long getEntryCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntryCount"); |
| | | |
| | | if (entryMap != null) |
| | | { |
| | |
| | | */ |
| | | public boolean isLocal() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isLocal"); |
| | | |
| | | // For the purposes of this method, this is a local backend. |
| | | return true; |
| | |
| | | */ |
| | | public synchronized Entry getEntry(DN entryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntry", String.valueOf(entryDN)); |
| | | |
| | | return entryMap.get(entryDN); |
| | | } |
| | |
| | | */ |
| | | public synchronized boolean entryExists(DN entryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryExists", String.valueOf(entryDN)); |
| | | |
| | | return entryMap.containsKey(entryDN); |
| | | } |
| | |
| | | public synchronized void addEntry(Entry entry, AddOperation addOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addEntry", String.valueOf(entry), |
| | | String.valueOf(addOperation)); |
| | | |
| | | |
| | | // See if the target entry already exists. If so, then fail. |
| | |
| | | DeleteOperation deleteOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deleteEntry", String.valueOf(entryDN), |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | |
| | | // Make sure the entry exists. If not, then throw an exception. |
| | |
| | | { |
| | | // This shouldn't happen, but we want the delete to continue anyway |
| | | // so just ignore it if it does for some reason. |
| | | assert debugException(CLASS_NAME, "deleteEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | ModifyOperation modifyOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "replaceEntry", String.valueOf(entry), |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | |
| | | // Make sure the entry exists. If not, then throw an exception. |
| | |
| | | ModifyDNOperation modifyDNOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "renameEntry", String.valueOf(currentDN), |
| | | String.valueOf(entry), String.valueOf(modifyDNOperation)); |
| | | |
| | | |
| | | // Make sure that the target entry exists. |
| | |
| | | public synchronized void search(SearchOperation searchOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "search", String.valueOf(searchOperation)); |
| | | |
| | | |
| | | // Get the base DN, scope, and filter for the search. |
| | |
| | | */ |
| | | public HashSet<String> getSupportedControls() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedControls"); |
| | | |
| | | return supportedControls; |
| | | } |
| | |
| | | */ |
| | | public HashSet<String> getSupportedFeatures() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedFeatures"); |
| | | |
| | | return supportedFeatures; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFExport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFExport"); |
| | | |
| | | return true; |
| | | } |
| | |
| | | LDIFExportConfig exportConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "exportLDIF", String.valueOf(exportConfig)); |
| | | |
| | | |
| | | // Create the LDIF writer. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_MEMORYBACKEND_CANNOT_CREATE_LDIF_WRITER; |
| | | int msgID = MSGID_MEMORYBACKEND_CANNOT_CREATE_LDIF_WRITER; |
| | | String message = getMessage(msgID, String.valueOf(e)); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message, msgID, e); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFImport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFImport"); |
| | | |
| | | return true; |
| | | } |
| | |
| | | LDIFImportConfig importConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "importLDIF", String.valueOf(importConfig)); |
| | | |
| | | |
| | | clearMemoryBackend(); |
| | |
| | | */ |
| | | public boolean supportsBackup() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | | return false; |
| | |
| | | public boolean supportsBackup(BackupConfig backupConfig, |
| | | StringBuilder unsupportedReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createBackup", String.valueOf(backupConfig)); |
| | | |
| | | |
| | | int msgID = MSGID_MEMORYBACKEND_BACKUP_RESTORE_NOT_SUPPORTED; |
| | |
| | | String backupID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeBackup", |
| | | String.valueOf(backupDirectory), |
| | | String.valueOf(backupID)); |
| | | |
| | | |
| | | int msgID = MSGID_MEMORYBACKEND_BACKUP_RESTORE_NOT_SUPPORTED; |
| | |
| | | */ |
| | | public boolean supportsRestore() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsRestore"); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | RestoreConfig restoreConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "restoreBackup", |
| | | String.valueOf(restoreConfig)); |
| | | |
| | | |
| | | int msgID = MSGID_MEMORYBACKEND_BACKUP_RESTORE_NOT_SUPPORTED; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends; |
| | | |
| | |
| | | import org.opends.server.util.TimeThread; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | extends Backend |
| | | implements ConfigurableComponent |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.MonitorBackend"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | |
| | | // Perform all initialization in initializeBackend. |
| | |
| | | public void initializeBackend(ConfigEntry configEntry, DN[] baseDNs) |
| | | throws ConfigException, InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeBackend", |
| | | String.valueOf(configEntry)); |
| | | |
| | | |
| | | // Make sure that a configuration entry was provided. If not, then we will |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_MONITOR_CANNOT_DECODE_MONITOR_ROOT_DN; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN; |
| | | String message = getMessage(msgID, baseMonitorDN.toString(), |
| | |
| | | */ |
| | | public void finalizeBackend() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeBackend"); |
| | | |
| | | DirectoryServer.deregisterConfigurableComponent(this); |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | private boolean isMonitorConfigAttribute(Attribute attribute) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isMonitorConfigAttribute", |
| | | String.valueOf(attribute)); |
| | | |
| | | AttributeType attrType = attribute.getAttributeType(); |
| | | if (attrType.hasName(ATTR_COMMON_NAME) || |
| | |
| | | */ |
| | | public DN[] getBaseDNs() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBaseDNs"); |
| | | |
| | | return baseDNs; |
| | | } |
| | |
| | | */ |
| | | public long getEntryCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntryCount"); |
| | | |
| | | return DirectoryServer.getMonitorProviders().size() + 1; |
| | | } |
| | |
| | | */ |
| | | public boolean isLocal() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isLocal"); |
| | | |
| | | // For the purposes of this method, this is a local backend. |
| | | return true; |
| | |
| | | public Entry getEntry(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntry", String.valueOf(entryDN)); |
| | | |
| | | |
| | | // If the requested entry was null, then throw an exception. |
| | |
| | | public boolean entryExists(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryExists", String.valueOf(entryDN)); |
| | | |
| | | if (entryDN.equals(baseMonitorDN)) |
| | | { |
| | |
| | | */ |
| | | public Entry getBaseMonitorEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBaseMonitorEntry"); |
| | | |
| | | |
| | | HashMap<ObjectClass,String> monitorClasses = |
| | |
| | | */ |
| | | private Entry getMonitorEntry(DN entryDN, MonitorProvider monitorProvider) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMonitorEntry", |
| | | String.valueOf(monitorProvider)); |
| | | |
| | | HashMap<ObjectClass,String> monitorClasses = |
| | | new LinkedHashMap<ObjectClass,String>(3); |
| | |
| | | private Attribute createAttribute(String name, String lowerName, |
| | | String value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createAttribute", String.valueOf(name), |
| | | String.valueOf(lowerName), String.valueOf(value)); |
| | | |
| | | AttributeType type = DirectoryServer.getAttributeType(lowerName); |
| | | if (type == null) |
| | |
| | | public void addEntry(Entry entry, AddOperation addOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addEntry", String.valueOf(entry), |
| | | String.valueOf(addOperation)); |
| | | |
| | | int msgID = MSGID_MONITOR_ADD_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(entry.getDN())); |
| | |
| | | public void deleteEntry(DN entryDN, DeleteOperation deleteOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deleteEntry", String.valueOf(entryDN), |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | int msgID = MSGID_MONITOR_DELETE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(entryDN)); |
| | |
| | | public void replaceEntry(Entry entry, ModifyOperation modifyOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "replaceEntry", String.valueOf(entry), |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | int msgID = MSGID_MONITOR_MODIFY_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(entry.getDN()), |
| | |
| | | ModifyDNOperation modifyDNOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "renameEntry", String.valueOf(currentDN), |
| | | String.valueOf(entry), String.valueOf(modifyDNOperation)); |
| | | |
| | | int msgID = MSGID_MONITOR_MODIFY_DN_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(currentDN)); |
| | |
| | | public void search(SearchOperation searchOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "search", String.valueOf(searchOperation)); |
| | | |
| | | |
| | | // Get the base entry for the search, if possible. If it doesn't exist, |
| | |
| | | */ |
| | | public HashSet<String> getSupportedControls() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedControls"); |
| | | |
| | | return supportedControls; |
| | | } |
| | |
| | | */ |
| | | public HashSet<String> getSupportedFeatures() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedFeatures"); |
| | | |
| | | return supportedFeatures; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFExport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFExport"); |
| | | |
| | | // We can export all the monitor entries as a point-in-time snapshot. |
| | | return true; |
| | |
| | | LDIFExportConfig exportConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "exportLDIF", String.valueOf(exportConfig)); |
| | | |
| | | |
| | | // Create the LDIF writer. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ROOTDSE_UNABLE_TO_CREATE_LDIF_WRITER; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | try |
| | | { |
| | |
| | | } |
| | | catch (Exception e2) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e2); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e2); |
| | | } |
| | | } |
| | | |
| | | int msgID = MSGID_MONITOR_UNABLE_TO_EXPORT_BASE; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | try |
| | | { |
| | |
| | | } |
| | | catch (Exception e2) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e2); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e2); |
| | | } |
| | | } |
| | | |
| | | int msgID = MSGID_MONITOR_UNABLE_TO_EXPORT_PROVIDER_ENTRY; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | public boolean supportsLDIFImport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFImport"); |
| | | |
| | | // This backend does not support LDIF imports. |
| | | return false; |
| | |
| | | LDIFImportConfig importConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "importLDIF", String.valueOf(importConfig)); |
| | | |
| | | |
| | | // This backend does not support LDIF imports. |
| | |
| | | */ |
| | | public boolean supportsBackup() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | | return false; |
| | |
| | | public boolean supportsBackup(BackupConfig backupConfig, |
| | | StringBuilder unsupportedReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createBackup", String.valueOf(backupConfig)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | String backupID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeBackup", |
| | | String.valueOf(backupDirectory), |
| | | String.valueOf(backupID)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | */ |
| | | public boolean supportsRestore() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsRestore"); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | RestoreConfig restoreConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "restoreBackup", |
| | | String.valueOf(restoreConfig)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | */ |
| | | public DN getConfigurableComponentEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurableComponentEntryDN"); |
| | | |
| | | return configEntryDN; |
| | | } |
| | |
| | | */ |
| | | public List<ConfigAttribute> getConfigurationAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurationAttributes"); |
| | | |
| | | // There are no configurable attributes that will be explicitly advertised. |
| | | return new LinkedList<ConfigAttribute>(); |
| | |
| | | public boolean hasAcceptableConfiguration(ConfigEntry configEntry, |
| | | List<String> unacceptableReasons) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasAcceptableConfiguration", |
| | | String.valueOf(configEntry), "java.util.List<String>"); |
| | | |
| | | |
| | | // We'll pretty much accept anything here as long as it isn't one of our |
| | |
| | | public ConfigChangeResult applyNewConfiguration(ConfigEntry configEntry, |
| | | boolean detailedResults) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyNewConfiguration", |
| | | String.valueOf(configEntry), |
| | | String.valueOf(detailedResults)); |
| | | |
| | | |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends; |
| | | |
| | |
| | | import org.opends.server.util.LDIFWriter; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | |
| | | extends Backend |
| | | implements ConfigurableComponent |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.RootDSEBackend"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | |
| | | // Perform all initialization in initializeBackend. |
| | |
| | | public void initializeBackend(ConfigEntry configEntry, DN[] baseDNs) |
| | | throws ConfigException, InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeBackend", |
| | | String.valueOf(configEntry)); |
| | | |
| | | |
| | | // Make sure that a configuration entry was provided. If not, then we will |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ROOTDSE_SUBORDINATE_BASE_EXCEPTION; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | | throw new InitializationException(msgID, message,e); |
| | | throw new InitializationException(msgID, message, e); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_ROOTDSE_CANNOT_DETERMINE_ALL_USER_ATTRIBUTES; |
| | | String message = getMessage(msgID, ATTR_ROOTDSE_SHOW_ALL_ATTRIBUTES, |
| | |
| | | */ |
| | | public void finalizeBackend() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeBackend"); |
| | | |
| | | DirectoryServer.deregisterConfigurableComponent(this); |
| | | } |
| | |
| | | */ |
| | | private boolean isDSEConfigAttribute(Attribute attribute) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isConfigAttribute", |
| | | String.valueOf(attribute)); |
| | | |
| | | AttributeType attrType = attribute.getAttributeType(); |
| | | if (attrType.hasName(ATTR_ROOT_DSE_SUBORDINATE_BASE_DN.toLowerCase()) || |
| | |
| | | */ |
| | | public DN[] getBaseDNs() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBaseDNs"); |
| | | |
| | | return baseDNs; |
| | | } |
| | |
| | | */ |
| | | public synchronized long getEntryCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntryCount"); |
| | | |
| | | // There is always just a single entry in this backend. |
| | | return 1; |
| | |
| | | */ |
| | | public boolean isLocal() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isLocal"); |
| | | |
| | | // For the purposes of this method, this is a local backend. |
| | | return true; |
| | |
| | | public Entry getEntry(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntry", String.valueOf(entryDN)); |
| | | |
| | | |
| | | // If the requested entry was the root DSE, then create and return it. |
| | |
| | | */ |
| | | public Entry getRootDSE() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRootDSE"); |
| | | |
| | | HashMap<AttributeType,List<Attribute>> dseUserAttrs = |
| | | new HashMap<AttributeType,List<Attribute>>(); |
| | |
| | | private Attribute createAttribute(String name, String lowerName, |
| | | String value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createAttribute", String.valueOf(name), |
| | | String.valueOf(lowerName), String.valueOf(value)); |
| | | |
| | | AttributeType type = DirectoryServer.getAttributeType(lowerName); |
| | | if (type == null) |
| | |
| | | private Attribute createDNAttribute(String name, String lowerName, |
| | | Collection<DN> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createDNAttribute", String.valueOf(name), |
| | | String.valueOf(lowerName), String.valueOf(values)); |
| | | |
| | | AttributeType type = DirectoryServer.getAttributeType(lowerName); |
| | | if (type == null) |
| | |
| | | private Attribute createAttribute(String name, String lowerName, |
| | | Collection<String> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createAttribute", String.valueOf(name), |
| | | String.valueOf(lowerName), String.valueOf(values)); |
| | | |
| | | AttributeType type = DirectoryServer.getAttributeType(lowerName); |
| | | if (type == null) |
| | |
| | | public boolean entryExists(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryExists", String.valueOf(entryDN)); |
| | | |
| | | |
| | | // If the specified DN was the null DN, then it exists. |
| | |
| | | public void addEntry(Entry entry, AddOperation addOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addEntry", String.valueOf(entry), |
| | | String.valueOf(addOperation)); |
| | | |
| | | int msgID = MSGID_ROOTDSE_ADD_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(entry.getDN())); |
| | |
| | | public void deleteEntry(DN entryDN, DeleteOperation deleteOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deleteEntry", String.valueOf(entryDN), |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | int msgID = MSGID_ROOTDSE_DELETE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(entryDN)); |
| | |
| | | public void replaceEntry(Entry entry, ModifyOperation modifyOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "replaceEntry", String.valueOf(entry), |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | int msgID = MSGID_ROOTDSE_MODIFY_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(entry.getDN()), |
| | |
| | | ModifyDNOperation modifyDNOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "renameEntry", String.valueOf(currentDN), |
| | | String.valueOf(entry), String.valueOf(modifyDNOperation)); |
| | | |
| | | int msgID = MSGID_ROOTDSE_MODIFY_DN_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(currentDN)); |
| | |
| | | public void search(SearchOperation searchOperation) |
| | | throws DirectoryException, CancelledOperationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "search", String.valueOf(searchOperation)); |
| | | |
| | | DN baseDN = searchOperation.getBaseDN(); |
| | | if (! baseDN.isNullDN()) |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "search", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | throw de; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "search", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ROOTDSE_UNEXPECTED_SEARCH_FAILURE; |
| | | String message = getMessage(msgID, searchOperation.getConnectionID(), |
| | |
| | | */ |
| | | public HashSet<String> getSupportedControls() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedControls"); |
| | | |
| | | return supportedControls; |
| | | } |
| | |
| | | */ |
| | | public HashSet<String> getSupportedFeatures() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedFeatures"); |
| | | |
| | | return supportedFeatures; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFExport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFExport"); |
| | | |
| | | // We will only export the DSE entry itself. |
| | | return true; |
| | |
| | | LDIFExportConfig exportConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "exportLDIF", String.valueOf(exportConfig)); |
| | | |
| | | |
| | | // Create the LDIF writer. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ROOTDSE_UNABLE_TO_CREATE_LDIF_WRITER; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ROOTDSE_UNABLE_TO_EXPORT_DSE; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFImport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFImport"); |
| | | |
| | | // This backend does not support LDIF imports. |
| | | return false; |
| | |
| | | LDIFImportConfig importConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "importLDIF", String.valueOf(importConfig)); |
| | | |
| | | |
| | | // This backend does not support LDIF imports. |
| | |
| | | */ |
| | | public boolean supportsBackup() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | | return false; |
| | |
| | | public boolean supportsBackup(BackupConfig backupConfig, |
| | | StringBuilder unsupportedReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createBackup", String.valueOf(backupConfig)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | String backupID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeBackup", |
| | | String.valueOf(backupDirectory), |
| | | String.valueOf(backupID)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | */ |
| | | public boolean supportsRestore() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsRestore"); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | RestoreConfig restoreConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "restoreBackup", |
| | | String.valueOf(restoreConfig)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | */ |
| | | public DN getConfigurableComponentEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurableComponentEntryDN"); |
| | | |
| | | return configEntryDN; |
| | | } |
| | |
| | | */ |
| | | public List<ConfigAttribute> getConfigurationAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurationAttributes"); |
| | | |
| | | LinkedList<ConfigAttribute> attrList = new LinkedList<ConfigAttribute>(); |
| | | |
| | |
| | | public boolean hasAcceptableConfiguration(ConfigEntry configEntry, |
| | | List<String> unacceptableReasons) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasAcceptableConfiguration", |
| | | String.valueOf(configEntry), "java.util.List<String>"); |
| | | |
| | | |
| | | boolean configIsAcceptable = true; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "hasAcceptableConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ROOTDSE_SUBORDINATE_BASE_EXCEPTION; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "hasAcceptableConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ROOTDSE_CANNOT_DETERMINE_ALL_USER_ATTRIBUTES; |
| | | String message = getMessage(msgID, ATTR_ROOTDSE_SHOW_ALL_ATTRIBUTES, |
| | |
| | | public ConfigChangeResult applyNewConfiguration(ConfigEntry configEntry, |
| | | boolean detailedResults) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyNewConfiguration", |
| | | String.valueOf(configEntry), |
| | | String.valueOf(detailedResults)); |
| | | |
| | | |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ROOTDSE_SUBORDINATE_BASE_EXCEPTION; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ROOTDSE_CANNOT_DETERMINE_ALL_USER_ATTRIBUTES; |
| | | String message = getMessage(msgID, ATTR_ROOTDSE_SHOW_ALL_ATTRIBUTES, |
| | |
| | | import org.opends.server.util.DynamicConstants; |
| | | import org.opends.server.util.LDIFException; |
| | | import org.opends.server.util.LDIFWriter; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | implements ConfigurableComponent, AlertGenerator |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | * The fully-qualified name of this class. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.SchemaBackend"; |
| | |
| | | { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | |
| | | // Perform all initialization in initializeBackend. |
| | |
| | | public void initializeBackend(ConfigEntry configEntry, DN[] baseDNs) |
| | | throws ConfigException, InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeBackend", |
| | | String.valueOf(configEntry)); |
| | | |
| | | |
| | | // Make sure that a configuration entry was provided. If not, then we will |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_SCHEMA_CANNOT_DETERMINE_SHOW_ALL; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN; |
| | | String message = getMessage(msgID, baseDNs[i].toString(), |
| | |
| | | */ |
| | | public void finalizeBackend() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeBackend"); |
| | | |
| | | DirectoryServer.deregisterConfigurableComponent(this); |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | private boolean isSchemaConfigAttribute(Attribute attribute) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isConfigAttribute", |
| | | String.valueOf(attribute)); |
| | | |
| | | AttributeType attrType = attribute.getAttributeType(); |
| | | if (attrType.hasName(ATTR_SCHEMA_ENTRY_DN.toLowerCase()) || |
| | |
| | | */ |
| | | public DN[] getBaseDNs() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBaseDNs"); |
| | | |
| | | return baseDNs; |
| | | } |
| | |
| | | */ |
| | | public long getEntryCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntryCount"); |
| | | |
| | | // There is always only a single entry in this backend. |
| | | return 1; |
| | |
| | | */ |
| | | public boolean isLocal() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isLocal"); |
| | | |
| | | // For the purposes of this method, this is a local backend. |
| | | return true; |
| | |
| | | public Entry getEntry(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntry", String.valueOf(entryDN)); |
| | | |
| | | |
| | | // If the requested entry was one of the schema entries, then create and |
| | |
| | | */ |
| | | public Entry getSchemaEntry(DN entryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSchemaEntry", String.valueOf(entryDN)); |
| | | |
| | | LinkedHashMap<AttributeType,List<Attribute>> userAttrs = |
| | | new LinkedHashMap<AttributeType,List<Attribute>>(); |
| | |
| | | public boolean entryExists(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryExists", String.valueOf(entryDN)); |
| | | |
| | | |
| | | // The specified DN must be one of the specified schema DNs. |
| | |
| | | public void addEntry(Entry entry, AddOperation addOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addEntry", String.valueOf(entry), |
| | | String.valueOf(addOperation)); |
| | | |
| | | int msgID = MSGID_SCHEMA_ADD_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(entry.getDN())); |
| | |
| | | public void deleteEntry(DN entryDN, DeleteOperation deleteOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deleteEntry", String.valueOf(entryDN), |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | int msgID = MSGID_SCHEMA_DELETE_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(entryDN)); |
| | |
| | | public void replaceEntry(Entry entry, ModifyOperation modifyOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "replaceEntry", String.valueOf(entry), |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | |
| | | // Make sure that the authenticated user has the necessary UPDATE_SCHEMA |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DCR; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DSR; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_MR_USE; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DCR; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DSR; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_MR_USE; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | throw de; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_WRITE_NEW_SCHEMA; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addAttributeType", |
| | | String.valueOf(attributeType), String.valueOf(schema), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // First, see if the specified attribute type already exists. We'll check |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeAttributeType", |
| | | String.valueOf(attributeType), String.valueOf(schema), |
| | | String.valueOf(modifications), |
| | | String.valueOf(currentPosition), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // See if the specified attribute type is actually defined in the server |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeAttributeType", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addObjectClass", String.valueOf(objectClass), |
| | | String.valueOf(schema), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // First, see if the specified objectclass already exists. We'll check the |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeObjectClass", |
| | | String.valueOf(objectClass), String.valueOf(schema), |
| | | String.valueOf(modifications), |
| | | String.valueOf(currentPosition), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // See if the specified objectclass is actually defined in the server |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeObjectClass", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addNameForm", String.valueOf(nameForm), |
| | | String.valueOf(schema), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // First, see if the specified name form already exists. We'll check the |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeNameForm", |
| | | String.valueOf(nameForm), String.valueOf(schema), |
| | | String.valueOf(modifications), |
| | | String.valueOf(currentPosition), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // See if the specified name form is actually defined in the server schema. |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeNameForm", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addDITContentRule", |
| | | String.valueOf(ditContentRule), String.valueOf(schema), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // First, see if the specified DIT content rule already exists. We'll check |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeDITContentRule", |
| | | String.valueOf(ditContentRule), String.valueOf(schema), |
| | | String.valueOf(modifications), |
| | | String.valueOf(currentPosition), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // See if the specified DIT content rule is actually defined in the server |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addDITStructureRule", |
| | | String.valueOf(ditStructureRule), String.valueOf(schema), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // First, see if the specified DIT structure rule already exists. We'll |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeDITStructureRule", |
| | | String.valueOf(ditStructureRule), String.valueOf(schema), |
| | | String.valueOf(modifications), |
| | | String.valueOf(currentPosition), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // See if the specified DIT structure rule is actually defined in the server |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeDITStructureRule", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_CANNOT_DECODE_DSR; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addMatchingRuleUse", |
| | | String.valueOf(matchingRuleUse), String.valueOf(schema), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // First, see if the specified matching rule use already exists. We'll |
| | |
| | | Set<String> modifiedSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeMatchingRuleUse", |
| | | String.valueOf(matchingRuleUse), String.valueOf(schema), |
| | | String.valueOf(modifications), |
| | | String.valueOf(currentPosition), |
| | | String.valueOf(modifiedSchemaFiles)); |
| | | |
| | | |
| | | // See if the specified DIT content rule is actually defined in the server |
| | |
| | | */ |
| | | private Entry createEmptySchemaEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createEmptySchemaEntry"); |
| | | |
| | | LinkedHashMap<ObjectClass,String> objectClasses = |
| | | new LinkedHashMap<ObjectClass,String>(); |
| | |
| | | private File writeTempSchemaFile(Schema schema, String schemaFile) |
| | | throws DirectoryException, IOException, LDIFException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "writeTempSchemaFile", String.valueOf(schema), |
| | | String.valueOf(schemaFile)); |
| | | |
| | | |
| | | // Start with an empty schema entry. |
| | |
| | | int depth) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addAttrTypeToSchemaFile", |
| | | String.valueOf(schema), String.valueOf(schemaFile), |
| | | String.valueOf(attributeType), String.valueOf(values), |
| | | String.valueOf(addedTypes), String.valueOf(depth)); |
| | | |
| | | if (depth > 20) |
| | | { |
| | |
| | | int depth) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addObjectClassToSchemaFile", |
| | | String.valueOf(schema), String.valueOf(schemaFile), |
| | | String.valueOf(objectClass), String.valueOf(values), |
| | | String.valueOf(addedClasses), String.valueOf(depth)); |
| | | |
| | | if (depth > 20) |
| | | { |
| | |
| | | HashSet<DITStructureRule> addedDSRs, int depth) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addDITStructureRuleToSchemaFile", |
| | | String.valueOf(schema), String.valueOf(schemaFile), |
| | | String.valueOf(ditStructureRule), String.valueOf(values), |
| | | String.valueOf(addedDSRs), String.valueOf(depth)); |
| | | |
| | | if (depth > 20) |
| | | { |
| | |
| | | private void installSchemaFiles(HashMap<String,File> tempSchemaFiles) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "installSchemaFiles", |
| | | String.valueOf(tempSchemaFiles)); |
| | | |
| | | |
| | | // Create lists that will hold the three types of files we'll be dealing |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "installSchemaFiles", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | boolean allCleaned = true; |
| | | for (File f : origFileList) |
| | |
| | | } |
| | | catch (Exception e2) |
| | | { |
| | | assert debugException(CLASS_NAME, "installSchemaFiles", e2); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e2); |
| | | } |
| | | |
| | | allCleaned = false; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "installSchemaFiles", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | for (File f : installedFileList) |
| | | { |
| | |
| | | } |
| | | catch (Exception e2) |
| | | { |
| | | assert debugException(CLASS_NAME, "installSchemaFiles", e2); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e2); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | catch (Exception e2) |
| | | { |
| | | assert debugException(CLASS_NAME, "installSchemaFiles", e2); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e2); |
| | | } |
| | | |
| | | allRestored = false; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "installSchemaFiles", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "installSchemaFiles", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | private void copyFile(File from, File to) |
| | | throws IOException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "copyFile", String.valueOf(from), |
| | | String.valueOf(to)); |
| | | |
| | | byte[] buffer = new byte[4096]; |
| | | FileInputStream inputStream = null; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "copyFile", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | private void cleanUpTempSchemaFiles(HashMap<String,File> tempSchemaFiles) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "cleanUpTempSchemaFiles", |
| | | String.valueOf(tempSchemaFiles)); |
| | | |
| | | if ((tempSchemaFiles == null) || tempSchemaFiles.isEmpty()) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "cleanUpTempSchemaFiles", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | ModifyDNOperation modifyDNOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "renameEntry", String.valueOf(currentDN), |
| | | String.valueOf(entry), String.valueOf(modifyDNOperation)); |
| | | |
| | | int msgID = MSGID_SCHEMA_MODIFY_DN_NOT_SUPPORTED; |
| | | String message = getMessage(msgID, String.valueOf(currentDN)); |
| | |
| | | public void search(SearchOperation searchOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "search", String.valueOf(searchOperation)); |
| | | |
| | | DN baseDN = searchOperation.getBaseDN(); |
| | | |
| | |
| | | */ |
| | | public HashSet<String> getSupportedControls() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedControls"); |
| | | |
| | | return supportedControls; |
| | | } |
| | |
| | | */ |
| | | public HashSet<String> getSupportedFeatures() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedFeatures"); |
| | | |
| | | return supportedFeatures; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFExport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFExport"); |
| | | |
| | | // We will only export the DSE entry itself. |
| | | return true; |
| | |
| | | LDIFExportConfig exportConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "exportLDIF", String.valueOf(exportConfig)); |
| | | |
| | | |
| | | // Create the LDIF writer. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_UNABLE_TO_CREATE_LDIF_WRITER; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_UNABLE_TO_EXPORT_BASE; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFImport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFImport"); |
| | | |
| | | // This backend does not support LDIF imports. |
| | | // FIXME -- Should we support them? |
| | |
| | | LDIFImportConfig importConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "importLDIF", String.valueOf(importConfig)); |
| | | |
| | | |
| | | // This backend does not support LDIF imports. |
| | |
| | | */ |
| | | public boolean supportsBackup() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | // We do support an online backup mechanism for the schema. |
| | | return true; |
| | |
| | | public boolean supportsBackup(BackupConfig backupConfig, |
| | | StringBuilder unsupportedReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | |
| | | // We should support online backup for the schema in any form. This |
| | |
| | | public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createBackup", |
| | | String.valueOf(configEntry), |
| | | String.valueOf(backupConfig)); |
| | | |
| | | |
| | | // Get the properties to use for the backup. We don't care whether or not |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_BACKUP_CANNOT_GET_MAC; |
| | | String message = getMessage(msgID, macAlgorithm, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_BACKUP_CANNOT_GET_DIGEST; |
| | | String message = getMessage(msgID, digestAlgorithm, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_BACKUP_CANNOT_CREATE_ARCHIVE_FILE; |
| | | String message = getMessage(msgID, String.valueOf(filename), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_BACKUP_CANNOT_GET_CIPHER; |
| | | String message = getMessage(msgID, cipherAlgorithm, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_SCHEMA_BACKUP_CANNOT_LIST_SCHEMA_FILES; |
| | | message = getMessage(msgID, schemaDirPath, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | try |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_SCHEMA_BACKUP_CANNOT_CLOSE_ZIP_STREAM; |
| | | message = getMessage(msgID, filename, backupDirectory.getPath(), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_SCHEMA_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR; |
| | | message = getMessage(msgID, backupDirectory.getDescriptorPath(), |
| | |
| | | String backupID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeBackup", |
| | | String.valueOf(backupDirectory), |
| | | String.valueOf(backupID)); |
| | | |
| | | |
| | | // This backend does not provide a backup/restore mechanism. |
| | |
| | | */ |
| | | public boolean supportsRestore() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsRestore"); |
| | | |
| | | |
| | | // We will provide a restore, but only for offline operations. |
| | |
| | | RestoreConfig restoreConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "restoreBackup", String.valueOf(configEntry), |
| | | String.valueOf(restoreConfig)); |
| | | |
| | | |
| | | // First, make sure that the requested backup exists. |
| | |
| | | */ |
| | | public DN getConfigurableComponentEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurableComponentEntryDN"); |
| | | |
| | | return configEntryDN; |
| | | } |
| | |
| | | */ |
| | | public List<ConfigAttribute> getConfigurationAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurationAttributes"); |
| | | |
| | | LinkedList<ConfigAttribute> attrList = new LinkedList<ConfigAttribute>(); |
| | | |
| | |
| | | public boolean hasAcceptableConfiguration(ConfigEntry configEntry, |
| | | List<String> unacceptableReasons) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasAcceptableConfiguration", |
| | | String.valueOf(configEntry), "java.util.List<String>"); |
| | | |
| | | |
| | | boolean configIsAcceptable = true; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_CANNOT_DETERMINE_BASE_DN; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_SCHEMA_CANNOT_DETERMINE_SHOW_ALL; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | public ConfigChangeResult applyNewConfiguration(ConfigEntry configEntry, |
| | | boolean detailedResults) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyNewConfiguration", |
| | | String.valueOf(configEntry), |
| | | String.valueOf(detailedResults)); |
| | | |
| | | |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_SCHEMA_CANNOT_DETERMINE_BASE_DN; |
| | | messages.add(getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_SCHEMA_CANNOT_DETERMINE_SHOW_ALL; |
| | | messages.add(getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_SCHEMA_CANNOT_DEREGISTER_BASE_DN; |
| | | messages.add(getMessage(msgID, String.valueOf(dn), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_SCHEMA_CANNOT_REGISTER_BASE_DN; |
| | | messages.add(getMessage(msgID, String.valueOf(dn), |
| | |
| | | */ |
| | | boolean showAllAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "showAllAttributes"); |
| | | |
| | | return showAllAttributes; |
| | | } |
| | |
| | | */ |
| | | void setShowAllAttributes(boolean showAllAttributes) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setShowAllAttributes", |
| | | String.valueOf(showAllAttributes)); |
| | | |
| | | this.showAllAttributes = showAllAttributes; |
| | | } |
| | |
| | | */ |
| | | public DN getComponentEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getComponentEntryDN"); |
| | | |
| | | return configEntryDN; |
| | | } |
| | |
| | | */ |
| | | public String getClassName() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getClassName"); |
| | | |
| | | return CLASS_NAME; |
| | | } |
| | |
| | | */ |
| | | public LinkedHashMap<String,String> getAlerts() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAlerts"); |
| | | |
| | | LinkedHashMap<String,String> alerts = new LinkedHashMap<String,String>(); |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | import org.opends.server.types.Modification; |
| | | import org.opends.server.types.SearchFilter; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | /** |
| | | * Class representing an attribute index. |
| | |
| | | */ |
| | | public class AttributeIndex |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.AttributeIndex"; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "evaluateEqualityFilter", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | return new EntryIDSet(); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "evaluateGreaterOrEqualFilter", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | return new EntryIDSet(); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "evaluateLessOrEqualFilter", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | return new EntryIDSet(); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "evaluateSubstringFilter", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | return new EntryIDSet(); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "evaluateBoundedRange", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | return new EntryIDSet(); |
| | | } |
| | | } |
| | |
| | | import static org.opends.server.loggers.Error.logError; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.config.ConfigConstants.ATTR_BACKEND_BASE_DN; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.util.ServerConstants.OID_SUBTREE_DELETE_CONTROL; |
| | | import static org.opends.server.util.ServerConstants.OID_PAGED_RESULTS_CONTROL; |
| | | import static org.opends.server.util.ServerConstants.OID_MANAGE_DSAIT_CONTROL; |
| | |
| | | */ |
| | | public class BackendImpl extends Backend implements ConfigurableComponent |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.BackendImpl"; |
| | | |
| | | /** |
| | | * The DN of the configuration entry for this backend. |
| | |
| | | */ |
| | | private void readerBegin() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "readerBegin"); |
| | | |
| | | threadTotalCount.getAndIncrement(); |
| | | } |
| | |
| | | */ |
| | | private void readerEnd() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "readerEnd"); |
| | | |
| | | threadTotalCount.getAndDecrement(); |
| | | } |
| | |
| | | */ |
| | | private void writerBegin() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "writerBegin"); |
| | | |
| | | threadTotalCount.getAndIncrement(); |
| | | threadWriteCount.getAndIncrement(); |
| | |
| | | */ |
| | | private void writerEnd() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "writerEnd"); |
| | | |
| | | threadWriteCount.getAndDecrement(); |
| | | threadTotalCount.getAndDecrement(); |
| | |
| | | */ |
| | | private void waitUntilQuiescent() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "waitUntilQuiescent"); |
| | | |
| | | while (threadTotalCount.get() > 0) |
| | | { |
| | |
| | | } |
| | | catch (InterruptedException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "waitUntilQuiescent", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public static String getContainerName(DN dn) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getContainerName"); |
| | | |
| | | String normStr = dn.toNormalizedString(); |
| | | StringBuilder builder = new StringBuilder(normStr.length()); |
| | |
| | | public void initializeBackend(ConfigEntry configEntry, DN[] baseDNs) |
| | | throws ConfigException, InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeBackend"); |
| | | |
| | | configDN = configEntry.getDN(); |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN; |
| | | int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN; |
| | | String message = getMessage(msgID, String.valueOf(dn), |
| | | String.valueOf(e)); |
| | | throw new InitializationException(msgID, message, e); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_OPEN_ENV_FAIL, |
| | | e.getMessage()); |
| | | throw new InitializationException(MSGID_JEB_OPEN_ENV_FAIL, message, e); |
| | |
| | | } |
| | | catch (DatabaseException databaseException) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", |
| | | databaseException); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, databaseException); |
| | | } |
| | | String message = getMessage(MSGID_JEB_OPEN_DATABASE_FAIL, |
| | | databaseException.getMessage()); |
| | | throw new InitializationException(MSGID_JEB_OPEN_DATABASE_FAIL, message, |
| | |
| | | } |
| | | catch(DatabaseException databaseException) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", |
| | | databaseException); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, databaseException); |
| | | } |
| | | String message = getMessage(MSGID_JEB_GET_ENTRY_COUNT_FAILED, |
| | | databaseException.getMessage()); |
| | | throw new InitializationException(MSGID_JEB_GET_ENTRY_COUNT_FAILED, |
| | |
| | | */ |
| | | public void finalizeBackend() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeBackend"); |
| | | |
| | | // Deregister our configurable components. |
| | | // TODO: configurableEnv is always null and will not be deregistered. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | int msgID = MSGID_JEB_DATABASE_EXCEPTION; |
| | | String message = getMessage(msgID, e.getMessage()); |
| | | logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR, |
| | |
| | | */ |
| | | public boolean isLocal() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isLocal"); |
| | | |
| | | return true; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFExport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFExport"); |
| | | |
| | | return true; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFImport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFImport"); |
| | | |
| | | return true; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsBackup() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | return true; |
| | | } |
| | |
| | | public boolean supportsBackup(BackupConfig backupConfig, |
| | | StringBuilder unsupportedReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | return true; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsRestore() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsRestore"); |
| | | |
| | | return true; |
| | | } |
| | |
| | | */ |
| | | public HashSet<String> getSupportedFeatures() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedFeatures"); |
| | | |
| | | return new HashSet<String>(); //NYI |
| | | } |
| | |
| | | */ |
| | | public HashSet<String> getSupportedControls() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedControls"); |
| | | |
| | | return supportedControls; |
| | | } |
| | |
| | | */ |
| | | public DN[] getBaseDNs() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBaseDNs"); |
| | | |
| | | return config.getBaseDNs(); |
| | | } |
| | |
| | | */ |
| | | public long getEntryCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntryCount"); |
| | | |
| | | if (rootContainer != null) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getEntryCount", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | public Entry getEntry(DN entryDN) throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntry"); |
| | | |
| | | readerBegin(); |
| | | try |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, |
| | | e.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (JebException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | public void addEntry(Entry entry, AddOperation addOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addEntry"); |
| | | |
| | | writerBegin(); |
| | | try |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "addEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, |
| | | e.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (JebException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "addEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | public void deleteEntry(DN entryDN, DeleteOperation deleteOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deleteEntry"); |
| | | |
| | | writerBegin(); |
| | | try |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "deleteEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, |
| | | e.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (JebException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "deleteEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | public void replaceEntry(Entry entry, ModifyOperation modifyOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "replaceEntry"); |
| | | |
| | | writerBegin(); |
| | | try |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, |
| | | e.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (JebException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "replaceEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | ModifyDNOperation modifyDNOperation) |
| | | throws DirectoryException, CancelledOperationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "renameEntry"); |
| | | |
| | | writerBegin(); |
| | | try |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "renameEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, e.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message, MSGID_JEB_DATABASE_EXCEPTION); |
| | | } |
| | | catch (JebException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "renameEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | public void search(SearchOperation searchOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "search"); |
| | | |
| | | readerBegin(); |
| | | try |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "search", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, e.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message, MSGID_JEB_DATABASE_EXCEPTION); |
| | |
| | | LDIFExportConfig exportConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "exportLDIF"); |
| | | |
| | | // Initialize a config object. |
| | | config = new Config(); |
| | |
| | | } |
| | | catch (ConfigException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", ioe); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ioe); |
| | | } |
| | | int msgID = MSGID_JEB_IO_ERROR; |
| | | String message = getMessage(msgID, ioe.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (JebException je) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", je); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, je); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | je.getMessage(), |
| | | je.getMessageID()); |
| | | } |
| | | catch (DatabaseException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, |
| | | de.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (LDIFException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | LDIFImportConfig importConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "importLDIF"); |
| | | |
| | | // Initialize a config object. |
| | | config = new Config(); |
| | |
| | | } |
| | | catch (ConfigException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "importLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | assert debugException(CLASS_NAME, "importLDIF", ioe); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ioe); |
| | | } |
| | | int msgID = MSGID_JEB_IO_ERROR; |
| | | String message = getMessage(msgID, ioe.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (JebException je) |
| | | { |
| | | assert debugException(CLASS_NAME, "importLDIF", je); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, je); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | je.getMessage(), |
| | | je.getMessageID()); |
| | | } |
| | | catch (DatabaseException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "importLDIF", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, |
| | | de.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | DN[] baseDNs, Entry statEntry) |
| | | throws InitializationException, ConfigException, DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "verifyBackend"); |
| | | |
| | | // Initialize a config object. |
| | | config = new Config(); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_DATABASE_EXCEPTION, |
| | | e.getMessage()); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (JebException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createBackup"); |
| | | |
| | | BackupManager backupManager = |
| | | new BackupManager(getBackendID()); |
| | |
| | | public void removeBackup(BackupDirectory backupDirectory, String backupID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeBackup"); |
| | | |
| | | BackupManager backupManager = |
| | | new BackupManager(getBackendID()); |
| | |
| | | RestoreConfig restoreConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "restoreBackup"); |
| | | |
| | | BackupManager backupManager = |
| | | new BackupManager(getBackendID()); |
| | |
| | | */ |
| | | public DN getConfigurableComponentEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurableComponentEntryDN"); |
| | | |
| | | return configDN; |
| | | } |
| | |
| | | */ |
| | | public List<ConfigAttribute> getConfigurationAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurationAttributes"); |
| | | |
| | | return configAttrs; |
| | | } |
| | |
| | | public boolean hasAcceptableConfiguration(ConfigEntry configEntry, |
| | | List<String> unacceptableReasons) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasAcceptableConfiguration"); |
| | | |
| | | DN[] baseDNs = null; |
| | | boolean acceptable = true; |
| | |
| | | public ConfigChangeResult applyNewConfiguration(ConfigEntry configEntry, |
| | | boolean detailedResults) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyNewConfiguration"); |
| | | |
| | | ConfigChangeResult ccr; |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | |
| | |
| | | */ |
| | | public RootContainer getRootContainer() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRootContainer"); |
| | | return rootContainer; |
| | | } |
| | | |
| | |
| | | import java.util.zip.ZipInputStream; |
| | | import java.util.zip.ZipOutputStream; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.loggers.Error.logError; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.server.messages.JebMessages.*; |
| | |
| | | */ |
| | | public static final String ZIPENTRY_EMPTY_PLACEHOLDER = "empty.placeholder"; |
| | | |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.BackupManager"; |
| | | |
| | | /** |
| | | * The backend ID. |
| | |
| | | public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createBackup", String.valueOf(backupConfig)); |
| | | |
| | | |
| | | // Parse our backend configuration. |
| | |
| | | } |
| | | catch (ConfigException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_GET_MAC; |
| | | String message = getMessage(msgID, macAlgorithm, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_GET_DIGEST; |
| | | String message = getMessage(msgID, digestAlgorithm, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_CREATE_ARCHIVE_FILE; |
| | | String message = getMessage(msgID, String.valueOf(archiveFilename), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_GET_CIPHER; |
| | | String message = getMessage(msgID, cipherAlgorithm, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_JEB_BACKUP_CANNOT_LIST_LOG_FILES; |
| | | message = getMessage(msgID, backendDir.getAbsolutePath(), |
| | |
| | | } |
| | | catch (IOException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | msgID = MSGID_JEB_BACKUP_CANNOT_WRITE_ARCHIVE_FILE; |
| | | message = getMessage(msgID, ZIPENTRY_EMPTY_PLACEHOLDER, |
| | | stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (IOException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | msgID = MSGID_JEB_BACKUP_CANNOT_WRITE_ARCHIVE_FILE; |
| | | message = getMessage(msgID, zipEntryName, |
| | | stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (FileNotFoundException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | // A log file has been deleted by the cleaner since we started. |
| | | deletedFiles = true; |
| | | } |
| | | catch (IOException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | msgID = MSGID_JEB_BACKUP_CANNOT_WRITE_ARCHIVE_FILE; |
| | | message = getMessage(msgID, logFile.getName(), |
| | | stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_JEB_BACKUP_CANNOT_LIST_LOG_FILES; |
| | | message = getMessage(msgID, backendDir.getAbsolutePath(), |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | try |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_JEB_BACKUP_CANNOT_CLOSE_ZIP_STREAM; |
| | | message = getMessage(msgID, archiveFilename, backupDir.getPath(), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_JEB_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR; |
| | | message = getMessage(msgID, backupDir.getDescriptorPath(), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | message, msgID, e); } |
| | | message, msgID, e); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | catch (ConfigException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | } |
| | | catch (IOException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "restoreBackup", e); |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_RESTORE; |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_RESTORE; |
| | | String message = getMessage(msgID, backupInfo.getBackupID(), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (IOException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "restoreBackup", e); |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_RESTORE; |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_RESTORE; |
| | | String message = getMessage(msgID, dependent.getBackupID(), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (IOException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "restoreBackup", e); |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_RESTORE; |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_RESTORE; |
| | | String message = getMessage(msgID, backupInfo.getBackupID(), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | |
| | | } |
| | | catch (ConfigException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), |
| | | e.getMessage(), |
| | | e.getMessageID()); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackup", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR; |
| | | String message = getMessage(msgID, backupDir.getDescriptorPath(), |
| | |
| | | Set<String> includeFiles) |
| | | throws DirectoryException,IOException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "restoreArchive", |
| | | String.valueOf(restoreConfig)); |
| | | |
| | | |
| | | BackupDirectory backupDir = restoreConfig.getBackupDirectory(); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "restoreArchive", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_GET_MAC; |
| | | String message = getMessage(msgID, macAlgorithm, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "restoreArchive", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_GET_DIGEST; |
| | | String message = getMessage(msgID, digestAlgorithm, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "restoreArchive", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_GET_CIPHER; |
| | | String message = getMessage(msgID, cipherAlgorithm, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "restoreArchive", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_JEB_BACKUP_CANNOT_GET_CIPHER; |
| | | String message = getMessage(msgID, cipherAlgorithm, |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.io.File; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | /** |
| | | * This class represents the configuration of a JE backend. |
| | | */ |
| | | public class Config |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.Config"; |
| | | |
| | | /** |
| | | * The name of the object class which configures |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeConfig", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | ConcurrentHashMap<DN, ConfigEntry> children = configEntry.getChildren(); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | import java.util.Set; |
| | | |
| | | import static org.opends.server.util.ServerConstants.ATTR_REFERRAL_URL; |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.JebMessages. |
| | | MSGID_JEB_REFERRAL_RESULT_MESSAGE; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | |
| | | */ |
| | | public class DN2URI |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.EntryContainer"; |
| | | |
| | | /** |
| | | * The standard attribute type that is used to specify the set of referral |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "throwReferralException", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | // Return the non-LDAP URI as is. |
| | | } |
| | | |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "targetEntryReferrals", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | catch (UnsupportedEncodingException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "targetEntryReferrals", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "returnSearchReferences", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | // Return the non-LDAP URI as is. |
| | | } |
| | | |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "returnSearchReferences", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | catch (UnsupportedEncodingException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "returnSearchReferences", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | return true; |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | | import com.sleepycat.je.Database; |
| | | import com.sleepycat.je.DatabaseException; |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import java.util.Comparator; |
| | | |
| | |
| | | */ |
| | | public class DbPreloadComparator implements Comparator<Database> |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.EntryContainer"; |
| | | |
| | | /** |
| | | * Calculate the relative priority of a database for preloading. |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "TODO", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | return 3; |
| | | } |
| | | } |
| | |
| | | import org.opends.server.core.ModifyDNOperation; |
| | | import org.opends.server.core.Operation; |
| | | import org.opends.server.core.SearchOperation; |
| | | import org.opends.server.loggers.Debug; |
| | | import org.opends.server.protocols.asn1.ASN1OctetString; |
| | | import org.opends.server.protocols.ldap.LDAPException; |
| | | import org.opends.server.controls.PagedResultsControl; |
| | |
| | | import org.opends.server.types.AttributeValue; |
| | | import org.opends.server.types.CancelledOperationException; |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.DebugLogCategory; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import org.opends.server.types.DirectoryException; |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.Entry; |
| | |
| | | |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.server.messages.JebMessages.*; |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.types.DebugLogSeverity.VERBOSE; |
| | | import static org.opends.server.types.DebugLogCategory.DATABASE_ACCESS; |
| | | import static org.opends.server.types.DebugLogCategory.DATABASE_WRITE; |
| | | import static org.opends.server.types.DebugLogCategory.DATABASE_READ; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugJEAccess; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugVerbose; |
| | | import static org.opends.server.util.ServerConstants.OID_SUBTREE_DELETE_CONTROL; |
| | | import static org.opends.server.util.ServerConstants.OID_PAGED_RESULTS_CONTROL; |
| | | |
| | |
| | | */ |
| | | public class EntryContainer |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.EntryContainer"; |
| | | |
| | | /** |
| | | * The name of the entry database. |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "open", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | close(); |
| | | throw e; |
| | | } |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "open", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | close(); |
| | | throw e; |
| | | } |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "openReadOnly", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | close(); |
| | | throw e; |
| | | } |
| | |
| | | } |
| | | catch (LDAPException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "search", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | throw new DirectoryException(ResultCode.PROTOCOL_ERROR, |
| | | e.getMessage(), e.getMessageID(), e); |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "search", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | // The base entry must exist for a successful result. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "search", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | // The base entry must exist for a successful result. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "searchNotIndexed", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | int msgID = MSGID_JEB_INVALID_PAGED_RESULTS_COOKIE; |
| | | String str = StaticUtils.bytesToHex(pageRequest.getCookie().value()); |
| | | String msg = getMessage(msgID, str); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "searchNotIndexed", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | catch (JebException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "searchNotIndexed", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | if (pageRequest != null) |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "searchIndexed", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | int msgID = MSGID_JEB_INVALID_PAGED_RESULTS_COOKIE; |
| | | String str = StaticUtils.bytesToHex(pageRequest.getCookie().value()); |
| | | String msg = getMessage(msgID, str); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "searchIndexed", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | continue; |
| | | } |
| | | } |
| | |
| | | { |
| | | throw deadlockException; |
| | | } |
| | | assert debugException(CLASS_NAME, "invokeTransactedOperation", |
| | | deadlockException); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, deadlockException); |
| | | } |
| | | } |
| | | catch (DatabaseException databaseException) |
| | | { |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "entryExists", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | return id != null; |
| | |
| | | } |
| | | catch (DatabaseNotFoundException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeContainer", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | try |
| | | { |
| | |
| | | } |
| | | catch (DatabaseNotFoundException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeContainer", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | try |
| | | { |
| | |
| | | } |
| | | catch (DatabaseNotFoundException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeContainer", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | try |
| | | { |
| | |
| | | } |
| | | catch (DatabaseNotFoundException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeContainer", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | for (AttributeIndex index : attrIndexMap.values()) |
| | | { |
| | |
| | | } |
| | | catch (DatabaseNotFoundException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeContainer", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "listDatabases", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | try |
| | | { |
| | | database = env.openDatabase(txn, fullName, dbConfig); |
| | | assert Debug.debugMessage(DATABASE_ACCESS, VERBOSE, CLASS_NAME, |
| | | "openDatabase", |
| | | "open db=" + database.getDatabaseName() + |
| | | " txnid=" + txn.getId()); |
| | | if (debugEnabled()) |
| | | { |
| | | debugVerbose("open db=%s txnid=%d", database.getDatabaseName(), |
| | | txn.getId()); |
| | | } |
| | | transactionCommit(txn); |
| | | } |
| | | catch (DatabaseException e) |
| | |
| | | else |
| | | { |
| | | database = env.openDatabase(null, fullName, dbConfig); |
| | | assert Debug.debugMessage(DATABASE_ACCESS, VERBOSE, CLASS_NAME, |
| | | "openDatabase", |
| | | "open db=" + database.getDatabaseName() + |
| | | " txnid=none"); |
| | | if (debugEnabled()) |
| | | { |
| | | debugVerbose("open db=%s txnid=none", database.getDatabaseName()); |
| | | } |
| | | } |
| | | |
| | | // Insert into the list of database handles. |
| | |
| | | Transaction parentTxn = null; |
| | | TransactionConfig txnConfig = null; |
| | | Transaction txn = env.beginTransaction(parentTxn, txnConfig); |
| | | assert Debug.debugMessage(DATABASE_ACCESS, VERBOSE, CLASS_NAME, |
| | | "beginTransaction", "begin txnid=" + txn.getId()); |
| | | if (debugEnabled()) |
| | | { |
| | | debugVerbose("beginTransaction", "begin txnid=" + txn.getId()); |
| | | } |
| | | return txn; |
| | | } |
| | | |
| | |
| | | if (txn != null) |
| | | { |
| | | txn.commit(); |
| | | assert Debug.debugMessage(DATABASE_ACCESS, VERBOSE, CLASS_NAME, |
| | | "transactionCommit", "commit txnid=" + |
| | | txn.getId()); |
| | | if (debugEnabled()) |
| | | { |
| | | debugVerbose("commit txnid=%d", txn.getId()); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | if (txn != null) |
| | | { |
| | | txn.abort(); |
| | | assert Debug.debugMessage(DATABASE_ACCESS, VERBOSE, CLASS_NAME, |
| | | "transactionAbort", "abort txnid=" + |
| | | txn.getId()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Debug log a read or write access to the database. |
| | | * @param operation The operation label: "read", "put", "insert". |
| | | * @param category The log category for raw data value logging |
| | | * @param status The JE return status code of the operation. |
| | | * @param database The JE database handle operated on. |
| | | * @param txn The JE transaction handle used in the operation. |
| | | * @param key The database key operated on. |
| | | * @param data The database value read or written. |
| | | * @return true so that the method can be used in an assertion |
| | | * @throws DatabaseException If an error occurs while retrieving information |
| | | * about the JE objects provided to the method. |
| | | */ |
| | | private static boolean debugAccess(String operation, |
| | | DebugLogCategory category, |
| | | OperationStatus status, |
| | | Database database, |
| | | Transaction txn, |
| | | DatabaseEntry key, DatabaseEntry data) |
| | | throws DatabaseException |
| | | { |
| | | // Build the string that is common to category DATABASE_ACCESS and |
| | | // DATABASE_READ/DATABASE_WRITE |
| | | StringBuilder builder = new StringBuilder(); |
| | | builder.append(operation); |
| | | if(status != null) |
| | | { |
| | | if (status == OperationStatus.SUCCESS) |
| | | if (debugEnabled()) |
| | | { |
| | | builder.append(" (ok)"); |
| | | } |
| | | else |
| | | { |
| | | builder.append(" ("); |
| | | builder.append(status.toString()); |
| | | builder.append(")"); |
| | | debugVerbose("abort txnid=%d", txn.getId()); |
| | | } |
| | | } |
| | | builder.append(" db="); |
| | | builder.append(database.getDatabaseName()); |
| | | if (txn != null) |
| | | { |
| | | builder.append(" txnid="); |
| | | builder.append(txn.getId()); |
| | | } |
| | | else |
| | | { |
| | | builder.append(" txnid=none"); |
| | | } |
| | | Debug.debugMessage(DATABASE_ACCESS, VERBOSE, CLASS_NAME, |
| | | "debugAccess", builder.toString()); |
| | | |
| | | // If the operation was successful we log the same common information |
| | | // plus the key and data under category DATABASE_READ or DATABASE_WRITE |
| | | if (status == OperationStatus.SUCCESS) |
| | | { |
| | | builder.append(" key:"); |
| | | builder.append(ServerConstants.EOL); |
| | | StaticUtils.byteArrayToHexPlusAscii(builder, key.getData(), 0); |
| | | if (data != null) |
| | | { |
| | | builder.append("data(len="); |
| | | builder.append(data.getSize()); |
| | | builder.append("):"); |
| | | builder.append(ServerConstants.EOL); |
| | | StaticUtils.byteArrayToHexPlusAscii(builder, data.getData(), 0); |
| | | } |
| | | Debug.debugMessage(category, VERBOSE, CLASS_NAME, |
| | | "debugAccess", builder.toString()); |
| | | /* |
| | | if (category == DATABASE_WRITE) |
| | | { |
| | | System.out.println(builder.toString()); |
| | | } |
| | | */ |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | |
| | | throws DatabaseException |
| | | { |
| | | OperationStatus status = database.putNoOverwrite(txn, key, data); |
| | | assert debugAccess("insert", DATABASE_WRITE, |
| | | status, database, txn, key, data); |
| | | if (debugEnabled()) |
| | | { |
| | | debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key, data); |
| | | } |
| | | return status; |
| | | } |
| | | |
| | |
| | | throws DatabaseException |
| | | { |
| | | OperationStatus status = cursor.putNoOverwrite(key, data); |
| | | assert debugAccess("cursorInsert", DATABASE_WRITE, |
| | | status, cursor.getDatabase(), null, key, data); |
| | | if (debugEnabled()) |
| | | { |
| | | debugJEAccess(DebugLogLevel.VERBOSE, status, |
| | | cursor.getDatabase(), null, key, data); |
| | | } |
| | | return status; |
| | | } |
| | | |
| | |
| | | throws DatabaseException |
| | | { |
| | | OperationStatus status = database.put(txn, key, data); |
| | | assert debugAccess("put", DATABASE_WRITE, |
| | | status, database, txn, key, data); |
| | | if (debugEnabled()) |
| | | { |
| | | debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key, data); |
| | | } |
| | | return status; |
| | | } |
| | | |
| | |
| | | throws DatabaseException |
| | | { |
| | | OperationStatus status = cursor.put(key, data); |
| | | assert debugAccess("cursorPut", DATABASE_WRITE, |
| | | status, cursor.getDatabase(), null, key, data); |
| | | if (debugEnabled()) |
| | | { |
| | | debugJEAccess(DebugLogLevel.VERBOSE, status, |
| | | cursor.getDatabase(), null, key, data); |
| | | } |
| | | return status; |
| | | } |
| | | |
| | |
| | | throws DatabaseException |
| | | { |
| | | OperationStatus status = database.get(txn, key, data, lockMode); |
| | | assert debugAccess("read", DATABASE_READ, |
| | | status, database, txn, key, data); |
| | | if (debugEnabled()) |
| | | { |
| | | debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key, data); |
| | | } |
| | | return status; |
| | | } |
| | | |
| | |
| | | throws DatabaseException |
| | | { |
| | | OperationStatus status = cursor.getSearchKey(key, data, lockMode); |
| | | assert debugAccess("cursorRead", DATABASE_READ, |
| | | status, cursor.getDatabase(), null, key, data); |
| | | if (debugEnabled()) |
| | | { |
| | | debugJEAccess(DebugLogLevel.VERBOSE, status, |
| | | cursor.getDatabase(), null, key, data); |
| | | } |
| | | return status; |
| | | } |
| | | |
| | |
| | | throws DatabaseException |
| | | { |
| | | OperationStatus status = database.delete(txn, key); |
| | | assert debugAccess("delete", DATABASE_WRITE, |
| | | status, database, txn, key, null); |
| | | if (debugEnabled()) |
| | | { |
| | | debugJEAccess(DebugLogLevel.VERBOSE, status, database, txn, key, null); |
| | | } |
| | | return status; |
| | | } |
| | | |
| | |
| | | public static long count(Database database) throws DatabaseException |
| | | { |
| | | long count = database.count(); |
| | | assert debugAccess("count", DATABASE_READ, null, database, |
| | | null, null, null); |
| | | if (debugEnabled()) |
| | | { |
| | | debugJEAccess(DebugLogLevel.VERBOSE, OperationStatus.SUCCESS, |
| | | database, null, null, null); |
| | | } |
| | | return count; |
| | | } |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | */ |
| | | public class EntryIDSet implements Iterable<EntryID> |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.EntryIDSet"; |
| | | |
| | | |
| | | /** |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.server.messages.JebMessages.MSGID_JEB_CREATE_FAIL; |
| | | import static org.opends.server.messages.JebMessages. |
| | |
| | | */ |
| | | public class EnvManager |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.EnvManager"; |
| | | |
| | | /** |
| | | * A filename filter to match all kinds of JE files. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createBackendDirectory", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_CREATE_FAIL, e.getMessage()); |
| | | throw new JebException(MSGID_JEB_CREATE_FAIL, message, e); |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeFiles", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | String message = getMessage(MSGID_JEB_REMOVE_FAIL, e.getMessage()); |
| | | throw new JebException(MSGID_JEB_REMOVE_FAIL, message, e); |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import com.sleepycat.je.Transaction; |
| | | import com.sleepycat.je.DatabaseException; |
| | |
| | | */ |
| | | public class EqualityIndexer extends Indexer |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.EqualityIndexer"; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "indexAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | import java.io.IOException; |
| | | import java.util.*; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.server.loggers.Error.logError; |
| | | import static org.opends.server.messages.JebMessages.*; |
| | |
| | | */ |
| | | public class ExportJob |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.ExportJob"; |
| | | |
| | | /** |
| | | * The requested LDIF export configuration. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportContainer", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | skippedCount++; |
| | | System.err.printf("Malformed id2entry ID %s.%n", |
| | | StaticUtils.bytesToHex(key.getData())); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "exportContainer", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | skippedCount++; |
| | | System.err.printf("Malformed id2entry record for ID %d:%n%s%n", |
| | | entryID.longValue(), |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 - 2007 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 - 2007 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | import com.sleepycat.je.Transaction; |
| | | |
| | | import org.opends.server.api.Backend; |
| | | import org.opends.server.loggers.Debug; |
| | | import org.opends.server.loggers.debug.DebugLogger; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import org.opends.server.messages.JebMessages; |
| | | import org.opends.server.types.AttributeType; |
| | | import org.opends.server.types.DebugLogCategory; |
| | | import org.opends.server.types.DebugLogSeverity; |
| | | import org.opends.server.types.DirectoryException; |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.Entry; |
| | |
| | | import java.util.TimerTask; |
| | | import java.util.concurrent.LinkedBlockingQueue; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.JebMessages. |
| | | MSGID_JEB_IMPORT_ENTRY_EXISTS; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | |
| | | */ |
| | | public class ImportJob implements Thread.UncaughtExceptionHandler |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.ImportJob"; |
| | | |
| | | /** |
| | | * The backend instance we are importing into. |
| | |
| | | logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.NOTICE, |
| | | message, msgID); |
| | | |
| | | Debug.debugMessage(DebugLogCategory.BACKEND, DebugLogSeverity.INFO, |
| | | CLASS_NAME, "importLDIF", |
| | | rootContainer.getEnvironmentConfig().toString()); |
| | | DebugLogger.debugInfo( |
| | | rootContainer.getEnvironmentConfig().toString()); |
| | | |
| | | |
| | | rootContainer.openEntryContainers(config.getBaseDNs()); |
| | |
| | | } |
| | | catch (InterruptedException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "merge", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (LDIFException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | // Update stats. |
| | | rejectedCount++; |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processLDIF", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | // Update stats. |
| | | rejectedCount++; |
| | | } |
| | |
| | | } |
| | | catch (InterruptedException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | else |
| | |
| | | } |
| | | catch (InterruptedException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processEntry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import org.opends.server.api.DirectoryThread; |
| | | import org.opends.server.types.AttributeType; |
| | | import org.opends.server.types.Entry; |
| | |
| | | */ |
| | | public class ImportThread extends DirectoryThread |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.ImportThread"; |
| | | |
| | | /** |
| | | * The import context of this thread. |
| | |
| | | } |
| | | catch (InterruptedException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "run", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | continue; |
| | | } |
| | | |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "run", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | catch (IOException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "run", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.JebMessages. |
| | | MSGID_JEB_DATABASE_EXCEPTION; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | |
| | | */ |
| | | public class Index |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.Index"; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "readKey", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | return new EntryIDSet(); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "readRange", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | return new EntryIDSet(); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "openCursor", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | int msgID = MSGID_JEB_DATABASE_EXCEPTION; |
| | | String message = getMessage(msgID, e.getMessage()); |
| | | throw new JebException(msgID, message, e); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | */ |
| | | public class IndexConfig |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.IndexConfig"; |
| | | |
| | | /** |
| | | * The attribute type of the indexed attribute. |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | import java.util.TreeMap; |
| | | import java.util.WeakHashMap; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.server.loggers.Error.logError; |
| | | import static org.opends.server.messages.JebMessages.*; |
| | |
| | | */ |
| | | public class IndexMergeThread extends DirectoryThread |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.IndexMergeThread"; |
| | | |
| | | /** |
| | | * The buffer size to use when reading data from disk. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "run", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "run", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | e.printStackTrace(); |
| | | throw e; |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugConstructor; |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | |
| | | /** |
| | | * This class defines an exception that may be thrown if a problem occurs in the |
| | | * JE backend database. |
| | |
| | | public class JebException |
| | | extends Exception |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backend.je.JebException"; |
| | | |
| | | |
| | | /** |
| | |
| | | { |
| | | super(message); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(message)); |
| | | |
| | | this.messageID = messageID; |
| | | } |
| | |
| | | { |
| | | super(message, cause); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(message), |
| | | String.valueOf(cause)); |
| | | |
| | | this.messageID = messageID; |
| | | } |
| | |
| | | */ |
| | | public int getMessageID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMessageID"); |
| | | |
| | | return messageID; |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | |
| | | import org.opends.server.core.DirectoryServer; |
| | | import org.opends.server.protocols.asn1.ASN1Element; |
| | | import org.opends.server.protocols.asn1.ASN1Exception; |
| | |
| | | */ |
| | | public class JebFormat |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.je.JebFormat"; |
| | | |
| | | /** |
| | | * The format version used by this class to encode and decode a DatabaseEntry. |
| | |
| | | static public byte[] decodeDatabaseEntry(byte[] bytes) |
| | | throws ASN1Exception,DataFormatException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeDatabaseEntry", String.valueOf(bytes)); |
| | | |
| | | // FIXME: This array copy could be very costly on performance. We need to |
| | | // FIXME: find a faster way to implement this versioning feature. |
| | |
| | | static public Entry entryFromDatabase(byte[] bytes) |
| | | throws DirectoryException,ASN1Exception,LDAPException,DataFormatException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryFromDatabase", String.valueOf(bytes)); |
| | | |
| | | byte[] uncompressedBytes = decodeDatabaseEntry(bytes); |
| | | return decodeDirectoryServerEntry(uncompressedBytes); |
| | |
| | | static private Entry decodeDirectoryServerEntry(byte[] bytes) |
| | | throws DirectoryException,ASN1Exception,LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeDirectoryServerEntry", |
| | | String.valueOf(bytes)); |
| | | |
| | | HashMap<ObjectClass, String> objectClasses; |
| | | HashMap<AttributeType, List<Attribute>> userAttributes = |
| | |
| | | */ |
| | | static public byte[] encodeDatabaseEntry(byte[] bytes, DataConfig dataConfig) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeDatabaseEntry", |
| | | String.valueOf(dataConfig)); |
| | | |
| | | int uncompressedSize = 0; |
| | | |
| | |
| | | */ |
| | | static public byte[] entryToDatabase(Entry entry, DataConfig dataConfig) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryToDatabase", |
| | | String.valueOf(dataConfig)); |
| | | |
| | | byte[] uncompressedBytes = encodeDirectoryServerEntry(entry); |
| | | return encodeDatabaseEntry(uncompressedBytes, dataConfig); |
| | |
| | | */ |
| | | static public byte[] entryToDatabase(Entry entry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryToDatabase"); |
| | | |
| | | return entryToDatabase(entry, new DataConfig()); |
| | | } |
| | |
| | | */ |
| | | static private byte[] encodeDirectoryServerEntry(Entry entry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeDirectoryServerEntry"); |
| | | |
| | | // Encode the DN (LDAPDN). |
| | | ArrayList<ASN1Element> elements = new ArrayList<ASN1Element>(4); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import org.opends.server.api.OrderingMatchingRule; |
| | | import org.opends.server.protocols.asn1.ASN1OctetString; |
| | |
| | | */ |
| | | public class OrderingIndexer extends Indexer |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.OrderingIndexer"; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "indexAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | */ |
| | | public class PresenceIndexer extends Indexer |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.PresenceIndexer"; |
| | | |
| | | |
| | | /** |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | import java.io.FilenameFilter; |
| | | |
| | | import org.opends.server.monitors.DatabaseEnvironmentMonitor; |
| | | import org.opends.server.types.*; |
| | | import org.opends.server.loggers.Debug; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.ErrorLogCategory; |
| | | import org.opends.server.types.ErrorLogSeverity; |
| | | import org.opends.server.types.FilePermission; |
| | | import static org.opends.server.loggers.Error.logError; |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugInfo; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.server.messages.JebMessages. |
| | | MSGID_JEB_CACHE_SIZE_AFTER_PRELOAD; |
| | |
| | | */ |
| | | public class RootContainer |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.RootContainer"; |
| | | |
| | | /** |
| | | * The JE database environment. |
| | |
| | | env = new Environment(backendDirectory, |
| | | envConfig); |
| | | |
| | | Debug.debugMessage(DebugLogCategory.BACKEND, DebugLogSeverity.INFO, |
| | | CLASS_NAME, "initializeBackend", |
| | | env.getConfig().toString()); |
| | | if (debugEnabled()) |
| | | { |
| | | debugInfo(env.getConfig().toString()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | public void preload() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "preload"); |
| | | |
| | | long timeLimit = config.getPreloadTimeLimit(); |
| | | |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "preload", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | private void cleanDatabase() |
| | | throws DatabaseException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "cleanDatabase"); |
| | | |
| | | int msgID; |
| | | String message; |
| | |
| | | |
| | | config = newConfig; |
| | | |
| | | Debug.debugMessage(DebugLogCategory.BACKEND, DebugLogSeverity.INFO, |
| | | CLASS_NAME, "applyNewConfiguration", |
| | | env.getConfig().toString()); |
| | | if (debugEnabled()) |
| | | { |
| | | debugInfo(env.getConfig().toString()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import com.sleepycat.je.Transaction; |
| | | import org.opends.server.protocols.asn1.ASN1OctetString; |
| | | import org.opends.server.types.Attribute; |
| | |
| | | */ |
| | | public class SubstringIndexer extends Indexer |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.SubstringIndexer"; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "indexAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 - 2007 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.jeb; |
| | | |
| | |
| | | import org.opends.server.util.StaticUtils; |
| | | import org.opends.server.util.ServerConstants; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugException; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.server.messages.JebMessages.*; |
| | | |
| | |
| | | */ |
| | | public class VerifyJob |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.VerifyJob"; |
| | | |
| | | /** |
| | | * The verify configuration. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Entry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.printf("Malformed id2entry ID %s.%n", |
| | | StaticUtils.bytesToHex(key.getData())); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Entry", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.printf("Malformed id2entry record for ID %d:%n%s%n", |
| | | entryID.longValue(), |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateDN2ID", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.printf("File dn2id has malformed key %s.%n", |
| | | StaticUtils.bytesToHex(key.getData())); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateDN2ID", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.printf("File dn2id has malformed ID for DN <%s>:%n%s%n", |
| | | dn.toNormalizedString(), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateDN2ID", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.println(e.getMessage()); |
| | | continue; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Children", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.printf("File id2children has malformed ID %s%n", |
| | | StaticUtils.bytesToHex(key.getData())); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Children", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.printf("File id2children has malformed ID list " + |
| | | "for ID %s:%n%s%n", |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Children", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.println(e.getMessage()); |
| | | continue; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Children", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.println(e.getMessage()); |
| | | continue; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Subtree", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.printf("File id2subtree has malformed ID %s%n", |
| | | StaticUtils.bytesToHex(key.getData())); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Subtree", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.printf("File id2subtree has malformed ID list " + |
| | | "for ID %s:%n%s%n", |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Subtree", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.println(e.getMessage()); |
| | | continue; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateID2Subtree", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.println(e.getMessage()); |
| | | continue; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateAttrIndex", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.printf("Malformed ID list: %s%n%s", |
| | | StaticUtils.bytesToHex(data.getData()), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateAttrIndex", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | errorCount++; |
| | | System.err.println(e.getMessage()); |
| | | continue; |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "iterateAttrIndex", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyDN2ID", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("File dn2id has error reading key %s: %s.%n", |
| | | dn.toNormalizedString(), |
| | | e.getMessage()); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyDN2ID", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("File dn2id has error reading key %s: %s.%n", |
| | | parentDN.toNormalizedString(), |
| | | e.getMessage()); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyID2Children", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("File dn2id has error reading key %s: %s.", |
| | | parentDN.toNormalizedString(), |
| | | e.getMessage()); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyID2Children", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("File id2children has error reading key %d: %s.", |
| | | parentID.longValue(), e.getMessage()); |
| | | errorCount++; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyID2Children", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("File dn2id has error reading key %s: %s.%n", |
| | | dn.toNormalizedString(), |
| | | e.getMessage()); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyID2Subtree", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("File id2subtree has error reading key %d: %s.%n", |
| | | id.longValue(), e.getMessage()); |
| | | errorCount++; |
| | |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyAttrIndex", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("Error normalizing values of attribute %s in " + |
| | | "entry <%s>: %s.%n", |
| | | attrIndex.getAttributeType().toString(), |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("Error reading database: %s%n%s", |
| | | e.getMessage(), |
| | | keyDump(presenceIndex, presenceKey.getData())); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("Error reading database: %s%n%s", |
| | | e.getMessage(), |
| | | keyDump(equalityIndex, normalizedBytes)); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("Error reading database: %s%n%s", |
| | | e.getMessage(), |
| | | keyDump(substringIndex, key.getData())); |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "verifyAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | System.err.printf("Error reading database: %s%n%s", |
| | | e.getMessage(), |
| | | keyDump(orderingIndex, normalizedBytes)); |
| | |
| | | */ |
| | | class ProgressTask extends TimerTask |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.jeb.VerifyJob.ProgressTask"; |
| | | |
| | | /** |
| | | * The number of records that had been processed at the time of the |
| | |
| | | } |
| | | catch (DatabaseException e) |
| | | { |
| | | debugException(CLASS_NAME, "run", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.task; |
| | | |
| | |
| | | import org.opends.server.types.ResultCode; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | |
| | | */ |
| | | public class RecurringTask |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.task.RecurringTask"; |
| | | |
| | | |
| | | |
| | |
| | | public RecurringTask(TaskScheduler taskScheduler, Entry recurringTaskEntry) |
| | | throws DirectoryException |
| | | { |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(taskScheduler), |
| | | String.valueOf(recurringTaskEntry)); |
| | | |
| | | this.taskScheduler = taskScheduler; |
| | | this.recurringTaskEntry = recurringTaskEntry; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "<init>", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_RECURRINGTASK_CANNOT_LOAD_CLASS; |
| | | String message = getMessage(msgID, String.valueOf(taskClassName), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "<init>", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_RECURRINGTASK_CANNOT_INSTANTIATE_CLASS_AS_TASK; |
| | | String message = getMessage(msgID, String.valueOf(taskClassName), |
| | |
| | | } |
| | | catch (InitializationException ie) |
| | | { |
| | | assert debugException(CLASS_NAME, "<init>", ie); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ie); |
| | | } |
| | | |
| | | int msgID = MSGID_RECURRINGTASK_CANNOT_INITIALIZE_INTERNAL; |
| | | String message = getMessage(msgID, String.valueOf(taskClassName), |
| | |
| | | */ |
| | | public String getRecurringTaskID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRecurringTaskID"); |
| | | |
| | | return recurringTaskID; |
| | | } |
| | |
| | | */ |
| | | public DN getRecurringTaskEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRecurringTaskEntryDN"); |
| | | |
| | | return recurringTaskEntryDN; |
| | | } |
| | |
| | | */ |
| | | public Entry getRecurringTaskEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRecurringTaskEntry"); |
| | | |
| | | return recurringTaskEntry; |
| | | } |
| | |
| | | */ |
| | | public String getTaskClassName() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTaskClassName"); |
| | | |
| | | return taskClassName; |
| | | } |
| | |
| | | */ |
| | | public Task scheduleNextIteration() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "scheduleNextIteration"); |
| | | |
| | | // NYI |
| | | return null; |
| | |
| | | import org.opends.server.util.TimeThread; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import org.opends.server.messages.MessageHandler; |
| | |
| | | public abstract class Task |
| | | implements Comparable<Task> |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.task.Task"; |
| | | |
| | | |
| | | |
| | |
| | | Entry taskEntry) |
| | | throws InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeTaskInternal", |
| | | String.valueOf(taskEntry)); |
| | | |
| | | this.taskScheduler = taskScheduler; |
| | | this.taskEntry = taskEntry; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeTaskInternal", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASK_CANNOT_PARSE_SCHEDULED_START_TIME; |
| | | String message = getMessage(msgID, timeString, taskDN); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeTaskInternal", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASK_CANNOT_PARSE_ACTUAL_START_TIME; |
| | | String message = getMessage(msgID, timeString, taskDN); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeTaskInternal", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASK_CANNOT_PARSE_COMPLETION_TIME; |
| | | String message = getMessage(msgID, timeString, taskDN); |
| | |
| | | private String getAttributeValue(String attributeName, boolean isRequired) |
| | | throws InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAttributeValue", |
| | | String.valueOf(attributeName), |
| | | String.valueOf(isRequired)); |
| | | |
| | | List<Attribute> attrList = |
| | | taskEntry.getAttribute(attributeName.toLowerCase()); |
| | |
| | | private LinkedList<String> getAttributeValues(String attributeName) |
| | | throws InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAttributeValues", |
| | | String.valueOf(attributeName)); |
| | | |
| | | LinkedList<String> valueStrings = new LinkedList<String>(); |
| | | |
| | |
| | | */ |
| | | public final DN getTaskEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTaskEntryDN"); |
| | | |
| | | return taskEntryDN; |
| | | } |
| | |
| | | */ |
| | | public final Entry getTaskEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTaskEntry"); |
| | | |
| | | return taskEntry; |
| | | } |
| | |
| | | */ |
| | | public final Operation getOperation() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getOperation"); |
| | | |
| | | return operation; |
| | | } |
| | |
| | | */ |
| | | public final void setOperation(Operation operation) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setOperation", String.valueOf(operation)); |
| | | |
| | | this.operation = operation; |
| | | } |
| | |
| | | */ |
| | | public final String getTaskID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTaskID"); |
| | | |
| | | return taskID; |
| | | } |
| | |
| | | */ |
| | | public final String getRecurringTaskID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRecurringTaskID"); |
| | | |
| | | return recurringTaskID; |
| | | } |
| | |
| | | */ |
| | | public final TaskState getTaskState() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTaskState"); |
| | | |
| | | return taskState; |
| | | } |
| | |
| | | */ |
| | | void setTaskState(TaskState taskState) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setTaskState", String.valueOf(taskState)); |
| | | |
| | | Lock lock = taskScheduler.writeLockEntry(taskEntryDN); |
| | | |
| | |
| | | */ |
| | | public final long getScheduledStartTime() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getStartTime"); |
| | | |
| | | return scheduledStartTime; |
| | | } |
| | |
| | | */ |
| | | public final long getActualStartTime() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getActualStartTime"); |
| | | |
| | | return actualStartTime; |
| | | } |
| | |
| | | */ |
| | | private void setActualStartTime(long actualStartTime) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setActualStartTime", |
| | | String.valueOf(actualStartTime)); |
| | | |
| | | Lock lock = taskScheduler.writeLockEntry(taskEntryDN); |
| | | |
| | |
| | | */ |
| | | public final long getCompletionTime() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getCompletionTime"); |
| | | |
| | | return completionTime; |
| | | } |
| | |
| | | */ |
| | | private void setCompletionTime(long completionTime) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setCompletionTime", |
| | | String.valueOf(completionTime)); |
| | | |
| | | Lock lock = taskScheduler.writeLockEntry(taskEntryDN); |
| | | |
| | |
| | | */ |
| | | public final LinkedList<String> getDependencyIDs() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDependencyIDs"); |
| | | |
| | | return dependencyIDs; |
| | | } |
| | |
| | | */ |
| | | public final FailedDependencyAction getFailedDependencyAction() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getFailedDependencyAction"); |
| | | |
| | | return failedDependencyAction; |
| | | } |
| | |
| | | */ |
| | | public final LinkedList<String> getNotifyOnCompletionAddresses() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getNotifyOnCompletionAddresses"); |
| | | |
| | | return notifyOnCompletion; |
| | | } |
| | |
| | | */ |
| | | public final LinkedList<String> getNotifyOnErrorAddresses() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getNotifyOnErrorAddresses"); |
| | | |
| | | return notifyOnError; |
| | | } |
| | |
| | | */ |
| | | public final LinkedList<String> getLogMessages() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLogMessages"); |
| | | |
| | | return logMessages; |
| | | } |
| | |
| | | void addLogMessage(ErrorLogSeverity severity, int messageID, |
| | | String messageString) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addLogMessage", |
| | | String.valueOf(severity), String.valueOf(messageID), |
| | | String.valueOf(messageString)); |
| | | |
| | | Lock lock = taskScheduler.writeLockEntry(taskEntryDN); |
| | | |
| | |
| | | */ |
| | | public final int compareTo(Task task) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "compareTo", String.valueOf(task)); |
| | | |
| | | if (completionTime > 0) |
| | | { |
| | |
| | | */ |
| | | public final TaskState execute() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "execute"); |
| | | |
| | | setActualStartTime(TimeThread.getTime()); |
| | | setTaskState(TaskState.RUNNING); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "execute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | setTaskState(TaskState.STOPPED_BY_ERROR); |
| | | |
| | |
| | | public void initializeTask() |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeTask"); |
| | | |
| | | // No action is performed by default. |
| | | } |
| | |
| | | */ |
| | | public void interruptTask(TaskState interruptState, String interruptReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "interruptTask"); |
| | | |
| | | // No action is performed by default. |
| | | } |
| | |
| | | import org.opends.server.types.SearchScope; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | extends Backend |
| | | implements ConfigurableComponent |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.task.TaskBackend"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | |
| | | // Perform all initialization in initializeBackend. |
| | |
| | | public void initializeBackend(ConfigEntry configEntry, DN[] baseDNs) |
| | | throws ConfigException, InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeBackend", |
| | | String.valueOf(configEntry)); |
| | | |
| | | |
| | | // Make sure that a configuration entry was provided. If not, then we will |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | // This should never happen. |
| | | int msgID = MSGID_TASKBE_CANNOT_DECODE_RECURRING_TASK_BASE_DN; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | // This should never happen. |
| | | int msgID = MSGID_TASKBE_CANNOT_DECODE_SCHEDULED_TASK_BASE_DN; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_TASKBE_CANNOT_INITIALIZE_RETENTION_TIME; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_TASKBE_CANNOT_INITIALIZE_BACKING_FILE; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN; |
| | | String message = getMessage(msgID, taskRootDN.toString(), |
| | |
| | | */ |
| | | public void finalizeBackend() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "finalizeBackend"); |
| | | |
| | | |
| | | DirectoryServer.deregisterConfigurableComponent(this); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | try |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | try |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "finalizeBackend", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | public DN[] getBaseDNs() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getBaseDNs"); |
| | | |
| | | return baseDNs; |
| | | } |
| | |
| | | */ |
| | | public long getEntryCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntryCount"); |
| | | |
| | | if (taskScheduler != null) |
| | | { |
| | |
| | | */ |
| | | public boolean isLocal() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isLocal"); |
| | | |
| | | // For the purposes of this method, this is a local backend. |
| | | return true; |
| | |
| | | public Entry getEntry(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntry", String.valueOf(entryDN)); |
| | | |
| | | |
| | | if (entryDN == null) |
| | |
| | | public boolean entryExists(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryExists", String.valueOf(entryDN)); |
| | | |
| | | |
| | | if (entryDN == null) |
| | |
| | | public void addEntry(Entry entry, AddOperation addOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addEntry", String.valueOf(entry), |
| | | String.valueOf(addOperation)); |
| | | |
| | | |
| | | // Get the DN for the entry and then get its parent. |
| | |
| | | msgID); |
| | | } |
| | | |
| | | |
| | | // If the parent DN is equal to the parent for scheduled tasks, then try to |
| | | // treat the provided entry like a scheduled task. |
| | | if (parentDN.equals(scheduledTaskParentDN)) |
| | |
| | | return; |
| | | } |
| | | |
| | | |
| | | // If the parent DN is equal to the parent for recurring tasks, then try to |
| | | // treat the provided entry like a recurring task. |
| | | if (parentDN.equals(recurringTaskParentDN)) |
| | |
| | | return; |
| | | } |
| | | |
| | | |
| | | // We won't allow the entry to be added. |
| | | int msgID = MSGID_TASKBE_ADD_DISALLOWED_DN; |
| | | String message = getMessage(msgID, String.valueOf(scheduledTaskParentDN), |
| | |
| | | public void deleteEntry(DN entryDN, DeleteOperation deleteOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deleteEntry", String.valueOf(entryDN), |
| | | String.valueOf(deleteOperation)); |
| | | |
| | | |
| | | // Get the parent for the provided entry DN. It must be either the |
| | |
| | | public void replaceEntry(Entry entry, ModifyOperation modifyOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "replaceEntry", String.valueOf(entry), |
| | | String.valueOf(modifyOperation)); |
| | | |
| | | // FIXME -- We need to support this. |
| | | throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, |
| | |
| | | ModifyDNOperation modifyDNOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "renameEntry", String.valueOf(currentDN), |
| | | String.valueOf(entry), String.valueOf(modifyDNOperation)); |
| | | |
| | | |
| | | int msgID = MSGID_TASKBE_MODIFY_DN_NOT_SUPPORTED; |
| | |
| | | public void search(SearchOperation searchOperation) |
| | | throws DirectoryException, CancelledOperationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "search", String.valueOf(searchOperation)); |
| | | |
| | | |
| | | // Look at the base DN and scope for the search operation to decide which |
| | |
| | | */ |
| | | public HashSet<String> getSupportedControls() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedControls"); |
| | | |
| | | return supportedControls; |
| | | } |
| | |
| | | */ |
| | | public HashSet<String> getSupportedFeatures() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSupportedFeatures"); |
| | | |
| | | return supportedFeatures; |
| | | } |
| | |
| | | */ |
| | | public boolean supportsLDIFExport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFExport"); |
| | | |
| | | // LDIF exports are supported. |
| | | return true; |
| | |
| | | LDIFExportConfig exportConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "exportLDIF", String.valueOf(exportConfig)); |
| | | |
| | | |
| | | // FIXME -- Implement support for exporting to LDIF. |
| | |
| | | */ |
| | | public boolean supportsLDIFImport() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsLDIFImport"); |
| | | |
| | | // This backend does not support LDIF imports. |
| | | return false; |
| | |
| | | LDIFImportConfig importConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "importLDIF", String.valueOf(importConfig)); |
| | | |
| | | |
| | | // This backend does not support LDIF imports. |
| | |
| | | */ |
| | | public boolean supportsBackup() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | // This backend does provide a backup/restore mechanism. |
| | | return true; |
| | |
| | | public boolean supportsBackup(BackupConfig backupConfig, |
| | | StringBuilder unsupportedReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsBackup"); |
| | | |
| | | |
| | | // This backend does provide a backup/restore mechanism. |
| | |
| | | public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createBackup", String.valueOf(backupConfig)); |
| | | |
| | | |
| | | // NYI -- Create the backup. |
| | |
| | | String backupID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeBackup", |
| | | String.valueOf(backupDirectory), |
| | | String.valueOf(backupID)); |
| | | |
| | | |
| | | // NYI -- Remove the backup. |
| | |
| | | */ |
| | | public boolean supportsRestore() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsRestore"); |
| | | |
| | | |
| | | // This backend does provide a backup/restore mechanism. |
| | |
| | | RestoreConfig restoreConfig) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "restoreBackup", |
| | | String.valueOf(restoreConfig)); |
| | | |
| | | |
| | | // NYI -- Restore the backup. |
| | |
| | | */ |
| | | public DN getConfigurableComponentEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurableComponentEntryDN"); |
| | | |
| | | return configEntryDN; |
| | | } |
| | |
| | | */ |
| | | public List<ConfigAttribute> getConfigurationAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurationAttributes"); |
| | | |
| | | LinkedList<ConfigAttribute> attrList = new LinkedList<ConfigAttribute>(); |
| | | |
| | |
| | | public boolean hasAcceptableConfiguration(ConfigEntry configEntry, |
| | | List<String> unacceptableReasons) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasAcceptableConfiguration", |
| | | String.valueOf(configEntry), "java.util.List<String>"); |
| | | |
| | | |
| | | boolean configIsAcceptable = true; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "hasAcceptableConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKBE_ERROR_GETTING_BACKING_FILE; |
| | | unacceptableReasons.add(getMessage(msgID, ATTR_TASK_BACKING_FILE, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "hasAcceptableConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKBE_ERROR_GETTING_RETENTION_TIME; |
| | | unacceptableReasons.add(getMessage(msgID, ATTR_TASK_RETENTION_TIME, |
| | |
| | | public ConfigChangeResult applyNewConfiguration(ConfigEntry configEntry, |
| | | boolean detailedResults) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyNewConfiguration", |
| | | String.valueOf(configEntry), |
| | | String.valueOf(detailedResults)); |
| | | |
| | | |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKBE_ERROR_GETTING_BACKING_FILE; |
| | | messages.add(getMessage(msgID, ATTR_TASK_BACKING_FILE, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "applyNewConfiguration", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKBE_ERROR_GETTING_RETENTION_TIME; |
| | | messages.add(getMessage(msgID, ATTR_TASK_RETENTION_TIME, |
| | |
| | | */ |
| | | public DN getConfigEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigEntryDN"); |
| | | |
| | | return configEntryDN; |
| | | } |
| | |
| | | */ |
| | | public String getTaskBackingFile() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTaskBackingFile"); |
| | | |
| | | File f = getFileForPath(taskBackingFile); |
| | | return f.getPath(); |
| | |
| | | */ |
| | | public long getRetentionTime() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRetentionTime"); |
| | | |
| | | return retentionTime; |
| | | } |
| | |
| | | */ |
| | | public DN getTaskRootDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTaskRootDN"); |
| | | |
| | | return taskRootDN; |
| | | } |
| | |
| | | */ |
| | | public DN getRecurringTasksParentDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRecurringTasksParentDN"); |
| | | |
| | | return recurringTaskParentDN; |
| | | } |
| | |
| | | */ |
| | | public DN getScheduledTasksParentDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getScheduledTasksParentDN"); |
| | | |
| | | return scheduledTaskParentDN; |
| | | } |
| | |
| | | */ |
| | | public Task getScheduledTask(DN taskEntryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getScheduledTask", |
| | | String.valueOf(taskEntryDN)); |
| | | |
| | | return taskScheduler.getScheduledTask(taskEntryDN); |
| | | } |
| | |
| | | */ |
| | | public RecurringTask getRecurringTask(DN taskEntryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getScheduledTask", |
| | | String.valueOf(taskEntryDN)); |
| | | |
| | | return taskScheduler.getRecurringTask(taskEntryDN); |
| | | } |
| | |
| | | import org.opends.server.util.TimeThread; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | implements AlertGenerator |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | * The fully-qualified name of this class. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.task.TaskScheduler"; |
| | |
| | | { |
| | | super("Task Scheduler Thread"); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(taskBackend)); |
| | | |
| | | this.taskBackend = taskBackend; |
| | | |
| | |
| | | boolean scheduleIteration) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addRecurringTask", |
| | | String.valueOf(recurringTask), |
| | | String.valueOf(scheduleIteration)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | public RecurringTask removeRecurringTask(String recurringTaskID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeRecurringTask", |
| | | String.valueOf(recurringTaskID)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | public void scheduleTask(Task task, boolean writeState) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "scheduleTask", String.valueOf(task)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | */ |
| | | public Task cancelTask(String taskID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "cancelTask", String.valueOf(taskID)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | public Task removePendingTask(String taskID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removePendingTask", String.valueOf(taskID)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | public Task removeCompletedTask(String taskID) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeCompletedTask", |
| | | String.valueOf(taskID)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | */ |
| | | public boolean threadDone(TaskThread taskThread, Task completedTask) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "threadDone", String.valueOf(taskThread)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "threadDone", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_ERROR_SCHEDULING_RECURRING_ITERATION; |
| | | String message = getMessage(msgID, recurringTaskID, |
| | |
| | | */ |
| | | public void addCompletedTask(Task completedTask) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addCompletedTask", |
| | | String.valueOf(completedTask)); |
| | | |
| | | // The scheduler lock is reentrant, so even if we already hold it, we can |
| | | // acquire it again. |
| | |
| | | */ |
| | | public void stopScheduler() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stopScheduler"); |
| | | |
| | | stopRequested = true; |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "stopScheduler", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | try |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "stopScheduler", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | pendingTasks.clear(); |
| | |
| | | public void interruptRunningTasks(TaskState interruptState, |
| | | String interruptReason, boolean waitForStop) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "interruptRunningTasks", |
| | | String.valueOf(waitForStop)); |
| | | |
| | | |
| | | // Grab a copy of the running threads so that we can operate on them without |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "interruptRunningTasks", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "interruptRunningTasks", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public void run() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "run"); |
| | | |
| | | isRunning = true; |
| | | schedulerThread = currentThread(); |
| | |
| | | */ |
| | | private TaskState shouldStart(Task task) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "shouldStart", String.valueOf(task)); |
| | | |
| | | if (! isRunning) |
| | | { |
| | |
| | | private void initializeTasksFromBackingFile() |
| | | throws InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeTasksFromBackingFile"); |
| | | |
| | | String backingFilePath = taskBackend.getTaskBackingFile(); |
| | | |
| | |
| | | } |
| | | catch (LDIFException le) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeTasksFromBackingFile", |
| | | le); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, le); |
| | | } |
| | | |
| | | if (le.canContinueReading()) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, |
| | | "initializeTasksFromBackingFile", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_PARSE_ENTRY_FATAL; |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, |
| | | "initializeTasksFromBackingFile", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = |
| | | MSGID_TASKSCHED_CANNOT_SCHEDULE_RECURRING_TASK_FROM_ENTRY; |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, |
| | | "initializeTasksFromBackingFile", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_SCHEDULE_TASK_FROM_ENTRY; |
| | | String message = getMessage(msgID, String.valueOf(entryDN), |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | assert debugException(CLASS_NAME, "initializeTasksFromBackingFile", ioe); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ioe); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_ERROR_READING_TASK_BACKING_FILE; |
| | | String message = getMessage(msgID, String.valueOf(backingFilePath), |
| | |
| | | private void createNewTaskBackingFile() |
| | | throws InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createNewTaskBackingFile"); |
| | | |
| | | String backingFile = taskBackend.getTaskBackingFile(); |
| | | LDIFExportConfig exportConfig = |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | assert debugException(CLASS_NAME, "createNewTaskBackingFile", ioe); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ioe); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_CREATE_BACKING_FILE; |
| | | String message = getMessage(msgID, backingFile, |
| | |
| | | } |
| | | catch (LDIFException le) |
| | | { |
| | | assert debugException(CLASS_NAME, "createNewTaskBackingFile", le); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, le); |
| | | } |
| | | |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_CREATE_BACKING_FILE; |
| | |
| | | */ |
| | | public void writeState() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "writeState"); |
| | | |
| | | |
| | | String backingFilePath = taskBackend.getTaskBackingFile(); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "writeState", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "writeState", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_RENAME_CURRENT_BACKING_FILE; |
| | | String message = getMessage(msgID, String.valueOf(backingFilePath), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "writeState", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_RENAME_NEW_BACKING_FILE; |
| | | String message = getMessage(msgID, String.valueOf(tmpFilePath), |
| | |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | assert debugException(CLASS_NAME, "createNewTaskBackingFile", ioe); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ioe); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_WRITE_BACKING_FILE; |
| | | String message = getMessage(msgID, tmpFilePath, |
| | |
| | | } |
| | | catch (LDIFException le) |
| | | { |
| | | assert debugException(CLASS_NAME, "createNewTaskBackingFile", le); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, le); |
| | | } |
| | | |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_WRITE_BACKING_FILE; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "createNewTaskBackingFile", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_WRITE_BACKING_FILE; |
| | | String message = getMessage(msgID, tmpFilePath, |
| | |
| | | */ |
| | | public long getEntryCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntryCount"); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | */ |
| | | public Entry getTaskRootEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTaskRootEntry"); |
| | | |
| | | return taskRootEntry; |
| | | } |
| | |
| | | */ |
| | | public Entry getScheduledTaskParentEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getScheduledTaskParentEntry"); |
| | | |
| | | return scheduledTaskParentEntry; |
| | | } |
| | |
| | | */ |
| | | public Entry getRecurringTaskParentEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRecurringTaskParentEntry"); |
| | | |
| | | return recurringTaskParentEntry; |
| | | } |
| | |
| | | */ |
| | | public Task getScheduledTask(String taskID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getScheduledTask", String.valueOf(taskID)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | */ |
| | | public Task getScheduledTask(DN taskEntryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getScheduledTask", |
| | | String.valueOf(taskEntryDN)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | */ |
| | | Lock writeLockEntry(DN entryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "lockEntry", String.valueOf(entryDN)); |
| | | |
| | | Lock lock = LockManager.lockWrite(entryDN); |
| | | while (lock == null) |
| | |
| | | Lock readLockEntry(DN entryDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "lockEntry", String.valueOf(entryDN)); |
| | | |
| | | Lock lock = LockManager.lockRead(entryDN); |
| | | for (int i=0; ((lock == null) && (i < 4)); i++) |
| | |
| | | */ |
| | | void unlockEntry(DN entryDN, Lock lock) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "unlockEntry", String.valueOf(entryDN), |
| | | String.valueOf(lock)); |
| | | |
| | | LockManager.unlock(entryDN, lock); |
| | | } |
| | |
| | | */ |
| | | public Entry getScheduledTaskEntry(DN scheduledTaskEntryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getScheduledTaskEntry", |
| | | String.valueOf(scheduledTaskEntryDN)); |
| | | |
| | | |
| | | schedulerLock.lock(); |
| | |
| | | public boolean searchScheduledTasks(SearchOperation searchOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "searchScheduledTasks", |
| | | String.valueOf(searchOperation)); |
| | | |
| | | SearchFilter filter = searchOperation.getFilter(); |
| | | |
| | |
| | | */ |
| | | public RecurringTask getRecurringTask(String recurringTaskID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRecurringTask", |
| | | String.valueOf(recurringTaskID)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | */ |
| | | public RecurringTask getRecurringTask(DN recurringTaskEntryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRecurringTask", |
| | | String.valueOf(recurringTaskEntryDN)); |
| | | |
| | | schedulerLock.lock(); |
| | | |
| | |
| | | */ |
| | | public Entry getRecurringTaskEntry(DN recurringTaskEntryDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRecurringTaskEntry", |
| | | String.valueOf(recurringTaskEntryDN)); |
| | | |
| | | |
| | | schedulerLock.lock(); |
| | |
| | | public boolean searchRecurringTasks(SearchOperation searchOperation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "searchRecurringTasks", |
| | | String.valueOf(searchOperation)); |
| | | |
| | | SearchFilter filter = searchOperation.getFilter(); |
| | | |
| | |
| | | public Task entryToScheduledTask(Entry entry, Operation operation) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryToScheduledTask", |
| | | String.valueOf(entry)); |
| | | |
| | | |
| | | // Get the name of the class that implements the task logic. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "entryToScheduledTask", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_LOAD_CLASS; |
| | | String message = getMessage(msgID, String.valueOf(taskClassName), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "entryToScheduledTask", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_INSTANTIATE_CLASS_AS_TASK; |
| | | String message = getMessage(msgID, String.valueOf(taskClassName)); |
| | |
| | | } |
| | | catch (InitializationException ie) |
| | | { |
| | | assert debugException(CLASS_NAME, "entryToScheduledTask", ie); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ie); |
| | | } |
| | | |
| | | int msgID = MSGID_TASKSCHED_CANNOT_INITIALIZE_INTERNAL; |
| | | String message = getMessage(msgID, String.valueOf(taskClassName), |
| | |
| | | public RecurringTask entryToRecurringTask(Entry entry) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "entryToRecurringTask", |
| | | String.valueOf(entry)); |
| | | |
| | | return new RecurringTask(this, entry); |
| | | } |
| | |
| | | */ |
| | | public DN getComponentEntryDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getComponentEntryDN"); |
| | | |
| | | return taskBackend.getConfigEntryDN(); |
| | | } |
| | |
| | | */ |
| | | public String getClassName() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getClassName"); |
| | | |
| | | return CLASS_NAME; |
| | | } |
| | |
| | | */ |
| | | public LinkedHashMap<String,String> getAlerts() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAlerts"); |
| | | |
| | | LinkedHashMap<String,String> alerts = new LinkedHashMap<String,String>(); |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.task; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | | /** |
| | | * This enumeration defines the various states that a task can have during its |
| | | * lifetime. |
| | |
| | | |
| | | |
| | | |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.task.TaskState"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public static boolean isPending(TaskState taskState) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isPending", String.valueOf(taskState)); |
| | | |
| | | |
| | | switch (taskState) |
| | | { |
| | |
| | | */ |
| | | public static boolean isRunning(TaskState taskState) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isRunning", String.valueOf(taskState)); |
| | | |
| | | |
| | | switch (taskState) |
| | | { |
| | |
| | | */ |
| | | public static boolean isDone(TaskState taskState) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isDone", String.valueOf(taskState)); |
| | | |
| | | |
| | | switch (taskState) |
| | | { |
| | |
| | | */ |
| | | public static boolean isSuccessful(TaskState taskState) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isDone", String.valueOf(taskState)); |
| | | |
| | | |
| | | switch (taskState) |
| | | { |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.backends.task; |
| | | |
| | |
| | | import org.opends.server.api.DirectoryThread; |
| | | import org.opends.server.types.ErrorLogSeverity; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.BackendMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | |
| | | public class TaskThread |
| | | extends DirectoryThread |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.backends.task.TaskThread"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super("Task Thread " + threadID); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(taskScheduler), |
| | | String.valueOf(threadID)); |
| | | |
| | | this.taskScheduler = taskScheduler; |
| | | this.threadID = threadID; |
| | |
| | | */ |
| | | public Task getTask() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getTask"); |
| | | |
| | | return task; |
| | | } |
| | |
| | | */ |
| | | public void setTask(Task task) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setTask", String.valueOf(task)); |
| | | |
| | | this.task = task; |
| | | |
| | |
| | | public void interruptTask(TaskState interruptState, String interruptReason, |
| | | boolean exitThread) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "interruptTask", String.valueOf(exitThread)); |
| | | |
| | | if (task != null) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "interruptTask", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | public void run() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "run"); |
| | | |
| | | while (! exitRequested) |
| | | { |
| | |
| | | } |
| | | catch (InterruptedException ie) |
| | | { |
| | | assert debugException(CLASS_NAME, "run", ie); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ie); |
| | | } |
| | | } |
| | | |
| | | continue; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "run", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_TASK_EXECUTE_FAILED; |
| | | String message = getMessage(msgID, |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | |
| | | import org.opends.server.types.AttributeValue; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class BooleanConfigAttribute |
| | | extends ConfigAttribute |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.BooleanConfigAttribute"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(name, description, true, false, requiresAdminAction); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction)); |
| | | } |
| | | |
| | | |
| | |
| | | super(name, description, true, false, requiresAdminAction, |
| | | getValueSet(value)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(value)); |
| | | |
| | | activeValue = value; |
| | | pendingValue = value; |
| | | } |
| | |
| | | super(name, description, true, false, requiresAdminAction, |
| | | getValueSet(activeValue), true, getValueSet(pendingValue)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(activeValue), |
| | | String.valueOf(pendingValue)); |
| | | |
| | | this.activeValue = activeValue; |
| | | this.pendingValue = pendingValue; |
| | |
| | | */ |
| | | public String getDataType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDataType"); |
| | | |
| | | return "Boolean"; |
| | | } |
| | |
| | | */ |
| | | public AttributeSyntax getSyntax() |
| | | { |
| | | assert debugEnter(CLASS_NAME,"getSyntax"); |
| | | |
| | | return DirectoryServer.getDefaultBooleanSyntax(); |
| | | } |
| | |
| | | */ |
| | | public boolean activeValue() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "booleanValue"); |
| | | |
| | | return activeValue; |
| | | } |
| | |
| | | */ |
| | | public boolean pendingValue() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "booleanValue"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public void setValue(boolean booleanValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", |
| | | String.valueOf(booleanValue)); |
| | | |
| | | if (requiresAdminAction()) |
| | | { |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(boolean booleanValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(booleanValue)); |
| | | |
| | | LinkedHashSet<AttributeValue> valueSet = |
| | | new LinkedHashSet<AttributeValue>(1); |
| | |
| | | */ |
| | | public void applyPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyPendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | public boolean valueIsAcceptable(AttributeValue value, |
| | | StringBuilder rejectReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueIsAcceptable", String.valueOf(value), |
| | | "java.lang.StringBuilder"); |
| | | |
| | | String stringValue = value.getStringValue(); |
| | | if (stringValue.equalsIgnoreCase(CONFIG_VALUE_TRUE) || |
| | |
| | | boolean allowFailures) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stringsToValues", |
| | | String.valueOf(valueStrings), |
| | | String.valueOf(allowFailures)); |
| | | |
| | | if ((valueStrings == null) || valueStrings.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<String> activeValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValuesToStrings"); |
| | | |
| | | ArrayList<String> valueStrings = new ArrayList<String>(1); |
| | | valueStrings.add(String.valueOf(activeValue)); |
| | |
| | | */ |
| | | public List<String> pendingValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValuesToStrings"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | public ConfigAttribute getConfigAttribute(List<Attribute> attributeList) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | |
| | | boolean activeValue = false; |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttribute() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute"); |
| | | |
| | | return new javax.management.Attribute(getName(), activeValue); |
| | | } |
| | |
| | | */ |
| | | public void toJMXAttribute(AttributeList attributeList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | attributeList.add(new javax.management.Attribute(getName(), activeValue)); |
| | | |
| | |
| | | */ |
| | | public void toJMXAttributeInfo(List<MBeanAttributeInfo> attributeInfoList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributeInfo", |
| | | String.valueOf(attributeInfoList)); |
| | | |
| | | attributeInfoList.add(new MBeanAttributeInfo(getName(), |
| | | Boolean.class.getName(), |
| | |
| | | */ |
| | | public MBeanParameterInfo toJMXParameterInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXParameterInfo"); |
| | | |
| | | return new MBeanParameterInfo(getName(), Boolean.TYPE.getName(), |
| | | getDescription()); |
| | |
| | | public void setValue(javax.management.Attribute jmxAttribute) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(jmxAttribute)); |
| | | |
| | | Object value = jmxAttribute.getValue(); |
| | | if (value instanceof Boolean) |
| | |
| | | */ |
| | | public ConfigAttribute duplicate() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "duplicate"); |
| | | |
| | | return new BooleanConfigAttribute(getName(), getDescription(), |
| | | requiresAdminAction(), activeValue, |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | |
| | | import org.opends.server.types.Attribute; |
| | | import org.opends.server.types.AttributeValue; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | |
| | |
| | | */ |
| | | public abstract class ConfigAttribute |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.ConfigAttribute"; |
| | | |
| | | |
| | | |
| | |
| | | protected ConfigAttribute(String name, String description, boolean isRequired, |
| | | boolean isMultiValued, boolean requiresAdminAction) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(requiresAdminAction)); |
| | | |
| | | |
| | | this.name = name; |
| | |
| | | boolean isMultiValued, boolean requiresAdminAction, |
| | | LinkedHashSet<AttributeValue> activeValues) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(activeValues) |
| | | }); |
| | | |
| | | |
| | | this.name = name; |
| | |
| | | boolean hasPendingValues, |
| | | LinkedHashSet<AttributeValue> pendingValues) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(activeValues), |
| | | String.valueOf(hasPendingValues), |
| | | String.valueOf(pendingValues) |
| | | }); |
| | | |
| | | |
| | | this.name = name; |
| | |
| | | */ |
| | | public String getName() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getName"); |
| | | |
| | | return name; |
| | | } |
| | |
| | | */ |
| | | public String getDescription() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDescription"); |
| | | |
| | | return description; |
| | | } |
| | |
| | | */ |
| | | public boolean isRequired() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isRequired"); |
| | | |
| | | return isRequired; |
| | | } |
| | |
| | | */ |
| | | public boolean isMultiValued() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isMultiValued"); |
| | | |
| | | return isMultiValued; |
| | | } |
| | |
| | | */ |
| | | public boolean requiresAdminAction() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "requiresAdminAction"); |
| | | |
| | | return requiresAdminAction; |
| | | } |
| | |
| | | */ |
| | | public LinkedHashSet<AttributeValue> getActiveValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getActiveValues"); |
| | | |
| | | return activeValues; |
| | | } |
| | |
| | | */ |
| | | public boolean hasPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasPendingValues"); |
| | | |
| | | return hasPendingValues; |
| | | } |
| | |
| | | */ |
| | | public LinkedHashSet<AttributeValue> getPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPendingValues"); |
| | | |
| | | if (requiresAdminAction) |
| | | { |
| | |
| | | protected void setValues(LinkedHashSet<AttributeValue> values) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValues", String.valueOf(values)); |
| | | |
| | | |
| | | // If no values are provided, then check to see if this is a required |
| | |
| | | */ |
| | | protected void setActiveValues(LinkedHashSet<AttributeValue> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setActiveValues", |
| | | String.valueOf(values)); |
| | | |
| | | activeValues = values; |
| | | } |
| | |
| | | */ |
| | | protected void setPendingValues(LinkedHashSet<AttributeValue> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setPendingValues", |
| | | String.valueOf(values)); |
| | | |
| | | pendingValues = values; |
| | | hasPendingValues = true; |
| | |
| | | protected void addValues(List<AttributeValue> values) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addValues", String.valueOf(values)); |
| | | |
| | | |
| | | // If there are no values provided, then do nothing. |
| | |
| | | protected void removeValues(List<AttributeValue> values) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeValues", String.valueOf(values)); |
| | | |
| | | |
| | | // Create a temporary set of values that we will use for this change. It |
| | |
| | | protected void removeAllValues() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeAllValues"); |
| | | |
| | | if (isRequired) |
| | | { |
| | |
| | | */ |
| | | public void setInitialValues(LinkedHashSet<AttributeValue> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setInitialValues"); |
| | | |
| | | if (values == null) |
| | | { |
| | |
| | | */ |
| | | public void applyPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyPendingValues"); |
| | | |
| | | if (hasPendingValues) |
| | | { |
| | |
| | | */ |
| | | public static final String ATTR_TASK_ADDSCHEMAFILE_FILENAME = |
| | | NAME_PREFIX_TASK + "schema-file-name"; |
| | | |
| | | |
| | | /** |
| | | * The name of the attribute in a debug target configuration for a debug |
| | | * logger that specifies the scope of the debug target. |
| | | */ |
| | | public static final String ATTR_LOGGER_DEBUG_SCOPE = |
| | | NAME_PREFIX_TASK + "debug-scope"; |
| | | |
| | | /** |
| | | * The name of the attribute in a logger configuration that spcifies the |
| | | * log level. |
| | | */ |
| | | public static final String ATTR_LOGGER_LEVEL = |
| | | NAME_PREFIX_TASK + "log-level"; |
| | | |
| | | /** |
| | | * The name of the attribute in a logger configuration that specifies |
| | | * whether to asyncornously writes log records to disk. |
| | | */ |
| | | public static final String ATTR_LOGGER_ASYNC_WRITE = |
| | | NAME_PREFIX_TASK + "async-write"; |
| | | } |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.Entry; |
| | | import org.opends.server.types.ObjectClass; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | |
| | | */ |
| | | public class ConfigEntry |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.ConfigEntry"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | public ConfigEntry(Entry entry, ConfigEntry parent) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(entry), |
| | | String.valueOf(parent)); |
| | | |
| | | this.entry = entry; |
| | | this.parent = parent; |
| | |
| | | */ |
| | | public Entry getEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEntry"); |
| | | |
| | | return entry; |
| | | } |
| | |
| | | */ |
| | | public void setEntry(Entry entry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setEntry", String.valueOf(entry)); |
| | | |
| | | entryLock.lock(); |
| | | |
| | |
| | | */ |
| | | public DN getDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDN"); |
| | | |
| | | return entry.getDN(); |
| | | } |
| | |
| | | */ |
| | | public boolean hasObjectClass(String name) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasObjectClass", String.valueOf(name)); |
| | | |
| | | ObjectClass oc = DirectoryServer.getObjectClass(name.toLowerCase()); |
| | | if (oc == null) |
| | |
| | | public ConfigAttribute getConfigAttribute(ConfigAttribute stub) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigAttribute", String.valueOf(stub)); |
| | | |
| | | String attrName = stub.getName(); |
| | | AttributeType attrType = |
| | |
| | | */ |
| | | public void putConfigAttribute(ConfigAttribute attribute) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "putConfigAttribute", |
| | | String.valueOf(attribute)); |
| | | |
| | | String name = attribute.getName(); |
| | | AttributeType attrType = |
| | |
| | | */ |
| | | public boolean removeConfigAttribute(String lowerName) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeConfigAttribute", |
| | | String.valueOf(lowerName)); |
| | | |
| | | for (AttributeType t : entry.getUserAttributes().keySet()) |
| | | { |
| | |
| | | */ |
| | | public ConfigEntry getParent() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getParent"); |
| | | |
| | | return parent; |
| | | } |
| | |
| | | */ |
| | | public ConcurrentHashMap<DN,ConfigEntry> getChildren() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getChildren"); |
| | | |
| | | return children; |
| | | } |
| | |
| | | */ |
| | | public boolean hasChildren() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasChildren"); |
| | | |
| | | return (! children.isEmpty()); |
| | | } |
| | |
| | | public void addChild(ConfigEntry childEntry) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addChild", String.valueOf(childEntry)); |
| | | |
| | | |
| | | ConfigEntry conflictingChild; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "addChild", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | conflictingChild = null; |
| | | } |
| | |
| | | public ConfigEntry removeChild(DN childDN) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeChild", String.valueOf(childDN)); |
| | | |
| | | entryLock.lock(); |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "removeChild", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ENTRY_CANNOT_REMOVE_CHILD; |
| | | int msgID = MSGID_CONFIG_ENTRY_CANNOT_REMOVE_CHILD; |
| | | String message = getMessage(msgID, String.valueOf(childDN), |
| | | String.valueOf(entry.getDN()), |
| | | stackTraceToSingleLineString(e)); |
| | |
| | | */ |
| | | public ConfigEntry duplicate() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "duplicate"); |
| | | |
| | | return new ConfigEntry(entry.duplicate(), parent); |
| | | } |
| | |
| | | */ |
| | | public CopyOnWriteArrayList<ConfigChangeListener> getChangeListeners() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getChangeListeners"); |
| | | |
| | | return changeListeners; |
| | | } |
| | |
| | | */ |
| | | public void registerChangeListener(ConfigChangeListener listener) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "registerChangeListener", |
| | | String.valueOf(listener)); |
| | | |
| | | changeListeners.add(listener); |
| | | } |
| | |
| | | */ |
| | | public boolean deregisterChangeListener(ConfigChangeListener listener) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deregisterChangeListener", |
| | | String.valueOf(listener)); |
| | | |
| | | return changeListeners.remove(listener); |
| | | } |
| | |
| | | */ |
| | | public CopyOnWriteArrayList<ConfigAddListener> getAddListeners() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAddListeners"); |
| | | |
| | | return addListeners; |
| | | } |
| | |
| | | */ |
| | | public void registerAddListener(ConfigAddListener listener) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "registerAddListener", |
| | | String.valueOf(listener)); |
| | | |
| | | addListeners.addIfAbsent(listener); |
| | | } |
| | |
| | | */ |
| | | public void deregisterAddListener(ConfigAddListener listener) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deregisterAddListener", |
| | | String.valueOf(listener)); |
| | | |
| | | addListeners.remove(listener); |
| | | } |
| | |
| | | */ |
| | | public CopyOnWriteArrayList<ConfigDeleteListener> getDeleteListeners() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDeleteListeners"); |
| | | |
| | | return deleteListeners; |
| | | } |
| | |
| | | */ |
| | | public void registerDeleteListener(ConfigDeleteListener listener) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "registerDeleteListener", |
| | | String.valueOf(listener)); |
| | | |
| | | deleteListeners.addIfAbsent(listener); |
| | | } |
| | |
| | | */ |
| | | public void deregisterDeleteListener(ConfigDeleteListener listener) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "deregisterDeleteListener", |
| | | String.valueOf(listener)); |
| | | |
| | | deleteListeners.remove(listener); |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | |
| | | |
| | | |
| | |
| | | public class ConfigException |
| | | extends Exception |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.ConfigException"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(message); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(messageID), |
| | | String.valueOf(message)); |
| | | |
| | | this.messageID = messageID; |
| | | } |
| | |
| | | { |
| | | super(message, cause); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(messageID), |
| | | String.valueOf(message), String.valueOf(cause)); |
| | | |
| | | this.messageID = messageID; |
| | | } |
| | |
| | | */ |
| | | public int getMessageID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMessageID"); |
| | | |
| | | return messageID; |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.ErrorLogCategory; |
| | | import org.opends.server.types.ErrorLogSeverity; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class DNConfigAttribute |
| | | extends ConfigAttribute |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.DNConfigAttribute"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction)); |
| | | |
| | | activeValues = new ArrayList<DN>(); |
| | | pendingValues = activeValues; |
| | |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction, |
| | | getValueSet(value)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(value) |
| | | }); |
| | | |
| | | if (value == null) |
| | | { |
| | |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction, |
| | | getValueSet(values)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(values) |
| | | }); |
| | | |
| | | if (values == null) |
| | | { |
| | |
| | | getValueSet(activeValues), (pendingValues != null), |
| | | getValueSet(pendingValues)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(activeValues), |
| | | String.valueOf(pendingValues) |
| | | }); |
| | | |
| | | if (activeValues == null) |
| | | { |
| | |
| | | */ |
| | | public String getDataType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDataType"); |
| | | |
| | | return "DN"; |
| | | } |
| | |
| | | */ |
| | | public AttributeSyntax getSyntax() |
| | | { |
| | | assert debugEnter(CLASS_NAME,"getSyntax"); |
| | | |
| | | return DirectoryServer.getDefaultStringSyntax(); |
| | | } |
| | |
| | | public DN activeValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValue"); |
| | | |
| | | if ((activeValues == null) || activeValues.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<DN> activeValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValues"); |
| | | |
| | | return activeValues; |
| | | } |
| | |
| | | public DN pendingValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValue"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public List<DN> pendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | public void setValue(DN value) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(value)); |
| | | |
| | | if (value == null) |
| | | { |
| | |
| | | public void setValues(List<DN> values) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValues", String.valueOf(values)); |
| | | |
| | | |
| | | // First check if the set is empty and if that is allowed. |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(DN value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(value)); |
| | | |
| | | LinkedHashSet<AttributeValue> valueSet; |
| | | if (value == null) |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(List<DN> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(values)); |
| | | |
| | | if (values == null) |
| | | { |
| | |
| | | */ |
| | | public void applyPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyPendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | public boolean valueIsAcceptable(AttributeValue value, |
| | | StringBuilder rejectReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueIsAcceptable", String.valueOf(value), |
| | | "java.lang.StringBuilder"); |
| | | |
| | | |
| | | // Make sure that the value is not null. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueIsAcceptable", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | rejectReason.append(getMessage(MSGID_CONFIG_ATTR_DN_CANNOT_PARSE, |
| | | value.getStringValue(), getName(), |
| | |
| | | boolean allowFailures) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stringsToValues", |
| | | String.valueOf(valueStrings), |
| | | String.valueOf(allowFailures)); |
| | | |
| | | if ((valueStrings == null) || valueStrings.isEmpty()) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "stringsToValues", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE; |
| | | String message = getMessage(msgID, valueString, getName(), |
| | |
| | | */ |
| | | public List<String> activeValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValuesToStrings"); |
| | | |
| | | ArrayList<String> valueStrings = new ArrayList<String>(activeValues.size()); |
| | | for (DN dn : activeValues) |
| | |
| | | */ |
| | | public List<String> pendingValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValuesToStrings"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | public ConfigAttribute getConfigAttribute(List<Attribute> attributeList) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | |
| | | ArrayList<DN> activeValues = null; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getConfigAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE; |
| | | String message = getMessage(msgID, v.getStringValue(), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getConfigAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE; |
| | | String message = getMessage(msgID, v.getStringValue(), getName(), |
| | |
| | | */ |
| | | private javax.management.Attribute _toJMXAttribute(boolean pending) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "_toJMXAttribute"); |
| | | |
| | | List<DN> requestedValues ; |
| | | String name ; |
| | |
| | | */ |
| | | public void toJMXAttribute(AttributeList attributeList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | if (activeValues.size() > 0) |
| | | { |
| | |
| | | */ |
| | | public void toJMXAttributeInfo(List<MBeanAttributeInfo> attributeInfoList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributeInfo", |
| | | String.valueOf(attributeInfoList)); |
| | | |
| | | |
| | | if (isMultiValued()) |
| | |
| | | */ |
| | | public MBeanParameterInfo toJMXParameterInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXParameterInfo"); |
| | | |
| | | if (isMultiValued()) |
| | | { |
| | |
| | | public void setValue(javax.management.Attribute jmxAttribute) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(jmxAttribute)); |
| | | |
| | | Object value = jmxAttribute.getValue(); |
| | | if (value == null) |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE; |
| | | String message = getMessage(msgID, (String) value, getName(), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_DN_CANNOT_PARSE; |
| | | String message = getMessage(msgID, valueStr, getName(), |
| | |
| | | } |
| | | catch (ConfigException ce) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", ce); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ce); |
| | | } |
| | | |
| | | throw ce; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_INVALID_DN_VALUE; |
| | | String message = getMessage(msgID, getName(), String.valueOf(value), |
| | |
| | | */ |
| | | public ConfigAttribute duplicate() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "duplicate"); |
| | | |
| | | return new DNConfigAttribute(getName(), getDescription(), isRequired(), |
| | | isMultiValued(), requiresAdminAction(), |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | |
| | | import org.opends.server.types.AttributeValue; |
| | | import org.opends.server.types.ErrorLogCategory; |
| | | import org.opends.server.types.ErrorLogSeverity; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class IntegerConfigAttribute |
| | | extends ConfigAttribute |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.IntegerConfigAttribute"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(hasLowerBound), |
| | | String.valueOf(lowerBound), |
| | | String.valueOf(hasUpperBound), |
| | | String.valueOf(upperBound) |
| | | }); |
| | | |
| | | this.hasLowerBound = hasLowerBound; |
| | | this.lowerBound = lowerBound; |
| | |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction, |
| | | getValueSet(value)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(hasLowerBound), |
| | | String.valueOf(lowerBound), |
| | | String.valueOf(hasUpperBound), |
| | | String.valueOf(upperBound), |
| | | String.valueOf(value) |
| | | }); |
| | | |
| | | this.hasLowerBound = hasLowerBound; |
| | | this.lowerBound = lowerBound; |
| | |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction, |
| | | getValueSet(values)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(hasLowerBound), |
| | | String.valueOf(lowerBound), |
| | | String.valueOf(hasUpperBound), |
| | | String.valueOf(upperBound), |
| | | String.valueOf(values) |
| | | }); |
| | | |
| | | this.hasLowerBound = hasLowerBound; |
| | | this.lowerBound = lowerBound; |
| | |
| | | getValueSet(activeValues), (pendingValues != null), |
| | | getValueSet(pendingValues)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(hasLowerBound), |
| | | String.valueOf(lowerBound), |
| | | String.valueOf(hasUpperBound), |
| | | String.valueOf(upperBound), |
| | | String.valueOf(activeValues), |
| | | String.valueOf(pendingValues) |
| | | }); |
| | | |
| | | this.hasLowerBound = hasLowerBound; |
| | | this.lowerBound = lowerBound; |
| | |
| | | */ |
| | | public String getDataType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDataType"); |
| | | |
| | | return "Integer"; |
| | | } |
| | |
| | | */ |
| | | public AttributeSyntax getSyntax() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSyntax"); |
| | | |
| | | return DirectoryServer.getDefaultIntegerSyntax(); |
| | | } |
| | |
| | | public long activeValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValue"); |
| | | |
| | | if ((activeValues == null) || activeValues.isEmpty()) |
| | | { |
| | |
| | | public int activeIntValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeIntValue"); |
| | | |
| | | if ((activeValues == null) || activeValues.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<Long> activeValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValues"); |
| | | |
| | | return activeValues; |
| | | } |
| | |
| | | public long pendingValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValue"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | public int pendingIntValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingIntValue"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public List<Long> pendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public boolean hasLowerBound() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasLowerBound"); |
| | | |
| | | return hasLowerBound; |
| | | } |
| | |
| | | */ |
| | | public long getLowerBound() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLowerBound"); |
| | | |
| | | return lowerBound; |
| | | } |
| | |
| | | */ |
| | | public boolean hasUpperBound() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasUpperBound"); |
| | | |
| | | return hasUpperBound; |
| | | } |
| | |
| | | */ |
| | | public long getUpperBound() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getUpperBound"); |
| | | |
| | | return upperBound; |
| | | } |
| | |
| | | public void setValue(long value) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(value)); |
| | | |
| | | if (hasLowerBound && (value < lowerBound)) |
| | | { |
| | |
| | | public void setValues(List<Long> values) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValues", String.valueOf(values)); |
| | | |
| | | |
| | | // First check if the set is empty and if that is allowed. |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(long value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(value)); |
| | | |
| | | LinkedHashSet<AttributeValue> valueSet = |
| | | new LinkedHashSet<AttributeValue>(1); |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(List<Long> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(values)); |
| | | |
| | | if (values == null) |
| | | { |
| | |
| | | */ |
| | | public void applyPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyPendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | public boolean valueIsAcceptable(AttributeValue value, |
| | | StringBuilder rejectReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueIsAcceptable", String.valueOf(value), |
| | | "java.lang.StringBuilder"); |
| | | |
| | | |
| | | // First, make sure we can represent it as a long. |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueIsAcceptable", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | rejectReason.append(getMessage(MSGID_CONFIG_ATTR_INVALID_INT_VALUE, |
| | | stringValue, String.valueOf(e))); |
| | |
| | | boolean allowFailures) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stringsToValues", |
| | | String.valueOf(valueStrings), |
| | | String.valueOf(allowFailures)); |
| | | |
| | | if ((valueStrings == null) || valueStrings.isEmpty()) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "stringsToValues", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_INT_COULD_NOT_PARSE; |
| | | String message = getMessage(msgID, valueString, getName(), |
| | |
| | | */ |
| | | public List<String> activeValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValuesToStrings"); |
| | | |
| | | ArrayList<String> valueStrings = |
| | | new ArrayList<String>(activeValues.size()); |
| | |
| | | */ |
| | | public List<String> pendingValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValuesToStrings"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | public ConfigAttribute getConfigAttribute(List<Attribute> attributeList) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | |
| | | ArrayList<Long> activeValues = null; |
| | |
| | | */ |
| | | private javax.management.Attribute _toJMXAttribute(boolean pending) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "_toJMXAttribute"); |
| | | List<Long> requestedValues ; |
| | | String name ; |
| | | if (pending) |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttribute() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute"); |
| | | |
| | | return _toJMXAttribute(false); |
| | | } |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttributePending() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributePending"); |
| | | |
| | | return _toJMXAttribute(true); |
| | | } |
| | |
| | | */ |
| | | public void toJMXAttribute(AttributeList attributeList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | if (activeValues.size() > 0) |
| | | { |
| | |
| | | */ |
| | | public void toJMXAttributeInfo(List<MBeanAttributeInfo> attributeInfoList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributeInfo", |
| | | String.valueOf(attributeInfoList)); |
| | | |
| | | |
| | | if (isMultiValued()) |
| | |
| | | */ |
| | | public MBeanParameterInfo toJMXParameterInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXParameterInfo"); |
| | | |
| | | if (isMultiValued()) |
| | | { |
| | |
| | | public void setValue(javax.management.Attribute jmxAttribute) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(jmxAttribute)); |
| | | |
| | | Object value = jmxAttribute.getValue(); |
| | | if (value instanceof Long) |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_INT_COULD_NOT_PARSE; |
| | | String message = getMessage(msgID, String.valueOf(value), getName(), |
| | |
| | | } |
| | | catch (ConfigException ce) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", ce); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ce); |
| | | } |
| | | |
| | | throw ce; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_INT_COULD_NOT_PARSE; |
| | | String message = getMessage(msgID, componentType + "[" + length + "]", |
| | |
| | | */ |
| | | public ConfigAttribute duplicate() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "duplicate"); |
| | | |
| | | return new IntegerConfigAttribute(getName(), getDescription(), isRequired(), |
| | | isMultiValued(), requiresAdminAction(), |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | |
| | | import org.opends.server.types.AttributeValue; |
| | | import org.opends.server.types.ErrorLogCategory; |
| | | import org.opends.server.types.ErrorLogSeverity; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | |
| | | public class IntegerWithUnitConfigAttribute |
| | | extends ConfigAttribute |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.IntegerWithUnitConfigAttribute"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(name, description, true, false, requiresAdminAction); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(units), |
| | | String.valueOf(hasLowerBound), |
| | | String.valueOf(lowerBound), |
| | | String.valueOf(hasUpperBound), |
| | | String.valueOf(upperBound) |
| | | }); |
| | | |
| | | this.units = units; |
| | | this.hasLowerBound = hasLowerBound; |
| | |
| | | super(name, description, true, false, requiresAdminAction, |
| | | getValueSet(intValue, selectedUnit)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(units), |
| | | String.valueOf(hasLowerBound), |
| | | String.valueOf(lowerBound), |
| | | String.valueOf(hasUpperBound), |
| | | String.valueOf(upperBound), |
| | | String.valueOf(intValue), |
| | | String.valueOf(selectedUnit), |
| | | }); |
| | | |
| | | |
| | | this.units = units; |
| | |
| | | (pendingSelectedUnit != null), |
| | | getValueSet(pendingIntValue,pendingSelectedUnit)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(units), |
| | | String.valueOf(hasLowerBound), |
| | | String.valueOf(lowerBound), |
| | | String.valueOf(hasUpperBound), |
| | | String.valueOf(upperBound), |
| | | String.valueOf(activeIntValue), |
| | | String.valueOf(activeSelectedUnit), |
| | | String.valueOf(pendingIntValue), |
| | | String.valueOf(pendingSelectedUnit) |
| | | }); |
| | | |
| | | |
| | | this.units = units; |
| | |
| | | */ |
| | | public String getDataType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDataType"); |
| | | |
| | | return "IntegerWithUnit"; |
| | | } |
| | |
| | | */ |
| | | public AttributeSyntax getSyntax() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSyntax"); |
| | | |
| | | return DirectoryServer.getDefaultStringSyntax(); |
| | | } |
| | |
| | | */ |
| | | public long activeIntValue() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeIntValue"); |
| | | |
| | | return activeIntValue; |
| | | } |
| | |
| | | */ |
| | | public String activeUnit() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeUnit"); |
| | | |
| | | return activeUnit; |
| | | } |
| | |
| | | */ |
| | | public long activeCalculatedValue() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeCalculatedValue"); |
| | | |
| | | return activeCalculatedValue; |
| | | } |
| | |
| | | */ |
| | | public long pendingIntValue() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingIntValue"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public String pendingUnit() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingUnit"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public long pendingCalculatedValue() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingCalculatedValue"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public HashMap<String,Double> getUnits() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getUnits"); |
| | | |
| | | return units; |
| | | } |
| | |
| | | */ |
| | | public boolean hasLowerBound() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasLowerBound"); |
| | | |
| | | return hasLowerBound; |
| | | } |
| | |
| | | */ |
| | | public long getLowerBound() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLowerBound"); |
| | | |
| | | return lowerBound; |
| | | } |
| | |
| | | */ |
| | | public boolean hasUpperBound() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "hasUpperBound"); |
| | | |
| | | return hasUpperBound; |
| | | } |
| | |
| | | */ |
| | | public long getUpperBound() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getUpperBound"); |
| | | |
| | | return upperBound; |
| | | } |
| | |
| | | public void setValue(long intValue, String unit) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(intValue), |
| | | String.valueOf(unit)); |
| | | |
| | | if ((unit == null) || (! units.containsKey(unit))) |
| | | { |
| | |
| | | public void setValue(String value) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(value)); |
| | | |
| | | int spacePos = value.indexOf(' '); |
| | | if (spacePos <= 0) |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_COULD_NOT_PARSE_INT_COMPONENT; |
| | | String message = getMessage(msgID, String.valueOf(value), getName(), |
| | |
| | | private static LinkedHashSet<AttributeValue> getValueSet(long intValue, |
| | | String unit) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(intValue), |
| | | String.valueOf(unit)); |
| | | |
| | | if (unit == null) |
| | | { |
| | |
| | | */ |
| | | public void applyPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyPendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | public boolean valueIsAcceptable(AttributeValue value, |
| | | StringBuilder rejectReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueIsAcceptable", String.valueOf(value), |
| | | "java.lang.StringBuilder"); |
| | | |
| | | |
| | | // Get a string representation of the value and convert it to lowercase. |
| | |
| | | public boolean valueIsAcceptable(String lowerValue, |
| | | StringBuilder rejectReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueIsAcceptable", |
| | | String.valueOf(lowerValue), "java.lang.StringBuilder"); |
| | | |
| | | |
| | | // Find the first space in the value, since it should separate the integer |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueIsAcceptable", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | rejectReason.append(getMessage(MSGID_CONFIG_ATTR_INT_COULD_NOT_PARSE, |
| | | lowerValue, getName(), String.valueOf(e))); |
| | |
| | | stringsToValues(List<String> valueStrings, boolean allowFailures) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stringsToValues", |
| | | String.valueOf(valueStrings), |
| | | String.valueOf(allowFailures)); |
| | | |
| | | if ((valueStrings == null) || valueStrings.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<String> activeValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValuesToStrings"); |
| | | |
| | | ArrayList<String> valueStrings = new ArrayList<String>(1); |
| | | valueStrings.add(activeIntValue + " " + activeUnit); |
| | |
| | | */ |
| | | public List<String> pendingValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValuesToStrings"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | public ConfigAttribute getConfigAttribute(List<Attribute> attributeList) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | |
| | | long activeIntValue = 0; |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttribute() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute"); |
| | | |
| | | return new javax.management.Attribute(getName(), |
| | | activeIntValue + " " + activeUnit); |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttributePending() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributePending"); |
| | | |
| | | return new javax.management.Attribute(getName() + ";" |
| | | + OPTION_PENDING_VALUES, pendingIntValue + " " + pendingUnit); |
| | |
| | | */ |
| | | public void toJMXAttribute(AttributeList attributeList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | String activeValue = activeIntValue + " " + activeUnit; |
| | | attributeList.add(new javax.management.Attribute(getName(), activeValue)); |
| | |
| | | */ |
| | | public void toJMXAttributeInfo(List<MBeanAttributeInfo> attributeInfoList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributeInfo", |
| | | String.valueOf(attributeInfoList)); |
| | | |
| | | attributeInfoList.add(new MBeanAttributeInfo(getName(), |
| | | String.class.getName(), |
| | |
| | | */ |
| | | public MBeanParameterInfo toJMXParameterInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXParameterInfo"); |
| | | |
| | | return new MBeanParameterInfo(getName(), String.class.getName(), |
| | | getDescription()); |
| | |
| | | public void setValue(javax.management.Attribute jmxAttribute) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(jmxAttribute)); |
| | | |
| | | Object value = jmxAttribute.getValue(); |
| | | if (value instanceof String) |
| | |
| | | */ |
| | | public ConfigAttribute duplicate() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "duplicate"); |
| | | |
| | | return new IntegerWithUnitConfigAttribute(getName(), getDescription(), |
| | | requiresAdminAction(), units, |
| | |
| | | import org.opends.server.types.InvokableMethod; |
| | | import org.opends.server.types.ResultCode; |
| | | import org.opends.server.types.SearchScope; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | |
| | | implements DynamicMBean, DirectoryServerMBean |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | * The fully-qualified name of this class. |
| | | */ |
| | | private static final String CLASS_NAME = "org.opends.server.config.JMXMBean"; |
| | | |
| | |
| | | nameStr = MBEAN_BASE_DOMAIN + ":" + "Name=rootDSE" + typeStr; |
| | | } catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "<init>", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_JMX_CANNOT_REGISTER_MBEAN; |
| | | String message = getMessage(msgID, configEntryDN.toString(), |
| | |
| | | */ |
| | | public JMXMBean(DN configEntryDN) |
| | | { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | this.configEntryDN = configEntryDN; |
| | | |
| | |
| | | } |
| | | } catch(Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "<init>", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | mBeanServer.registerMBean(this, objectName); |
| | | |
| | | } catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "<init>", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | e.printStackTrace(); |
| | | |
| | | int msgID = MSGID_CONFIG_JMX_CANNOT_REGISTER_MBEAN; |
| | |
| | | */ |
| | | public ObjectName getObjectName() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getObjectName"); |
| | | |
| | | return objectName; |
| | | } |
| | |
| | | */ |
| | | public CopyOnWriteArrayList<AlertGenerator> getAlertGenerators() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAlertGenerators"); |
| | | |
| | | return alertGenerators; |
| | | } |
| | |
| | | */ |
| | | public void addAlertGenerator(AlertGenerator generator) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addAlertGenerator", |
| | | String.valueOf(generator)); |
| | | |
| | | synchronized (alertGenerators) |
| | | { |
| | |
| | | */ |
| | | public boolean removeAlertGenerator(AlertGenerator generator) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeAlertGenerator", |
| | | String.valueOf(generator)); |
| | | |
| | | synchronized (alertGenerators) |
| | | { |
| | |
| | | */ |
| | | public CopyOnWriteArrayList<ConfigurableComponent> getConfigurableComponents() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigurableComponents"); |
| | | |
| | | return configurableComponents; |
| | | } |
| | |
| | | */ |
| | | public void addConfigurableComponent(ConfigurableComponent component) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addConfigurableComponent", |
| | | String.valueOf(component)); |
| | | |
| | | synchronized (configurableComponents) |
| | | { |
| | |
| | | */ |
| | | public boolean removeConfigurableComponent(ConfigurableComponent component) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeConfigurableComponent", |
| | | String.valueOf(component)); |
| | | |
| | | synchronized (configurableComponents) |
| | | { |
| | |
| | | */ |
| | | public CopyOnWriteArrayList<InvokableComponent> getInvokableComponents() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getInvokableComponents"); |
| | | |
| | | return invokableComponents; |
| | | } |
| | |
| | | */ |
| | | public void addInvokableComponent(InvokableComponent component) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addInvokableComponent", |
| | | String.valueOf(component)); |
| | | |
| | | synchronized (invokableComponents) |
| | | { |
| | |
| | | */ |
| | | public boolean removeInvokableComponent(InvokableComponent component) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeInvokableComponent", |
| | | String.valueOf(component)); |
| | | |
| | | synchronized (invokableComponents) |
| | | { |
| | |
| | | */ |
| | | public CopyOnWriteArrayList<MonitorProvider> getMonitorProviders() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMonitorProviders"); |
| | | |
| | | return monitorProviders; |
| | | } |
| | |
| | | */ |
| | | public void addMonitorProvider(MonitorProvider component) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addMonitorProvider", |
| | | String.valueOf(component)); |
| | | |
| | | synchronized (monitorProviders) |
| | | { |
| | |
| | | */ |
| | | public boolean removeMonitorProvider(MonitorProvider component) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeMonitorProvider", |
| | | String.valueOf(component)); |
| | | |
| | | synchronized (monitorProviders) |
| | | { |
| | |
| | | */ |
| | | private ConfigAttribute getConfigAttribute(String name) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigAttribute", |
| | | String.valueOf(name)); |
| | | |
| | | for (ConfigurableComponent component : configurableComponents) |
| | | { |
| | |
| | | */ |
| | | private Attribute getJmxAttribute(String name) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getJmxAttribute", String.valueOf(name)); |
| | | |
| | | String attributeName ; |
| | | String pendingString = ";" + OPTION_PENDING_VALUES ; |
| | |
| | | public Attribute getAttribute(String attributeName) |
| | | throws AttributeNotFoundException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAttribute"); |
| | | |
| | | // |
| | | // Get the jmx Client connection |
| | |
| | | } |
| | | catch (LDAPException e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_JMX_CANNOT_GET_ATTRIBUTE; |
| | | String message = getMessage(msgID, String.valueOf(attributeName), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_JMX_ATTR_NO_ATTR; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | javax.management.Attribute attribute, ConfigEntry configEntry) |
| | | throws AttributeNotFoundException, InvalidAttributeValueException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLdapAttributeFromJmx", String |
| | | .valueOf(attribute)); |
| | | |
| | | String name = attribute.getName() ; |
| | | // |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_JMX_ATTR_NO_ATTR; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | logError( |
| | | ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.MILD_ERROR, |
| | |
| | | public void setAttribute(javax.management.Attribute attribute) |
| | | throws AttributeNotFoundException, InvalidAttributeValueException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setAttribute", String.valueOf(attribute)); |
| | | |
| | | ConfigEntry configEntry; |
| | | ConfigEntry newConfigEntry ; |
| | |
| | | newConfigEntry = configEntry.duplicate(); |
| | | } catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_JMX_CANNOT_GET_CONFIG_ENTRY; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | */ |
| | | public AttributeList getAttributes(String[] attributes) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAttributes", String.valueOf(attributes)); |
| | | |
| | | // |
| | | // Get the jmx Client connection |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getAttributes", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | |
| | | // It's possible that this is a monitor attribute rather than a |
| | |
| | | */ |
| | | public AttributeList setAttributes(AttributeList attributes) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setAttributes", String.valueOf(attributes)); |
| | | |
| | | AttributeList setAttrs = new AttributeList(); |
| | | |
| | |
| | | newConfigEntry = configEntry.duplicate(); |
| | | } catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | logError( |
| | | ErrorLogCategory.CONFIGURATION, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException( |
| | | CLASS_NAME, "setAttribute", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.MILD_ERROR, |
| | | MSGID_CONFIG_JMX_ATTR_NO_ATTR, configEntryDN.toString(), |
| | |
| | | public Object invoke(String actionName, Object[] params, String[] signature) |
| | | throws MBeanException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "invoke", String.valueOf(actionName), |
| | | String.valueOf(params), String.valueOf(signature)); |
| | | |
| | | for (InvokableComponent component : invokableComponents) |
| | | { |
| | |
| | | } |
| | | catch (MBeanException me) |
| | | { |
| | | assert debugException(CLASS_NAME, "invoke", me); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, me); |
| | | } |
| | | |
| | | throw me; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "invoke", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | throw new MBeanException(e); |
| | | } |
| | |
| | | */ |
| | | public MBeanInfo getMBeanInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMBeanInfo"); |
| | | JmxClientConnection jmxClientConnection = getClientConnection(); |
| | | if (jmxClientConnection == null) |
| | | { |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | |
| | | import org.opends.server.types.AttributeValue; |
| | | import org.opends.server.types.ErrorLogCategory; |
| | | import org.opends.server.types.ErrorLogSeverity; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | |
| | | public class MultiChoiceConfigAttribute |
| | | extends ConfigAttribute |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.MultiChoiceConfigAttribute"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(allowedValues) |
| | | }); |
| | | |
| | | this.allowedValues = allowedValues; |
| | | |
| | |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction, |
| | | getValueSet(value)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(allowedValues), |
| | | String.valueOf(value) |
| | | }); |
| | | |
| | | this.allowedValues = allowedValues; |
| | | |
| | |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction, |
| | | getValueSet(values)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(allowedValues), |
| | | String.valueOf(values) |
| | | }); |
| | | |
| | | this.allowedValues = allowedValues; |
| | | |
| | |
| | | getValueSet(activeValues), (pendingValues != null), |
| | | getValueSet(pendingValues)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(allowedValues), |
| | | String.valueOf(activeValues), |
| | | String.valueOf(pendingValues) |
| | | }); |
| | | |
| | | this.allowedValues = allowedValues; |
| | | |
| | |
| | | */ |
| | | public String getDataType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDataType"); |
| | | |
| | | return "MultiChoice"; |
| | | } |
| | |
| | | */ |
| | | public AttributeSyntax getSyntax() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSyntax"); |
| | | |
| | | return DirectoryServer.getDefaultStringSyntax(); |
| | | } |
| | |
| | | public String activeValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValue"); |
| | | |
| | | if ((activeValues == null) || activeValues.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<String> activeValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValues"); |
| | | |
| | | return activeValues; |
| | | } |
| | |
| | | public String pendingValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValue"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public List<String> pendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public Set<String> allowedValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAllowedValues"); |
| | | |
| | | return allowedValues; |
| | | } |
| | |
| | | public void setValue(String value) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(value)); |
| | | |
| | | if ((value == null) || (value.length() == 0)) |
| | | { |
| | |
| | | public void setValues(List<String> values) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValues", String.valueOf(values)); |
| | | |
| | | |
| | | // First check if the set is empty and if that is allowed. |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(String value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(value)); |
| | | |
| | | LinkedHashSet<AttributeValue> valueSet = |
| | | new LinkedHashSet<AttributeValue>(1); |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(List<String> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(values)); |
| | | |
| | | if (values == null) |
| | | { |
| | |
| | | */ |
| | | public void applyPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyPendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | public boolean valueIsAcceptable(AttributeValue value, |
| | | StringBuilder rejectReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueIsAcceptable", String.valueOf(value), |
| | | "java.lang.StringBuilder"); |
| | | |
| | | |
| | | // Make sure that the value is non-empty. |
| | |
| | | boolean allowFailures) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stringsToValues", |
| | | String.valueOf(valueStrings), |
| | | String.valueOf(allowFailures)); |
| | | |
| | | if ((valueStrings == null) || valueStrings.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<String> activeValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValuesToStrings"); |
| | | |
| | | return activeValues; |
| | | } |
| | |
| | | */ |
| | | public List<String> pendingValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValuesToStrings"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | public ConfigAttribute getConfigAttribute(List<Attribute> attributeList) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | |
| | | ArrayList<String> activeValues = null; |
| | |
| | | */ |
| | | private javax.management.Attribute _toJMXAttribute(boolean pending) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "_toJMXAttribute"); |
| | | |
| | | List<String> requestedValues ; |
| | | String name ; |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttribute() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute"); |
| | | return _toJMXAttribute(false) ; |
| | | } |
| | | |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttributePending() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributePending"); |
| | | |
| | | return _toJMXAttribute(true) ; |
| | | } |
| | |
| | | */ |
| | | public void toJMXAttribute(AttributeList attributeList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | if (activeValues.size() > 0) |
| | | { |
| | |
| | | */ |
| | | public void toJMXAttributeInfo(List<MBeanAttributeInfo> attributeInfoList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributeInfo", |
| | | String.valueOf(attributeInfoList)); |
| | | |
| | | |
| | | if (isMultiValued()) |
| | |
| | | */ |
| | | public MBeanParameterInfo toJMXParameterInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXParameterInfo"); |
| | | |
| | | if (isMultiValued()) |
| | | { |
| | |
| | | public void setValue(javax.management.Attribute jmxAttribute) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(jmxAttribute)); |
| | | |
| | | Object value = jmxAttribute.getValue(); |
| | | if (value instanceof String) |
| | |
| | | } |
| | | catch (ConfigException ce) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", ce); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ce); |
| | | } |
| | | |
| | | throw ce; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_INVALID_STRING_VALUE; |
| | | String message = getMessage(msgID, getName(), String.valueOf(value), |
| | |
| | | */ |
| | | public ConfigAttribute duplicate() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "duplicate"); |
| | | |
| | | return new MultiChoiceConfigAttribute(getName(), getDescription(), |
| | | isRequired(), isMultiValued(), |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | |
| | | import org.opends.server.types.AttributeValue; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | |
| | | public class ReadOnlyConfigAttribute |
| | | extends ConfigAttribute |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.ReadOnlyConfigAttribute"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(name, description, false, isMultiValued, false); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(isMultiValued)); |
| | | |
| | | values = new ArrayList<String>(); |
| | | } |
| | |
| | | { |
| | | super(name, description, false, false, false, getValueSet(value)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(name), |
| | | String.valueOf(description), String.valueOf(value)); |
| | | |
| | | if (value == null) |
| | | { |
| | |
| | | { |
| | | super(name, description, false, true, false, getValueSet(values)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(name), |
| | | String.valueOf(description), |
| | | String.valueOf(values)); |
| | | |
| | | if (values == null) |
| | | { |
| | |
| | | */ |
| | | public String getDataType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDataType"); |
| | | |
| | | return "ReadOnly"; |
| | | } |
| | |
| | | */ |
| | | public AttributeSyntax getSyntax() |
| | | { |
| | | assert debugEnter(CLASS_NAME,"getSyntax"); |
| | | |
| | | return DirectoryServer.getDefaultStringSyntax(); |
| | | } |
| | |
| | | public String activeValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValue"); |
| | | |
| | | if ((values == null) || values.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<String> activeValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValues"); |
| | | |
| | | return values; |
| | | } |
| | |
| | | public String pendingValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValue"); |
| | | |
| | | return activeValue(); |
| | | } |
| | |
| | | */ |
| | | public List<String> pendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValues"); |
| | | |
| | | return activeValues(); |
| | | } |
| | |
| | | public void setValue(String value) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(value)); |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_READ_ONLY; |
| | | String message = getMessage(msgID, getName()); |
| | |
| | | public void setValues(List<String> values) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValues", String.valueOf(values)); |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_READ_ONLY; |
| | | String message = getMessage(msgID, getName()); |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(String value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(value)); |
| | | |
| | | LinkedHashSet<AttributeValue> valueSet = |
| | | new LinkedHashSet<AttributeValue>(1); |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(List<String> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(values)); |
| | | |
| | | if (values == null) |
| | | { |
| | |
| | | */ |
| | | public void applyPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyPendingValues"); |
| | | } |
| | | |
| | | |
| | |
| | | public boolean valueIsAcceptable(AttributeValue value, |
| | | StringBuilder rejectReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueIsAcceptable", String.valueOf(value), |
| | | "java.lang.StringBuilder"); |
| | | |
| | | rejectReason.append(getMessage(MSGID_CONFIG_ATTR_READ_ONLY, getName())); |
| | | return false; |
| | |
| | | boolean allowFailures) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stringsToValues", |
| | | String.valueOf(valueStrings), |
| | | String.valueOf(allowFailures)); |
| | | |
| | | if ((valueStrings == null) || valueStrings.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<String> activeValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValuesToStrings"); |
| | | |
| | | return values; |
| | | } |
| | |
| | | */ |
| | | public List<String> pendingValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValuesToStrings"); |
| | | |
| | | return activeValuesToStrings(); |
| | | } |
| | |
| | | public ConfigAttribute getConfigAttribute(List<Attribute> attributeList) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | // The attribute won't be present in the entry, so we'll just return a |
| | | // reference to this attribute. |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttribute() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute"); |
| | | |
| | | if (isMultiValued()) |
| | | { |
| | |
| | | public javax.management.Attribute toJMXAttributePending() |
| | | { |
| | | // Should never occurs !!! |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributePending"); |
| | | return toJMXAttribute(); |
| | | } |
| | | |
| | |
| | | */ |
| | | public void toJMXAttribute(AttributeList attributeList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | javax.management.Attribute jmxAttr = toJMXAttribute(); |
| | | attributeList.add(jmxAttr); |
| | |
| | | */ |
| | | public void toJMXAttributeInfo(List<MBeanAttributeInfo> attributeInfoList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributeInfo", |
| | | String.valueOf(attributeInfoList)); |
| | | |
| | | |
| | | if (isMultiValued()) |
| | |
| | | */ |
| | | public MBeanParameterInfo toJMXParameterInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXParameterInfo"); |
| | | |
| | | if (isMultiValued()) |
| | | { |
| | |
| | | public void setValue(javax.management.Attribute jmxAttribute) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(jmxAttribute)); |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_READ_ONLY; |
| | | String message = getMessage(msgID, getName()); |
| | |
| | | */ |
| | | public ConfigAttribute duplicate() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "duplicate"); |
| | | |
| | | return new ReadOnlyConfigAttribute(getName(), getDescription(), |
| | | activeValues()); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.config; |
| | | |
| | |
| | | import org.opends.server.types.AttributeValue; |
| | | import org.opends.server.types.ErrorLogCategory; |
| | | import org.opends.server.types.ErrorLogSeverity; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | | |
| | | |
| | | |
| | |
| | | public class StringConfigAttribute |
| | | extends ConfigAttribute |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.config.StringConfigAttribute"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction)); |
| | | |
| | | activeValues = new ArrayList<String>(); |
| | | pendingValues = activeValues; |
| | |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction, |
| | | getValueSet(value)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(value) |
| | | }); |
| | | |
| | | if (value == null) |
| | | { |
| | |
| | | super(name, description, isRequired, isMultiValued, requiresAdminAction, |
| | | getValueSet(values)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(values) |
| | | }); |
| | | |
| | | if (values == null) |
| | | { |
| | |
| | | getValueSet(activeValues), (pendingValues != null), |
| | | getValueSet(pendingValues)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | new String[] |
| | | { |
| | | String.valueOf(name), |
| | | String.valueOf(isRequired), |
| | | String.valueOf(isMultiValued), |
| | | String.valueOf(description), |
| | | String.valueOf(requiresAdminAction), |
| | | String.valueOf(activeValues), |
| | | String.valueOf(pendingValues) |
| | | }); |
| | | |
| | | if (activeValues == null) |
| | | { |
| | |
| | | */ |
| | | public String getDataType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDataType"); |
| | | |
| | | return "String"; |
| | | } |
| | |
| | | */ |
| | | public AttributeSyntax getSyntax() |
| | | { |
| | | assert debugEnter(CLASS_NAME,"getSyntax"); |
| | | |
| | | return DirectoryServer.getDefaultStringSyntax(); |
| | | } |
| | |
| | | public String activeValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValue"); |
| | | |
| | | if ((activeValues == null) || activeValues.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<String> activeValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValues"); |
| | | |
| | | return activeValues; |
| | | } |
| | |
| | | public String pendingValue() |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValue"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | */ |
| | | public List<String> pendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | public void setValue(String value) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(value)); |
| | | |
| | | if ((value == null) || (value.length() == 0)) |
| | | { |
| | |
| | | public void setValues(List<String> values) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValues", String.valueOf(values)); |
| | | |
| | | |
| | | // First check if the set is empty and if that is allowed. |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(String value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(value)); |
| | | |
| | | LinkedHashSet<AttributeValue> valueSet = |
| | | new LinkedHashSet<AttributeValue>(1); |
| | |
| | | */ |
| | | private static LinkedHashSet<AttributeValue> getValueSet(List<String> values) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getValueSet", String.valueOf(values)); |
| | | |
| | | if (values == null) |
| | | { |
| | |
| | | */ |
| | | public void applyPendingValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "applyPendingValues"); |
| | | |
| | | if (! hasPendingValues()) |
| | | { |
| | |
| | | public boolean valueIsAcceptable(AttributeValue value, |
| | | StringBuilder rejectReason) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueIsAcceptable", String.valueOf(value), |
| | | "java.lang.StringBuilder"); |
| | | |
| | | |
| | | // The only requirement is that the value is not null or empty. |
| | |
| | | boolean allowFailures) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stringsToValues", |
| | | String.valueOf(valueStrings), |
| | | String.valueOf(allowFailures)); |
| | | |
| | | if ((valueStrings == null) || valueStrings.isEmpty()) |
| | | { |
| | |
| | | */ |
| | | public List<String> activeValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "activeValuesToStrings"); |
| | | |
| | | return activeValues; |
| | | } |
| | |
| | | */ |
| | | public List<String> pendingValuesToStrings() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "pendingValuesToStrings"); |
| | | |
| | | if (hasPendingValues()) |
| | | { |
| | |
| | | public ConfigAttribute getConfigAttribute(List<Attribute> attributeList) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getConfigAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | |
| | | ArrayList<String> activeValues = null; |
| | |
| | | */ |
| | | private javax.management.Attribute _toJMXAttribute(boolean pending) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "_toJMXAttribute"); |
| | | List<String> requestedValues ; |
| | | String name ; |
| | | if (pending) |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttribute() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute"); |
| | | return _toJMXAttribute(false) ; |
| | | } |
| | | |
| | |
| | | */ |
| | | public javax.management.Attribute toJMXAttributePending() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributePending"); |
| | | return _toJMXAttribute(true) ; |
| | | } |
| | | |
| | |
| | | */ |
| | | public void toJMXAttribute(AttributeList attributeList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttribute", |
| | | String.valueOf(attributeList)); |
| | | |
| | | if (activeValues.size() > 0) |
| | | { |
| | |
| | | */ |
| | | public void toJMXAttributeInfo(List<MBeanAttributeInfo> attributeInfoList) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXAttributeInfo", |
| | | String.valueOf(attributeInfoList)); |
| | | |
| | | |
| | | if (isMultiValued()) |
| | |
| | | */ |
| | | public MBeanParameterInfo toJMXParameterInfo() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toJMXParameterInfo"); |
| | | |
| | | if (isMultiValued()) |
| | | { |
| | |
| | | public void setValue(javax.management.Attribute jmxAttribute) |
| | | throws ConfigException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(jmxAttribute)); |
| | | |
| | | Object value = jmxAttribute.getValue(); |
| | | if (value instanceof String) |
| | |
| | | } |
| | | catch (ConfigException ce) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", ce); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ce); |
| | | } |
| | | |
| | | throw ce; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "setValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ATTR_INVALID_STRING_VALUE; |
| | | String message = getMessage(msgID, getName(), String.valueOf(value), |
| | |
| | | */ |
| | | public ConfigAttribute duplicate() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "duplicate"); |
| | | |
| | | return new StringConfigAttribute(getName(), getDescription(), isRequired(), |
| | | isMultiValued(), requiresAdminAction(), |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | |
| | | |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.protocols.ldap.LDAPResultCode; |
| | | import org.opends.server.types.Control; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class AccountUsableRequestControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.AccountUsableRequestControl"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(OID_ACCOUNT_USABLE_CONTROL, false); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | super(oid, isCritical); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical)); |
| | | } |
| | | |
| | | |
| | |
| | | public static AccountUsableRequestControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | if (control.hasValue()) |
| | | { |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("AccountUsableRequestControl()"); |
| | | } |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.protocols.ldap.LDAPException; |
| | | import org.opends.server.protocols.ldap.LDAPResultCode; |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class AccountUsableResponseControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.AccountUsableResponseControl"; |
| | | |
| | | |
| | | |
| | |
| | | super(OID_ACCOUNT_USABLE_CONTROL, false, |
| | | encodeValue(secondsBeforeExpiration)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, |
| | | String.valueOf(secondsBeforeExpiration)); |
| | | |
| | | this.secondsBeforeExpiration = secondsBeforeExpiration; |
| | | |
| | |
| | | { |
| | | super(oid, isCritical, encodeValue(secondsBeforeExpiration)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(secondsBeforeExpiration)); |
| | | |
| | | this.secondsBeforeExpiration = secondsBeforeExpiration; |
| | | |
| | |
| | | encodeValue(isInactive, isReset, isExpired, remainingGraceLogins, |
| | | isLocked, secondsBeforeUnlock)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(isInactive), |
| | | String.valueOf(isReset), String.valueOf(isExpired), |
| | | String.valueOf(remainingGraceLogins), |
| | | String.valueOf(isLocked), |
| | | String.valueOf(secondsBeforeUnlock)); |
| | | |
| | | this.isInactive = isInactive; |
| | | this.isReset = isReset; |
| | |
| | | encodeValue(isInactive, isReset, isExpired, remainingGraceLogins, |
| | | isLocked, secondsBeforeUnlock)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(isInactive), String.valueOf(isReset), |
| | | String.valueOf(isExpired), |
| | | String.valueOf(remainingGraceLogins), |
| | | String.valueOf(isLocked), |
| | | String.valueOf(secondsBeforeUnlock)); |
| | | |
| | | this.isInactive = isInactive; |
| | | this.isReset = isReset; |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(isAvailable), |
| | | String.valueOf(secondsBeforeExpiration), |
| | | String.valueOf(isInactive), |
| | | String.valueOf(isReset), |
| | | String.valueOf(isExpired), |
| | | String.valueOf(remainingGraceLogins), |
| | | String.valueOf(isLocked), |
| | | String.valueOf(secondsBeforeUnlock)); |
| | | |
| | | this.isUsable = isAvailable; |
| | | this.secondsBeforeExpiration = secondsBeforeExpiration; |
| | |
| | | */ |
| | | private static ASN1OctetString encodeValue(int secondsBeforeExpiration) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeValue", |
| | | String.valueOf(secondsBeforeExpiration)); |
| | | |
| | | |
| | | ASN1Integer sbeInteger = new ASN1Integer(TYPE_SECONDS_BEFORE_EXPIRATION, |
| | |
| | | boolean isLocked, |
| | | int secondsBeforeUnlock) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeValue", String.valueOf(isInactive), |
| | | String.valueOf(isReset), String.valueOf(isExpired), |
| | | String.valueOf(remainingGraceLogins), |
| | | String.valueOf(isLocked), |
| | | String.valueOf(secondsBeforeUnlock)); |
| | | |
| | | |
| | | ArrayList<ASN1Element> elements = new ArrayList<ASN1Element>(5); |
| | |
| | | public static AccountUsableResponseControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | |
| | | ASN1OctetString controlValue = control.getValue(); |
| | |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", ae); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ae); |
| | | } |
| | | |
| | | int msgID = MSGID_ACCTUSABLERES_DECODE_ERROR; |
| | | int msgID = MSGID_ACCTUSABLERES_DECODE_ERROR; |
| | | String message = getMessage(msgID, ae.getMessage()); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, msgID, message); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ACCTUSABLERES_DECODE_ERROR; |
| | | int msgID = MSGID_ACCTUSABLERES_DECODE_ERROR; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | | throw new LDAPException(LDAPResultCode.PROTOCOL_ERROR, msgID, message); |
| | | } |
| | |
| | | */ |
| | | public boolean isUsable() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isAvailable"); |
| | | |
| | | return isUsable; |
| | | } |
| | |
| | | */ |
| | | public int getSecondsBeforeExpiration() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSecondsBeforeExpiration"); |
| | | |
| | | return secondsBeforeExpiration; |
| | | } |
| | |
| | | */ |
| | | public boolean isInactive() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isInactive"); |
| | | |
| | | return isInactive; |
| | | } |
| | |
| | | */ |
| | | public boolean isReset() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isReset"); |
| | | |
| | | return isReset; |
| | | } |
| | |
| | | */ |
| | | public boolean isExpired() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isExpired"); |
| | | |
| | | return isExpired; |
| | | } |
| | |
| | | */ |
| | | public int getRemainingGraceLogins() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRemainingGraceLogins"); |
| | | |
| | | return remainingGraceLogins; |
| | | } |
| | |
| | | */ |
| | | public boolean isLocked() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isLocked"); |
| | | |
| | | return isLocked; |
| | | } |
| | |
| | | */ |
| | | public int getSecondsBeforeUnlock() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSecondsBeforeUnlock"); |
| | | |
| | | return secondsBeforeUnlock; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("AccountUsableResponseControl(isUsable="); |
| | | buffer.append(isUsable); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.DN; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | | |
| | | |
| | | |
| | |
| | | public class AuthorizationIdentityResponseControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.AuthorizationIdentityResponseControl"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(OID_AUTHZID_RESPONSE, false, new ASN1OctetString()); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | super(OID_AUTHZID_RESPONSE, false, encodeValue(authorizationID)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(authorizationID)); |
| | | |
| | | this.authorizationID = authorizationID; |
| | | } |
| | |
| | | { |
| | | super(OID_AUTHZID_RESPONSE, false, encodeValue(authorizationDN)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(authorizationDN)); |
| | | |
| | | if (authorizationDN == null) |
| | | { |
| | |
| | | { |
| | | super(oid, isCritical, encodeValue(authorizationID)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(authorizationID)); |
| | | |
| | | this.authorizationID = authorizationID; |
| | | } |
| | |
| | | { |
| | | super(oid, isCritical, encodeValue(authorizationDN)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(authorizationDN)); |
| | | |
| | | if (authorizationDN == null) |
| | | { |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(authorizationID), |
| | | String.valueOf(encodedValue)); |
| | | |
| | | this.authorizationID = authorizationID; |
| | | } |
| | |
| | | */ |
| | | private static ASN1OctetString encodeValue(String authorizationID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeValue", |
| | | String.valueOf(authorizationID)); |
| | | |
| | | |
| | | return new ASN1OctetString(authorizationID); |
| | |
| | | */ |
| | | private static ASN1OctetString encodeValue(DN authorizationDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeValue", |
| | | String.valueOf(authorizationDN)); |
| | | |
| | | |
| | | if (authorizationDN == null) |
| | |
| | | Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | |
| | | if (! control.hasValue()) |
| | |
| | | */ |
| | | public String getAuthorizationID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAuthorizationID"); |
| | | |
| | | return authorizationID; |
| | | } |
| | |
| | | */ |
| | | public void setAuthorizationID(String authorizationID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setAuthorizationID", |
| | | String.valueOf(authorizationID)); |
| | | |
| | | this.authorizationID = authorizationID; |
| | | setValue(encodeValue(authorizationID)); |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("AuthorizationIdentityResponseControl(authzID=\""); |
| | | buffer.append(authorizationID); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.protocols.ldap.LDAPResultCode; |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class EntryChangeNotificationControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.EntryChangeNotificationControl"; |
| | | |
| | | |
| | | |
| | |
| | | super(OID_ENTRY_CHANGE_NOTIFICATION, false, |
| | | encodeValue(changeType, null, changeNumber)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(changeType), |
| | | String.valueOf(changeNumber)); |
| | | |
| | | this.changeType = changeType; |
| | | this.changeNumber = changeNumber; |
| | |
| | | super(OID_ENTRY_CHANGE_NOTIFICATION, false, |
| | | encodeValue(changeType, previousDN, changeNumber)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(changeType), |
| | | String.valueOf(previousDN), |
| | | String.valueOf(changeNumber)); |
| | | |
| | | this.changeType = changeType; |
| | | this.previousDN = previousDN; |
| | |
| | | { |
| | | super(oid, isCritical, encodeValue(changeType, previousDN, changeNumber)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(changeType), |
| | | String.valueOf(previousDN), |
| | | String.valueOf(changeNumber)); |
| | | |
| | | this.changeType = changeType; |
| | | this.previousDN = previousDN; |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(changeType), |
| | | String.valueOf(previousDN), |
| | | String.valueOf(changeNumber), |
| | | String.valueOf(encodedValue)); |
| | | |
| | | this.changeType = changeType; |
| | | this.previousDN = previousDN; |
| | |
| | | changeType, |
| | | DN previousDN, long changeNumber) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeValue", String.valueOf(changeType), |
| | | String.valueOf(previousDN), String.valueOf(changeNumber)); |
| | | |
| | | |
| | | ArrayList<ASN1Element> elements = |
| | |
| | | public static EntryChangeNotificationControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | |
| | | if (! control.hasValue()) |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ECN_CANNOT_DECODE_VALUE; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | */ |
| | | public PersistentSearchChangeType getChangeType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getChangeType"); |
| | | |
| | | return changeType; |
| | | } |
| | |
| | | */ |
| | | public void setChangeType(PersistentSearchChangeType changeType) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setChangeType", String.valueOf(changeType)); |
| | | |
| | | this.changeType = changeType; |
| | | |
| | |
| | | */ |
| | | public DN getPreviousDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPreviousDN"); |
| | | |
| | | return previousDN; |
| | | } |
| | |
| | | */ |
| | | public void setPreviousDN(DN previousDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setPreviousDN", String.valueOf(previousDN)); |
| | | |
| | | this.previousDN = previousDN; |
| | | |
| | |
| | | */ |
| | | public long getChangeNumber() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getChangeNumber"); |
| | | |
| | | return changeNumber; |
| | | } |
| | |
| | | */ |
| | | public void setChangeNumber(long changeNumber) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setChangeNumber", |
| | | String.valueOf(changeNumber)); |
| | | |
| | | this.changeNumber = changeNumber; |
| | | |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("EntryChangeNotificationControl(changeType="); |
| | | buffer.append(changeType.toString()); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.DirectoryException; |
| | | import org.opends.server.types.SearchFilter; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class LDAPAssertionRequestControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.LDAPAssertionRequestControl"; |
| | | |
| | | |
| | | |
| | |
| | | super(OID_LDAP_ASSERTION, isCritical, |
| | | new ASN1OctetString(rawFilter.encode().encode())); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(isCritical), |
| | | String.valueOf(rawFilter)); |
| | | |
| | | this.rawFilter = rawFilter; |
| | | |
| | |
| | | { |
| | | super(oid, isCritical, new ASN1OctetString(rawFilter.encode().encode())); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(rawFilter)); |
| | | |
| | | this.rawFilter = rawFilter; |
| | | |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(rawFilter), |
| | | String.valueOf(encodedValue)); |
| | | |
| | | this.rawFilter = rawFilter; |
| | | |
| | |
| | | public static LDAPAssertionRequestControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | if (! control.hasValue()) |
| | | { |
| | |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", ae); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ae); |
| | | } |
| | | |
| | | int msgID = MSGID_LDAPASSERT_INVALID_CONTROL_VALUE; |
| | | String message = getMessage(msgID, ae.getMessage()); |
| | |
| | | */ |
| | | public LDAPFilter getRawFilter() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRawFilter"); |
| | | |
| | | return rawFilter; |
| | | } |
| | |
| | | */ |
| | | public void setRawFilter(LDAPFilter rawFilter) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setRawFilter", String.valueOf(rawFilter)); |
| | | |
| | | this.rawFilter = rawFilter; |
| | | this.filter = null; |
| | |
| | | public SearchFilter getSearchFilter() |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSearchFilter"); |
| | | |
| | | if (filter == null) |
| | | { |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("LDAPAssertionRequestControl(criticality="); |
| | | buffer.append(isCritical()); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.ObjectClass; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class LDAPPostReadRequestControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.LDAPPostReadRequestControl"; |
| | | |
| | | |
| | | |
| | |
| | | super(OID_LDAP_READENTRY_POSTREAD, isCritical, |
| | | encodeAttributes(rawAttributes)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(isCritical), |
| | | String.valueOf(rawAttributes)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | { |
| | | super(oid, isCritical, encodeAttributes(rawAttributes)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(rawAttributes)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(rawAttributes), |
| | | String.valueOf(encodedValue)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | public static LDAPPostReadRequestControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | if (! control.hasValue()) |
| | | { |
| | |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", ae); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ae); |
| | | } |
| | | |
| | | int msgID = MSGID_POSTREADREQ_CANNOT_DECODE_VALUE; |
| | | String message = getMessage(msgID, ae.getMessage()); |
| | |
| | | private static ASN1OctetString encodeAttributes(LinkedHashSet<String> |
| | | rawAttributes) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeAttributes", |
| | | String.valueOf(rawAttributes)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public LinkedHashSet<String> getRawAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRawAttributes"); |
| | | |
| | | return rawAttributes; |
| | | } |
| | |
| | | */ |
| | | public void setRawAttributes(LinkedHashSet<String> rawAttributes) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setRawAttributes", |
| | | String.valueOf(rawAttributes)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public LinkedHashSet<AttributeType> getRequestedAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRequestedAttributes"); |
| | | |
| | | if (requestedAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public boolean returnAllUserAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "returnAllUserAttributes"); |
| | | |
| | | if (requestedAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public boolean returnAllOperationalAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "returnAllOperationalAttributes"); |
| | | |
| | | if (requestedAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public boolean allowsAttribute(AttributeType attrType) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "allowsAttribute", |
| | | String.valueOf(attrType)); |
| | | |
| | | if (requestedAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("LDAPPostReadRequestControl(criticality="); |
| | | buffer.append(isCritical()); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.protocols.ldap.SearchResultEntryProtocolOp; |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.SearchResultEntry; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class LDAPPostReadResponseControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.LDAPPostReadResponseControl"; |
| | | |
| | | |
| | | |
| | |
| | | super(OID_LDAP_READENTRY_POSTREAD, false, |
| | | encodeEntry(searchEntry)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(searchEntry)); |
| | | |
| | | this.searchEntry = searchEntry; |
| | | } |
| | |
| | | { |
| | | super(oid, isCritical, encodeEntry(searchEntry)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(searchEntry)); |
| | | |
| | | this.searchEntry = searchEntry; |
| | | } |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(searchEntry), |
| | | String.valueOf(encodedValue)); |
| | | |
| | | this.searchEntry = searchEntry; |
| | | } |
| | |
| | | public static LDAPPostReadResponseControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | if (! control.hasValue()) |
| | | { |
| | |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", ae); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ae); |
| | | } |
| | | |
| | | int msgID = MSGID_POSTREADRESP_CANNOT_DECODE_VALUE; |
| | | String message = getMessage(msgID, ae.getMessage()); |
| | |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", le); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, le); |
| | | } |
| | | |
| | | int msgID = MSGID_POSTREADRESP_CANNOT_DECODE_VALUE; |
| | | String message = getMessage(msgID, le.getMessage()); |
| | |
| | | */ |
| | | private static ASN1OctetString encodeEntry(SearchResultEntry searchEntry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeEntry", String.valueOf(searchEntry)); |
| | | |
| | | |
| | | SearchResultEntryProtocolOp protocolOp = |
| | |
| | | */ |
| | | public SearchResultEntry getSearchEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSearchEntry"); |
| | | |
| | | return searchEntry; |
| | | } |
| | |
| | | */ |
| | | public void setSearchEntry(SearchResultEntry searchEntry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setSearchEntry", |
| | | String.valueOf(searchEntry)); |
| | | |
| | | this.searchEntry = searchEntry; |
| | | setValue(encodeEntry(searchEntry)); |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("LDAPPostReadResponseControl(criticality="); |
| | | buffer.append(isCritical()); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.types.AttributeType; |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.ObjectClass; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class LDAPPreReadRequestControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.LDAPPreReadRequestControl"; |
| | | |
| | | |
| | | |
| | |
| | | super(OID_LDAP_READENTRY_PREREAD, isCritical, |
| | | encodeAttributes(rawAttributes)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(isCritical), |
| | | String.valueOf(rawAttributes)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | { |
| | | super(oid, isCritical, encodeAttributes(rawAttributes)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(rawAttributes)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(rawAttributes), |
| | | String.valueOf(encodedValue)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | public static LDAPPreReadRequestControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | if (! control.hasValue()) |
| | | { |
| | |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", ae); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ae); |
| | | } |
| | | |
| | | int msgID = MSGID_PREREADREQ_CANNOT_DECODE_VALUE; |
| | | String message = getMessage(msgID, ae.getMessage()); |
| | |
| | | private static ASN1OctetString encodeAttributes(LinkedHashSet<String> |
| | | rawAttributes) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeAttributes", |
| | | String.valueOf(rawAttributes)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public LinkedHashSet<String> getRawAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRawAttributes"); |
| | | |
| | | return rawAttributes; |
| | | } |
| | |
| | | */ |
| | | public void setRawAttributes(LinkedHashSet<String> rawAttributes) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setRawAttributes", |
| | | String.valueOf(rawAttributes)); |
| | | |
| | | if (rawAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public LinkedHashSet<AttributeType> getRequestedAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRequestedAttributes"); |
| | | |
| | | if (requestedAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public boolean returnAllUserAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "returnAllUserAttributes"); |
| | | |
| | | if (requestedAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public boolean returnAllOperationalAttributes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "returnAllOperationalAttributes"); |
| | | |
| | | if (requestedAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public boolean allowsAttribute(AttributeType attrType) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "allowsAttribute", |
| | | String.valueOf(attrType)); |
| | | |
| | | if (requestedAttributes == null) |
| | | { |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("LDAPPreReadRequestControl(criticality="); |
| | | buffer.append(isCritical()); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.protocols.ldap.SearchResultEntryProtocolOp; |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.SearchResultEntry; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class LDAPPreReadResponseControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.LDAPPreReadResponseControl"; |
| | | |
| | | |
| | | |
| | |
| | | super(OID_LDAP_READENTRY_PREREAD, false, |
| | | encodeEntry(searchEntry)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(searchEntry)); |
| | | |
| | | this.searchEntry = searchEntry; |
| | | } |
| | |
| | | { |
| | | super(oid, isCritical, encodeEntry(searchEntry)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(searchEntry)); |
| | | |
| | | this.searchEntry = searchEntry; |
| | | } |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(searchEntry), |
| | | String.valueOf(encodedValue)); |
| | | |
| | | this.searchEntry = searchEntry; |
| | | } |
| | |
| | | public static LDAPPreReadResponseControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | if (! control.hasValue()) |
| | | { |
| | |
| | | } |
| | | catch (ASN1Exception ae) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", ae); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, ae); |
| | | } |
| | | |
| | | int msgID = MSGID_PREREADRESP_CANNOT_DECODE_VALUE; |
| | | String message = getMessage(msgID, ae.getMessage()); |
| | |
| | | } |
| | | catch (LDAPException le) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", le); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, le); |
| | | } |
| | | |
| | | int msgID = MSGID_PREREADRESP_CANNOT_DECODE_VALUE; |
| | | String message = getMessage(msgID, le.getMessage()); |
| | |
| | | */ |
| | | private static ASN1OctetString encodeEntry(SearchResultEntry searchEntry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeEntry", String.valueOf(searchEntry)); |
| | | |
| | | |
| | | SearchResultEntryProtocolOp protocolOp = |
| | |
| | | */ |
| | | public SearchResultEntry getSearchEntry() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSearchEntry"); |
| | | |
| | | return searchEntry; |
| | | } |
| | |
| | | */ |
| | | public void setSearchEntry(SearchResultEntry searchEntry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setSearchEntry", |
| | | String.valueOf(searchEntry)); |
| | | |
| | | this.searchEntry = searchEntry; |
| | | setValue(encodeEntry(searchEntry)); |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("LDAPPreReadResponseControl(criticality="); |
| | | buffer.append(isCritical()); |
| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.types.AttributeType; |
| | | import org.opends.server.types.AttributeValue; |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class MatchedValuesControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.MatchedValuesControl"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(OID_MATCHED_VALUES, isCritical, encodeValue(filters)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(isCritical), |
| | | String.valueOf(filters)); |
| | | |
| | | this.filters = filters; |
| | | } |
| | |
| | | { |
| | | super(oid, isCritical, encodeValue(filters)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(isCritical), |
| | | String.valueOf(filters)); |
| | | |
| | | this.filters = filters; |
| | | } |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(isCritical), |
| | | String.valueOf(filters)); |
| | | |
| | | this.filters = filters; |
| | | } |
| | |
| | | private static ASN1OctetString |
| | | encodeValue(ArrayList<MatchedValuesFilter> filters) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeValue", |
| | | String.valueOf(filters)); |
| | | |
| | | |
| | | ArrayList<ASN1Element> elements = |
| | |
| | | public static MatchedValuesControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | |
| | | if (! control.hasValue()) |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_MATCHEDVALUES_CANNOT_DECODE_VALUE_AS_SEQUENCE; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | */ |
| | | public ArrayList<MatchedValuesFilter> getFilters() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getFilters"); |
| | | |
| | | return filters; |
| | | } |
| | |
| | | */ |
| | | public boolean valueMatches(AttributeType type, AttributeValue value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueMatches", String.valueOf(type), |
| | | String.valueOf(value)); |
| | | |
| | | for (MatchedValuesFilter f : filters) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueMatches", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | if (filters.size() == 1) |
| | | { |
| | |
| | | import org.opends.server.types.ConditionResult; |
| | | import org.opends.server.util.Validator; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.protocols.ldap.LDAPConstants.*; |
| | |
| | | */ |
| | | public class MatchedValuesFilter |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.MatchedValuesFilter"; |
| | | |
| | | |
| | | |
| | |
| | | List<ASN1OctetString> subAny, |
| | | ASN1OctetString subFinal, String matchingRuleID) |
| | | { |
| | | assert debugConstructor(CLASS_NAME, byteToHex(matchType), |
| | | String.valueOf(rawAttributeType), |
| | | String.valueOf(rawAssertionValue), |
| | | String.valueOf(subInitial), String.valueOf(subAny), |
| | | String.valueOf(subFinal), |
| | | String.valueOf(matchingRuleID)); |
| | | |
| | | |
| | | this.matchType = matchType; |
| | |
| | | String rawAttributeType, |
| | | ASN1OctetString rawAssertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createEqualityFilter", |
| | | String.valueOf(rawAttributeType), |
| | | String.valueOf(rawAssertionValue)); |
| | | |
| | | Validator.ensureNotNull(rawAttributeType,rawAssertionValue); |
| | | |
| | |
| | | AttributeType attributeType, |
| | | AttributeValue assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createEqualityFilter", |
| | | String.valueOf(attributeType), |
| | | String.valueOf(assertionValue)); |
| | | |
| | | |
| | | Validator.ensureNotNull(attributeType, assertionValue); |
| | |
| | | List<ASN1OctetString> subAny, |
| | | ASN1OctetString subFinal) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createSubstringsFilter", |
| | | String.valueOf(rawAttributeType), |
| | | String.valueOf(subInitial), String.valueOf(subAny), |
| | | String.valueOf(subFinal)); |
| | | |
| | | |
| | | Validator.ensureNotNull(rawAttributeType); |
| | |
| | | List<ASN1OctetString> subAny, |
| | | ASN1OctetString subFinal) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createSubstringsFilter", |
| | | String.valueOf(attributeType), String.valueOf(subInitial), |
| | | String.valueOf(subAny), String.valueOf(subFinal)); |
| | | |
| | | |
| | | Validator.ensureNotNull(attributeType); |
| | |
| | | String rawAttributeType, |
| | | ASN1OctetString rawAssertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createGreaterOrEqualFilter", |
| | | String.valueOf(rawAttributeType), |
| | | String.valueOf(rawAssertionValue)); |
| | | |
| | | Validator.ensureNotNull(rawAttributeType, rawAssertionValue); |
| | | |
| | |
| | | AttributeType attributeType, |
| | | AttributeValue assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createGreaterOrEqualFilter", |
| | | String.valueOf(attributeType), |
| | | String.valueOf(assertionValue)); |
| | | |
| | | Validator.ensureNotNull(attributeType, assertionValue); |
| | | |
| | |
| | | String rawAttributeType, |
| | | ASN1OctetString rawAssertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createLessOrEqualFilter", |
| | | String.valueOf(rawAttributeType), |
| | | String.valueOf(rawAssertionValue)); |
| | | |
| | | |
| | | Validator.ensureNotNull(rawAttributeType, rawAssertionValue); |
| | |
| | | AttributeType attributeType, |
| | | AttributeValue assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createLessOrEqualFilter", |
| | | String.valueOf(attributeType), |
| | | String.valueOf(assertionValue)); |
| | | |
| | | Validator.ensureNotNull(attributeType, assertionValue); |
| | | |
| | |
| | | */ |
| | | public static MatchedValuesFilter createPresentFilter(String rawAttributeType) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createPresentFilter", |
| | | String.valueOf(rawAttributeType)); |
| | | |
| | | Validator.ensureNotNull(rawAttributeType) ; |
| | | return new MatchedValuesFilter(PRESENT_TYPE, rawAttributeType, null, null, |
| | |
| | | public static MatchedValuesFilter createPresentFilter( |
| | | AttributeType attributeType) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createPresentFilter", |
| | | String.valueOf(attributeType)); |
| | | |
| | | Validator.ensureNotNull(attributeType); |
| | | String rawAttributeType = attributeType.getNameOrOID(); |
| | |
| | | String rawAttributeType, |
| | | ASN1OctetString rawAssertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createApproximateFilter", |
| | | String.valueOf(rawAttributeType), |
| | | String.valueOf(rawAssertionValue)); |
| | | |
| | | Validator.ensureNotNull(rawAttributeType,rawAssertionValue); |
| | | |
| | |
| | | AttributeType attributeType, |
| | | AttributeValue assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createApproximateFilter", |
| | | String.valueOf(attributeType), |
| | | String.valueOf(assertionValue)); |
| | | |
| | | |
| | | Validator.ensureNotNull(attributeType,assertionValue); |
| | |
| | | String matchingRuleID, |
| | | ASN1OctetString rawAssertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createExtensibleMatchFilter", |
| | | String.valueOf(rawAttributeType), |
| | | String.valueOf(matchingRuleID), |
| | | String.valueOf(rawAssertionValue)); |
| | | |
| | | Validator |
| | | .ensureNotNull(rawAttributeType, matchingRuleID, rawAssertionValue); |
| | |
| | | MatchingRule matchingRule, |
| | | AttributeValue assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createExtensibleMatchFilter", |
| | | String.valueOf(attributeType), |
| | | String.valueOf(matchingRule), |
| | | String.valueOf(assertionValue)); |
| | | |
| | | |
| | | Validator.ensureNotNull(attributeType, matchingRule, assertionValue); |
| | |
| | | public static MatchedValuesFilter createFromLDAPFilter(LDAPFilter filter) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "createFromLDAPFilter", |
| | | String.valueOf(filter)); |
| | | |
| | | switch (filter.getFilterType()) |
| | | { |
| | |
| | | */ |
| | | public ASN1Element encode() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encode"); |
| | | |
| | | |
| | | switch (matchType) |
| | |
| | | public static MatchedValuesFilter decode(ASN1Element element) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decode", String.valueOf(element)); |
| | | |
| | | |
| | | switch (element.getType()) |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "decode", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_MVFILTER_CANNOT_DECODE_AVA; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "decode", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_MVFILTER_CANNOT_DECODE_SUBSTRINGS; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "decode", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_MVFILTER_CANNOT_DECODE_PRESENT_TYPE; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "decode", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_MVFILTER_CANNOT_DECODE_EXTENSIBLE_MATCH; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | */ |
| | | public byte getMatchType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMatchType"); |
| | | |
| | | return matchType; |
| | | } |
| | |
| | | */ |
| | | public String getRawAttributeType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRawAttributeType"); |
| | | |
| | | return rawAttributeType; |
| | | } |
| | |
| | | */ |
| | | public void setRawAttributeType(String rawAttributeType) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setRawAttributeType", |
| | | String.valueOf(rawAttributeType)); |
| | | |
| | | this.rawAttributeType = rawAttributeType; |
| | | |
| | |
| | | */ |
| | | public AttributeType getAttributeType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAttributeType"); |
| | | |
| | | if (attributeType == null) |
| | | { |
| | |
| | | */ |
| | | public void setAttributeType(AttributeType attributeType) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setAttributeType", |
| | | String.valueOf(attributeType)); |
| | | |
| | | this.attributeType = attributeType; |
| | | |
| | |
| | | */ |
| | | public ASN1OctetString getRawAssertionValue() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRawAssertionValue"); |
| | | |
| | | return rawAssertionValue; |
| | | } |
| | |
| | | */ |
| | | public void setRawAssertionValue(ASN1OctetString rawAssertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setRawAssertionValue", |
| | | String.valueOf(rawAssertionValue)); |
| | | |
| | | this.rawAssertionValue = rawAssertionValue; |
| | | |
| | |
| | | */ |
| | | public AttributeValue getAssertionValue() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAssertionValue"); |
| | | |
| | | if (assertionValue == null) |
| | | { |
| | |
| | | */ |
| | | public void setAssertionValue(AttributeValue assertionValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setAssertionValue", |
| | | String.valueOf(assertionValue)); |
| | | |
| | | this.assertionValue = assertionValue; |
| | | |
| | |
| | | */ |
| | | public ASN1OctetString getSubInitialElement() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSubInitialElement"); |
| | | |
| | | return subInitial; |
| | | } |
| | |
| | | */ |
| | | public void setSubInitialElement(ASN1OctetString subInitial) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setSubInitialElement", |
| | | String.valueOf(subInitial)); |
| | | |
| | | this.subInitial = subInitial; |
| | | |
| | |
| | | */ |
| | | public ASN1OctetString getNormalizedSubInitialElement() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getNormalizedSubInitialElement"); |
| | | |
| | | if (normalizedSubInitial == null) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getNormalizedSubInitialElement", |
| | | e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public List<ASN1OctetString> getSubAnyElements() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSubAnyElements"); |
| | | |
| | | return subAny; |
| | | } |
| | |
| | | */ |
| | | public void setSubAnyElements(List<ASN1OctetString> subAny) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setSubAnyElements", String.valueOf(subAny)); |
| | | |
| | | this.subAny = subAny; |
| | | |
| | |
| | | */ |
| | | public List<ASN1OctetString> getNormalizedSubAnyElements() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getNormalizedSubAnyElements"); |
| | | |
| | | if (normalizedSubAny == null) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getNormalizedSubAnyElements", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | normalizedSubAny = null; |
| | | } |
| | |
| | | */ |
| | | public ASN1OctetString getSubFinalElement() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSubFinal"); |
| | | |
| | | return subFinal; |
| | | } |
| | |
| | | */ |
| | | public void setSubFinalElement(ASN1OctetString subFinal) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setSubFinalElement", |
| | | String.valueOf(subFinal)); |
| | | |
| | | this.subFinal = subFinal; |
| | | |
| | |
| | | */ |
| | | public ASN1OctetString getNormalizedSubFinalElement() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getNormalizedSubFinalElement"); |
| | | |
| | | if (normalizedSubFinal == null) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "getNormalizedSubFinalElement", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public String getMatchingRuleID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMatchingRuleID"); |
| | | |
| | | return matchingRuleID; |
| | | } |
| | |
| | | */ |
| | | public void setMatchingRuleID(String matchingRuleID) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setMatchingRuleID", |
| | | String.valueOf(matchingRuleID)); |
| | | |
| | | this.matchingRuleID = matchingRuleID; |
| | | |
| | |
| | | */ |
| | | public MatchingRule getMatchingRule() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMatchingRule"); |
| | | |
| | | if (matchingRule == null) |
| | | { |
| | |
| | | */ |
| | | public void setMatchingRule(MatchingRule matchingRule) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setMatchingRule", |
| | | String.valueOf(matchingRule)); |
| | | |
| | | this.matchingRule = matchingRule; |
| | | |
| | |
| | | */ |
| | | public ApproximateMatchingRule getApproximateMatchingRule() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getApproximateMatchingRule"); |
| | | |
| | | if (approximateMatchingRule == null) |
| | | { |
| | |
| | | */ |
| | | public EqualityMatchingRule getEqualityMatchingRule() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getEqualityMatchingRule"); |
| | | |
| | | if (equalityMatchingRule == null) |
| | | { |
| | |
| | | */ |
| | | public OrderingMatchingRule getOrderingMatchingRule() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getOrderingMatchingRule"); |
| | | |
| | | if (orderingMatchingRule == null) |
| | | { |
| | |
| | | */ |
| | | public SubstringMatchingRule getSubstringMatchingRule() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSubstringMatchingRule"); |
| | | |
| | | if (substringMatchingRule == null) |
| | | { |
| | |
| | | */ |
| | | public boolean valueMatches(AttributeType type, AttributeValue value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "valueMatches", String.valueOf(type), |
| | | String.valueOf(value)); |
| | | |
| | | |
| | | fullyDecode(); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueMatches", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | return false; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueMatches", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | return false; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueMatches", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | return false; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueMatches", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | return false; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueMatches", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | return false; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueMatches", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | return false; |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "valueMatches", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | return false; |
| | | } |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | switch (matchType) |
| | | { |
| opendj-sdk/opends/src/server/org/opends/server/controls/PagedResultsControl.java
opendj-sdk/opends/src/server/org/opends/server/controls/PasswordExpiredControl.java
opendj-sdk/opends/src/server/org/opends/server/controls/PasswordExpiringControl.java
opendj-sdk/opends/src/server/org/opends/server/controls/PasswordPolicyErrorType.java
opendj-sdk/opends/src/server/org/opends/server/controls/PasswordPolicyRequestControl.java
opendj-sdk/opends/src/server/org/opends/server/controls/PasswordPolicyResponseControl.java
opendj-sdk/opends/src/server/org/opends/server/controls/PasswordPolicyWarningType.java
opendj-sdk/opends/src/server/org/opends/server/controls/PersistentSearchChangeType.java
opendj-sdk/opends/src/server/org/opends/server/controls/PersistentSearchControl.java
opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV1Control.java
opendj-sdk/opends/src/server/org/opends/server/controls/ProxiedAuthV2Control.java
opendj-sdk/opends/src/server/org/opends/server/controls/package-info.java
opendj-sdk/opends/src/server/org/opends/server/core/AbandonOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/AbsoluteSubtreeSpecification.java
opendj-sdk/opends/src/server/org/opends/server/core/AccessControlConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/AddOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/AuthenticatedUsers.java
opendj-sdk/opends/src/server/org/opends/server/core/BackendConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/BindOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/CertificateMapperConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/CompareOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/CoreConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/CoreConstants.java
opendj-sdk/opends/src/server/org/opends/server/core/DefaultAccessControlProvider.java
opendj-sdk/opends/src/server/org/opends/server/core/DeleteOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServerShutdownHook.java
opendj-sdk/opends/src/server/org/opends/server/core/EntryCacheConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java
opendj-sdk/opends/src/server/org/opends/server/core/IdentityMapperConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/LockFileManager.java
opendj-sdk/opends/src/server/org/opends/server/core/LoggerConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/ModifyDNOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/ModifyOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/MonitorConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/Operation.java
opendj-sdk/opends/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicy.java
opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyConfig.java
opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/PasswordPolicyState.java
opendj-sdk/opends/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/PasswordValidatorConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/PersistentSearch.java
opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/RFC3672SubtreeSpecification.java
opendj-sdk/opends/src/server/org/opends/server/core/RelativeSubtreeSpecification.java
opendj-sdk/opends/src/server/org/opends/server/core/RootDNConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/SASLConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/SearchOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/ServerShutdownMonitor.java
opendj-sdk/opends/src/server/org/opends/server/core/SimpleSubtreeSpecification.java
opendj-sdk/opends/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperation.java
opendj-sdk/opends/src/server/org/opends/server/core/package-info.java
opendj-sdk/opends/src/server/org/opends/server/extensions/AnonymousSASLMechanismHandler.java
opendj-sdk/opends/src/server/org/opends/server/extensions/Base64PasswordStorageScheme.java
opendj-sdk/opends/src/server/org/opends/server/extensions/BlindTrustManagerProvider.java
opendj-sdk/opends/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
opendj-sdk/opends/src/server/org/opends/server/extensions/CancelExtendedOperation.java
opendj-sdk/opends/src/server/org/opends/server/extensions/CertificateValidationPolicy.java
opendj-sdk/opends/src/server/org/opends/server/extensions/ClearPasswordStorageScheme.java
opendj-sdk/opends/src/server/org/opends/server/extensions/ConfigFileHandler.java
opendj-sdk/opends/src/server/org/opends/server/extensions/DefaultEntryCache.java
opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5StateInfo.java
opendj-sdk/opends/src/server/org/opends/server/extensions/ErrorLogAccountStatusNotificationHandler.java
opendj-sdk/opends/src/server/org/opends/server/extensions/ExactMatchIdentityMapper.java
opendj-sdk/opends/src/server/org/opends/server/extensions/ExtensionsConstants.java
opendj-sdk/opends/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java
opendj-sdk/opends/src/server/org/opends/server/extensions/FIFOEntryCache.java
opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java
opendj-sdk/opends/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java
opendj-sdk/opends/src/server/org/opends/server/extensions/FilteredStaticGroupMemberList.java
opendj-sdk/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java
opendj-sdk/opends/src/server/org/opends/server/extensions/GSSAPIStateInfo.java
opendj-sdk/opends/src/server/org/opends/server/extensions/InternalConnectionSecurityProvider.java
opendj-sdk/opends/src/server/org/opends/server/extensions/JMXAlertHandler.java
opendj-sdk/opends/src/server/org/opends/server/extensions/LengthBasedPasswordValidator.java
opendj-sdk/opends/src/server/org/opends/server/extensions/MD5PasswordStorageScheme.java
opendj-sdk/opends/src/server/org/opends/server/extensions/NullConnectionSecurityProvider.java
opendj-sdk/opends/src/server/org/opends/server/extensions/NullKeyManagerProvider.java
opendj-sdk/opends/src/server/org/opends/server/extensions/NullTrustManagerProvider.java
opendj-sdk/opends/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java
opendj-sdk/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
opendj-sdk/opends/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java
opendj-sdk/opends/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SHA1PasswordStorageScheme.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedMD5PasswordStorageScheme.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA1PasswordStorageScheme.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA256PasswordStorageScheme.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA384PasswordStorageScheme.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SaltedSHA512PasswordStorageScheme.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SimpleStaticGroupMemberList.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SoftReferenceEntryCache.java
opendj-sdk/opends/src/server/org/opends/server/extensions/StartTLSExtendedOperation.java
opendj-sdk/opends/src/server/org/opends/server/extensions/StaticGroup.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
opendj-sdk/opends/src/server/org/opends/server/extensions/SubjectEqualsDNCertificateMapper.java
opendj-sdk/opends/src/server/org/opends/server/extensions/TLSCapableConnection.java
opendj-sdk/opends/src/server/org/opends/server/extensions/TLSConnectionSecurityProvider.java
opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
opendj-sdk/opends/src/server/org/opends/server/extensions/WhoAmIExtendedOperation.java
opendj-sdk/opends/src/server/org/opends/server/extensions/package-info.java
opendj-sdk/opends/src/server/org/opends/server/interop/LazyDN.java
opendj-sdk/opends/src/server/org/opends/server/loggers/Access.java
opendj-sdk/opends/src/server/org/opends/server/loggers/ActionType.java
opendj-sdk/opends/src/server/org/opends/server/loggers/AsyncronousLogPublisher.java
opendj-sdk/opends/src/server/org/opends/server/loggers/Debug.java (deleted)
opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryAccessLogger.java
opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryAuditLogger.java
opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryDebugLogger.java (deleted)
opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryErrorLogger.java
opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryFileFormatter.java
opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryFileHandler.java
opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryLogLevel.java
opendj-sdk/opends/src/server/org/opends/server/loggers/EncryptAction.java
opendj-sdk/opends/src/server/org/opends/server/loggers/Error.java
opendj-sdk/opends/src/server/org/opends/server/loggers/FileComparator.java
opendj-sdk/opends/src/server/org/opends/server/loggers/FileNamingPolicy.java
opendj-sdk/opends/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java
opendj-sdk/opends/src/server/org/opends/server/loggers/FixedTimeRotationPolicy.java
opendj-sdk/opends/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java
opendj-sdk/opends/src/server/org/opends/server/loggers/GZIPAction.java
opendj-sdk/opends/src/server/org/opends/server/loggers/InitializationErrorManager.java
opendj-sdk/opends/src/server/org/opends/server/loggers/LogCategory.java
opendj-sdk/opends/src/server/org/opends/server/loggers/LogErrorHandler.java
opendj-sdk/opends/src/server/org/opends/server/loggers/LogFileFilter.java
opendj-sdk/opends/src/server/org/opends/server/loggers/LogLevel.java
opendj-sdk/opends/src/server/org/opends/server/loggers/LogRecord.java
opendj-sdk/opends/src/server/org/opends/server/loggers/Logger.java
opendj-sdk/opends/src/server/org/opends/server/loggers/LoggerAlarmHandler.java
opendj-sdk/opends/src/server/org/opends/server/loggers/LoggerThread.java
opendj-sdk/opends/src/server/org/opends/server/loggers/MeteredStream.java
opendj-sdk/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
opendj-sdk/opends/src/server/org/opends/server/loggers/PostRotationAction.java
opendj-sdk/opends/src/server/org/opends/server/loggers/RetentionPolicy.java
opendj-sdk/opends/src/server/org/opends/server/loggers/RotationActionThread.java
opendj-sdk/opends/src/server/org/opends/server/loggers/RotationConfigUtil.java
opendj-sdk/opends/src/server/org/opends/server/loggers/RotationPolicy.java
opendj-sdk/opends/src/server/org/opends/server/loggers/SignatureAction.java
opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java
opendj-sdk/opends/src/server/org/opends/server/loggers/SizeBasedRotationPolicy.java
opendj-sdk/opends/src/server/org/opends/server/loggers/StartupDebugLogger.java (deleted)
opendj-sdk/opends/src/server/org/opends/server/loggers/StartupErrorLogger.java
opendj-sdk/opends/src/server/org/opends/server/loggers/TextLogFormatter.java
opendj-sdk/opends/src/server/org/opends/server/loggers/TextLogPublisher.java
opendj-sdk/opends/src/server/org/opends/server/loggers/TextWriter.java
opendj-sdk/opends/src/server/org/opends/server/loggers/TimeLimitRotationPolicy.java
opendj-sdk/opends/src/server/org/opends/server/loggers/TimeStampNaming.java
opendj-sdk/opends/src/server/org/opends/server/loggers/ZIPAction.java
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugErrorHandler.java
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogFormatter.java
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogRecord.java
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugStackTraceFormatter.java
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TraceConfiguration.java
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TraceSettings.java
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/Tracer.java
opendj-sdk/opends/src/server/org/opends/server/loggers/package-info.java
opendj-sdk/opends/src/server/org/opends/server/messages/CoreMessages.java
opendj-sdk/opends/src/server/org/opends/server/messages/JebMessages.java
opendj-sdk/opends/src/server/org/opends/server/messages/LoggerMessages.java
opendj-sdk/opends/src/server/org/opends/server/messages/MessageHandler.java
opendj-sdk/opends/src/server/org/opends/server/messages/PluginMessages.java
opendj-sdk/opends/src/server/org/opends/server/messages/UtilityMessages.java
opendj-sdk/opends/src/server/org/opends/server/messages/package-info.java
opendj-sdk/opends/src/server/org/opends/server/monitors/BackendMonitor.java
opendj-sdk/opends/src/server/org/opends/server/monitors/ConnectionHandlerMonitor.java
opendj-sdk/opends/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java
opendj-sdk/opends/src/server/org/opends/server/monitors/StackTraceMonitorProvider.java
opendj-sdk/opends/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java
opendj-sdk/opends/src/server/org/opends/server/monitors/TraditionalWorkQueueMonitor.java
opendj-sdk/opends/src/server/org/opends/server/monitors/VersionMonitorProvider.java
opendj-sdk/opends/src/server/org/opends/server/monitors/package-info.java
opendj-sdk/opends/src/server/org/opends/server/plugins/EntryUUIDPlugin.java
opendj-sdk/opends/src/server/org/opends/server/plugins/LDAPADListPlugin.java
opendj-sdk/opends/src/server/org/opends/server/plugins/LastModPlugin.java
opendj-sdk/opends/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
opendj-sdk/opends/src/server/org/opends/server/plugins/package-info.java
opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStack.java
opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileStackFrame.java
opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfileViewer.java
opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java
opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/ProfilerThread.java
opendj-sdk/opends/src/server/org/opends/server/plugins/profiler/package-info.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Boolean.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Constants.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Element.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Enumerated.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Exception.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Integer.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Long.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Null.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1OctetString.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Reader.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Sequence.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Set.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1Writer.java
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/package-info.java
opendj-sdk/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
opendj-sdk/opends/src/server/org/opends/server/protocols/internal/InternalConnectionHandler.java
opendj-sdk/opends/src/server/org/opends/server/protocols/internal/InternalSearchListener.java
opendj-sdk/opends/src/server/org/opends/server/protocols/internal/InternalSearchOperation.java
opendj-sdk/opends/src/server/org/opends/server/protocols/internal/package-info.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/Credential.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIClientSocketFactory.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/DirectoryRMIServerSocketFactory.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxConnectionHandler.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/OpendsJmxConnector.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/OpendsJmxPrincipal.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/OpendsRMIJRMPServerImpl.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/OpendsRmiServerSocketFactory.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiAuthenticator.java
opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/RmiConnector.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AbandonRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/AddResponseProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/BindResponseProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/IntermediateResponseProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPAttribute.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPConstants.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPControl.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPException.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPFilter.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPMessage.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPModification.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPResultCode.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPStatistics.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/ProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/SearchResultReferenceProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/UnbindRequestProtocolOp.java
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/package-info.java
opendj-sdk/opends/src/server/org/opends/server/protocols/package-info.java
opendj-sdk/opends/src/server/org/opends/server/schema/AbsoluteSubtreeSpecificationSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/AttributeTypeSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordExactEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/AuthPasswordSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/BinarySyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/BitStringEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/BitStringSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/BooleanEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/BooleanSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseExactEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseExactIA5EqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseExactIA5SubstringMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseExactOrderingMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseExactSubstringMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseIgnoreEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseIgnoreIA5EqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseIgnoreIA5SubstringMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseIgnoreListEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseIgnoreListSubstringMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseIgnoreOrderingMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CaseIgnoreSubstringMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/CertificateListSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/CertificatePairSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/CertificateSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/CountryStringSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/DITContentRuleSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/DeliveryMethodSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/DirectoryStringFirstComponentEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/DirectoryStringSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/DoubleMetaphoneApproximateMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/EnhancedGuideSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/FaxNumberSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/FaxSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/GuideSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/IA5StringSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/IntegerEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/IntegerFirstComponentEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/IntegerOrderingMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/IntegerSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/JPEGSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/KeywordEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/NameFormSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/NumericStringEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/NumericStringOrderingMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/NumericStringSubstringMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/NumericStringSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/OIDSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/ObjectClassSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/ObjectIdentifierEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/ObjectIdentifierFirstComponentEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/OctetStringEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/OctetStringOrderingMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/OctetStringSubstringMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/OctetStringSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/OtherMailboxSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/PostalAddressSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/PresentationAddressEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/PresentationAddressSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/PrintableString.java
opendj-sdk/opends/src/server/org/opends/server/schema/PrintableStringSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/ProtocolInformationEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/ProtocolInformationSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/RFC3672SubtreeSpecificationSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/RelativeSubtreeSpecificationSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/SchemaConstants.java
opendj-sdk/opends/src/server/org/opends/server/schema/SubstringAssertionSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/SupportedAlgorithmSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/TelephoneNumberEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/TelephoneNumberSubstringMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/TelephoneNumberSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/TeletexTerminalIdentifierSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/TelexNumberSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/UTCTimeSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/UUIDEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/UUIDOrderingMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/UUIDSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/UserPasswordExactEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/UserPasswordSyntax.java
opendj-sdk/opends/src/server/org/opends/server/schema/WordEqualityMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/schema/package-info.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/AckMessageList.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/AckMessageListComparator.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogAckMessageList.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogDBException.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogData.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogDbEnv.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogIterator.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogIteratorComparator.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogKey.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/MsgQueue.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ServerHandler.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ServerReader.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ServerWriter.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/UpdateComparator.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/package-info.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/common/ChangeNumber.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/common/ServerState.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/common/package-info.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/package-info.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/AttrInfo.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/AttrInfoWithOptions.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/FakeOperation.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/FakeOperationComparator.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/HeartbeatMonitor.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/HistKey.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/HistVal.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/Historical.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/HistoricalCsnOrderingMatchingRule.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/ListenerThread.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/ModifyFakeOperation.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/MultimasterSynchronization.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/PendingChange.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/SynchronizationMonitor.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/ValueInfo.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/plugin/package-info.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/AckMessage.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/AddContext.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/AddMsg.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/ChangelogStartMessage.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/DeleteContext.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/DeleteMsg.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/HeartbeatThread.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/ModifyContext.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/ModifyDNMsg.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/ModifyDnContext.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/ModifyMsg.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/OperationContext.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/ProtocolSession.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/ServerStartMessage.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/SocketSession.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/SynchronizationMessage.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/UpdateMessage.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/WindowMessage.java
opendj-sdk/opends/src/server/org/opends/server/synchronization/protocol/package-info.java
opendj-sdk/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java
opendj-sdk/opends/src/server/org/opends/server/tasks/BackupTask.java
opendj-sdk/opends/src/server/org/opends/server/tasks/ExportTask.java
opendj-sdk/opends/src/server/org/opends/server/tasks/ImportTask.java
opendj-sdk/opends/src/server/org/opends/server/tasks/RestartTaskThread.java
opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java
opendj-sdk/opends/src/server/org/opends/server/tasks/ShutdownTask.java
opendj-sdk/opends/src/server/org/opends/server/tasks/ShutdownTaskThread.java
opendj-sdk/opends/src/server/org/opends/server/tasks/TaskUtils.java
opendj-sdk/opends/src/server/org/opends/server/tools/BackUpDB.java
opendj-sdk/opends/src/server/org/opends/server/tools/ClientException.java
opendj-sdk/opends/src/server/org/opends/server/tools/ConfigureDS.java
opendj-sdk/opends/src/server/org/opends/server/tools/EncodePassword.java
opendj-sdk/opends/src/server/org/opends/server/tools/ExportLDIF.java
opendj-sdk/opends/src/server/org/opends/server/tools/ImportLDIF.java
opendj-sdk/opends/src/server/org/opends/server/tools/InstallDS.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompareOptions.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPConnection.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPConnectionException.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPConnectionOptions.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDeleteOptions.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModifyOptions.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPPasswordModify.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearchOptions.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPToolOptions.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPToolUtils.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDIFDiff.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDIFModify.java
opendj-sdk/opends/src/server/org/opends/server/tools/LDIFSearch.java
opendj-sdk/opends/src/server/org/opends/server/tools/ListBackends.java
opendj-sdk/opends/src/server/org/opends/server/tools/PromptTrustManager.java
opendj-sdk/opends/src/server/org/opends/server/tools/RestoreDB.java
opendj-sdk/opends/src/server/org/opends/server/tools/SSLConnectionException.java
opendj-sdk/opends/src/server/org/opends/server/tools/SSLConnectionFactory.java
opendj-sdk/opends/src/server/org/opends/server/tools/StopDS.java
opendj-sdk/opends/src/server/org/opends/server/tools/ToolConstants.java
opendj-sdk/opends/src/server/org/opends/server/tools/VerifyIndex.java
opendj-sdk/opends/src/server/org/opends/server/tools/WaitForFileDelete.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/AttributeValueTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/Branch.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/DNTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/EntryWriter.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/FileTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/FirstNameTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/GUIDTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/IfAbsentTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/IfPresentTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/LastNameTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/MakeLDIF.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/MakeLDIFException.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/MakeLDIFInputStream.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/MakeLDIFInputStreamThread.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/ParentDNTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/PresenceTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/RDNTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/RandomTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/SequentialTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/StaticTextTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/Tag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/TagResult.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/Template.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/TemplateFile.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/TemplateLine.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/TemplateValue.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/UnderscoreDNTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/UnderscoreParentDNTag.java
opendj-sdk/opends/src/server/org/opends/server/tools/package-info.java
opendj-sdk/opends/src/server/org/opends/server/types/AcceptRejectWarn.java
opendj-sdk/opends/src/server/org/opends/server/types/AccountStatusNotification.java
opendj-sdk/opends/src/server/org/opends/server/types/AccountStatusNotificationType.java
opendj-sdk/opends/src/server/org/opends/server/types/AddressMask.java
opendj-sdk/opends/src/server/org/opends/server/types/Attribute.java
opendj-sdk/opends/src/server/org/opends/server/types/AttributeType.java
opendj-sdk/opends/src/server/org/opends/server/types/AttributeUsage.java
opendj-sdk/opends/src/server/org/opends/server/types/AttributeValue.java
opendj-sdk/opends/src/server/org/opends/server/types/AttributeValueIterable.java
opendj-sdk/opends/src/server/org/opends/server/types/AuthenticationInfo.java
opendj-sdk/opends/src/server/org/opends/server/types/AuthenticationType.java
opendj-sdk/opends/src/server/org/opends/server/types/BackupConfig.java
opendj-sdk/opends/src/server/org/opends/server/types/BackupDirectory.java
opendj-sdk/opends/src/server/org/opends/server/types/BackupInfo.java
opendj-sdk/opends/src/server/org/opends/server/types/ByteString.java
opendj-sdk/opends/src/server/org/opends/server/types/ByteStringFactory.java
opendj-sdk/opends/src/server/org/opends/server/types/CacheEntry.java
opendj-sdk/opends/src/server/org/opends/server/types/CancelRequest.java
opendj-sdk/opends/src/server/org/opends/server/types/CancelResult.java
opendj-sdk/opends/src/server/org/opends/server/types/CancelledOperationException.java
opendj-sdk/opends/src/server/org/opends/server/types/CommonSchemaElements.java
opendj-sdk/opends/src/server/org/opends/server/types/ConfigChangeResult.java
opendj-sdk/opends/src/server/org/opends/server/types/Control.java
opendj-sdk/opends/src/server/org/opends/server/types/CryptoManager.java
opendj-sdk/opends/src/server/org/opends/server/types/DITContentRule.java
opendj-sdk/opends/src/server/org/opends/server/types/DITStructureRule.java
opendj-sdk/opends/src/server/org/opends/server/types/DN.java
opendj-sdk/opends/src/server/org/opends/server/types/DebugLogCategory.java (deleted)
opendj-sdk/opends/src/server/org/opends/server/types/DebugLogLevel.java
opendj-sdk/opends/src/server/org/opends/server/types/DebugLogSeverity.java (deleted)
opendj-sdk/opends/src/server/org/opends/server/types/DereferencePolicy.java
opendj-sdk/opends/src/server/org/opends/server/types/DirectoryConfig.java
opendj-sdk/opends/src/server/org/opends/server/types/DirectoryException.java
opendj-sdk/opends/src/server/org/opends/server/types/DisconnectReason.java
opendj-sdk/opends/src/server/org/opends/server/types/Entry.java
opendj-sdk/opends/src/server/org/opends/server/types/ErrorLogCategory.java
opendj-sdk/opends/src/server/org/opends/server/types/ErrorLogSeverity.java
opendj-sdk/opends/src/server/org/opends/server/types/ExistingFileBehavior.java
opendj-sdk/opends/src/server/org/opends/server/types/FilePermission.java
opendj-sdk/opends/src/server/org/opends/server/types/FilterType.java
opendj-sdk/opends/src/server/org/opends/server/types/HostPort.java
opendj-sdk/opends/src/server/org/opends/server/types/InitializationException.java
opendj-sdk/opends/src/server/org/opends/server/types/IntermediateResponse.java
opendj-sdk/opends/src/server/org/opends/server/types/InvokableMethod.java
opendj-sdk/opends/src/server/org/opends/server/types/LDAPURL.java
opendj-sdk/opends/src/server/org/opends/server/types/LDIFExportConfig.java
opendj-sdk/opends/src/server/org/opends/server/types/LDIFImportConfig.java
opendj-sdk/opends/src/server/org/opends/server/types/LockManager.java
opendj-sdk/opends/src/server/org/opends/server/types/LockType.java
opendj-sdk/opends/src/server/org/opends/server/types/MatchingRuleUse.java
opendj-sdk/opends/src/server/org/opends/server/types/MemberList.java
opendj-sdk/opends/src/server/org/opends/server/types/MembershipException.java
opendj-sdk/opends/src/server/org/opends/server/types/Modification.java
opendj-sdk/opends/src/server/org/opends/server/types/ModificationType.java
opendj-sdk/opends/src/server/org/opends/server/types/NameForm.java
opendj-sdk/opends/src/server/org/opends/server/types/NamedCharacterSet.java
opendj-sdk/opends/src/server/org/opends/server/types/NullOutputStream.java
opendj-sdk/opends/src/server/org/opends/server/types/ObjectClass.java
opendj-sdk/opends/src/server/org/opends/server/types/ObjectClassType.java
opendj-sdk/opends/src/server/org/opends/server/types/OperationType.java
opendj-sdk/opends/src/server/org/opends/server/types/RDN.java
opendj-sdk/opends/src/server/org/opends/server/types/RestoreConfig.java
opendj-sdk/opends/src/server/org/opends/server/types/ResultCode.java
opendj-sdk/opends/src/server/org/opends/server/types/SSLClientAuthPolicy.java
opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
opendj-sdk/opends/src/server/org/opends/server/types/SearchFilter.java
opendj-sdk/opends/src/server/org/opends/server/types/SearchResultEntry.java
opendj-sdk/opends/src/server/org/opends/server/types/SearchResultReference.java
opendj-sdk/opends/src/server/org/opends/server/types/SearchScope.java
opendj-sdk/opends/src/server/org/opends/server/types/SynchronizationProviderResult.java
opendj-sdk/opends/src/server/org/opends/server/types/WritabilityMode.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/InProgressOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PluginOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationAbandonOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationAddOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationBindOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationCompareOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationDeleteOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationExtendedOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationModifyDNOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationModifyOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationSearchOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostOperationUnbindOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostResponseAddOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostResponseBindOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostResponseCompareOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostResponseDeleteOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostResponseExtendedOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostResponseModifyDNOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostResponseModifyOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostResponseOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PostResponseSearchOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreOperationAddOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreOperationBindOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreOperationCompareOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreOperationDeleteOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreOperationExtendedOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreOperationModifyDNOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreOperationModifyOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreOperationOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseAbandonOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseAddOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseBindOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseCompareOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseDeleteOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseExtendedOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseModifyDNOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseModifyOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/PreParseUnbindOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/SearchEntrySearchOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/SearchReferenceSearchOperation.java
opendj-sdk/opends/src/server/org/opends/server/types/operation/package-info.java
opendj-sdk/opends/src/server/org/opends/server/util/AddChangeRecordEntry.java
opendj-sdk/opends/src/server/org/opends/server/util/Base64.java
opendj-sdk/opends/src/server/org/opends/server/util/ChangeOperationType.java
opendj-sdk/opends/src/server/org/opends/server/util/ChangeRecordEntry.java
opendj-sdk/opends/src/server/org/opends/server/util/DeleteChangeRecordEntry.java
opendj-sdk/opends/src/server/org/opends/server/util/EMailMessage.java
opendj-sdk/opends/src/server/org/opends/server/util/LDIFException.java
opendj-sdk/opends/src/server/org/opends/server/util/LDIFReader.java
opendj-sdk/opends/src/server/org/opends/server/util/LDIFWriter.java
opendj-sdk/opends/src/server/org/opends/server/util/ModifyChangeRecordEntry.java
opendj-sdk/opends/src/server/org/opends/server/util/ModifyDNChangeRecordEntry.java
opendj-sdk/opends/src/server/org/opends/server/util/MultiOutputStream.java
opendj-sdk/opends/src/server/org/opends/server/util/PasswordReader.java
opendj-sdk/opends/src/server/org/opends/server/util/ServerConstants.java
opendj-sdk/opends/src/server/org/opends/server/util/StaticUtils.java
opendj-sdk/opends/src/server/org/opends/server/util/TimeThread.java
opendj-sdk/opends/src/server/org/opends/server/util/Validator.java
opendj-sdk/opends/src/server/org/opends/server/util/args/Argument.java
opendj-sdk/opends/src/server/org/opends/server/util/args/ArgumentException.java
opendj-sdk/opends/src/server/org/opends/server/util/args/ArgumentParser.java
opendj-sdk/opends/src/server/org/opends/server/util/args/BooleanArgument.java
opendj-sdk/opends/src/server/org/opends/server/util/args/FileBasedArgument.java
opendj-sdk/opends/src/server/org/opends/server/util/args/IntegerArgument.java
opendj-sdk/opends/src/server/org/opends/server/util/args/MultiChoiceArgument.java
opendj-sdk/opends/src/server/org/opends/server/util/args/StringArgument.java
opendj-sdk/opends/src/server/org/opends/server/util/args/SubCommand.java
opendj-sdk/opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java
opendj-sdk/opends/src/server/org/opends/server/util/args/package-info.java
opendj-sdk/opends/src/server/org/opends/server/util/package-info.java
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java |