directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Directory Server v1.5: Reverse LDIF (page edited)
Date Wed, 26 Nov 2008 15:48:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence" />
    <style type="text/css">
    <!--
    body, p, td, table, tr, .bodytext, .stepfield {
	font-family: Verdana, arial, sans-serif;
	font-size: 11px;
	line-height: 16px;
	color: #000000;
	font-weight: normal;
}
#PageContent {
	text-align: left;
	background-color: #fff;
	padding: 0px;
	margin: 0px;
    padding-bottom:20px;
}
/*
** when this stylesheet is used for the Tiny MCE Wysiwyg editor's edit area, we can't
** use an id=PageContent or class=wiki-content, so we must
** set the body style to that used for PageContent, and p to that used for wiki-content.
*/

body {
	margin: 0px;
	padding: 0px;
	text-align: center;
    background-color: #f0f0f0;
}

@media print {

body {
    background-color: #fff;
}

}

.monospaceInput {
    font:12px monospace
}

.wiki-content p, .commentblock p {
    margin: 16px 0px 16px 0px;
    padding: 0px;
}

.wiki-content-preview {
    padding: 5px;
    border-left: 1px solid #3c78b5;
    border-right: 1px solid #3c78b5;
}

ul, ol {
    margin-top: 2px;
    margin-bottom: 2px;
    padding-top: 0px;
    padding-bottom: 0px;
}

pre {
    padding: 0px;
    margin-top: 5px;
    margin-left: 15px;
    margin-bottom: 5px;
    margin-right: 5px;
    text-align: left;
}

.helpheading {
    font-weight: bold;
    background-color: #D0D9BD;
        border-bottom: 1px solid #3c78b5;
        padding: 4px 4px 4px 4px;
        margin: 0px;
        margin-top: 10px;
}
.helpcontent {
        padding: 4px 4px 20px 4px;
    background-color: #f5f7f1;
}

.code {
 	border: 1px dashed #3c78b5;
    font-size: 11px;
	font-family: Courier;
    margin: 10px;
	line-height: 13px;
}

.focusedComment {
    background: #ffffce;
}

.commentBox, .focusedComment {
    padding: 10px;
    margin: 5px 0 5px 0;
    border: 1px #bbb solid;
}

.codeHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.codeContent {
    text-align: left;
    background-color: #f0f0f0;
    padding: 3px;
}

.preformatted {
 	border: 1px dashed #3c78b5;
    font-size: 11px;
	font-family: Courier;
    margin: 10px;
	line-height: 13px;
}

.preformattedHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.preformattedContent {
    background-color: #f0f0f0;
    padding: 3px;
}

.panel {
 	border: 1px dashed #3c78b5;
    margin: 10px;
    margin-top: 0px;
}

.panelHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.panelContent {
    background-color: #f0f0f0;
    padding: 5px;
}

.anonymousAlert {
    background-color: #f0f0f0;
 	border: 1px dashed red;
    font-size: 11px;
    padding: 10px 5px 10px 5px;
    margin: 4px;
	line-height: 13px;
}

.lockAlert {
    background-color: #f0f0f0;
    width: 50%;
 	border: 1px dashed red;
    font-size: 11px;
    padding: 10px 5px 10px 5px;
    margin: 4px;
	line-height: 13px;
}


.code-keyword {
  color: #000091;
  background-color: inherit;
}

.code-object {
  color: #910091;
  background-color: inherit;
}

.code-quote {
  color: #009100;
  background-color: inherit;
}

.code-comment {
  color: #808080;
  background-color: inherit;
}


.code-xml .code-keyword {
  color: inherit;
  font-weight: bold;
}

.code-tag {
  color: #000091;
  background-color: inherit;
}

.breadcrumbs {
    background-color: #f0f0f0;
 	border-color: #3c78b5;
	border-width: 1px 0px 1px 0px;
	border-style: solid;
    font-size: 11px;
    padding: 3px 0px 3px 0px;
}

.navmenu {
    border: 1px solid #ccc;
}

.menuheading {
    font-weight: bold;
    background-color: #f0f0f0;
 	border-bottom: 1px solid #3c78b5;
	padding: 4px 4px 2px 4px;
}

.menuitems {
	padding: 4px 4px 20px 4px;
}

.rightpanel {
    border-left: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

#helpheading {
    text-align: left;
    font-weight: bold;
    background-color: #D0D9BD;
 	border-bottom: 1px solid #3c78b5;
	padding: 4px 4px 4px 4px;
	margin: 0px;
}
#helpcontent {
	padding: 4px 4px 4px 4px;
    background-color: #f5f7f1;
}
.helptab-unselected {
    font-weight: bold;
	padding: 5px;
    background-color: #f5f7f1;
}
.helptab-selected {
    font-weight: bold;
    background-color: #D0D9BD;
	padding: 5px;
}
.helptabs {
    margin: 0px;
    background-color: #f5f7f1;
	padding: 5px;
}
.infopanel-heading {
    font-weight: bold;
	padding: 4px 0px 2px 0px;
}

.pagebody {
}

.pageheader {
	padding: 5px 5px 5px 0px;
 	border-bottom: 1px solid #3c78b5;
}

.pagetitle {
	font-size: 22px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
}

.newpagetitle {
    color: #ccc !important;
}

.steptitle {
	font-size: 18px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
	margin-bottom: 7px;
}

.substeptitle {
    font-size: 12px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
    margin: 2px 4px 4px 4px;
    padding: 2px 4px 1px 4px;
}

.stepdesc {
    font-family: Verdana, arial, sans-serif;
	font-size: 11px;
	line-height: 16px;
	font-weight: normal;
    color: #666666;
    margin-top: 7px;
    margin-bottom: 7px;
}

.steplabel {
    font-weight: bold;
    margin-right: 4px;
    color: black;
    float: left;
    width: 15%;
    text-align: right;
}

.stepfield {
    background: #f0f0f0;
    padding: 5px;
}

.submitButtons{
    margin-top:5px;
    text-align:right;
}

.formtitle {
	font-size: 12px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
}

.sectionbottom {
    border-bottom: 1px solid #3c78b5;
}

.topRow {
    border-top: 2px solid #3c78b5;
}

.tabletitle {
	font-size: 14px;
	font-weight: bold;
	font-family: Arial, sans-serif;
    padding: 3px 0px 2px 0px;
    margin: 8px 4px 2px 0px;
	color: #003366;
	border-bottom: 2px solid #3c78b5;
}
.pagesubheading {
    color: #666666;
    font-size: 10px;
    padding: 0px 0px 5px 0px;
}

HR {
	color: 3c78b5;
	height: 1;
}

A:link, A:visited, A:active, A:hover {
	color: #003366;
}

h1 A:link, h1 A:visited, h1 A:active {
	text-decoration: none;
}

h1 A:hover {
    border-bottom: 1px dotted #003366;
}

.wiki-content > :first-child, .commentblock > :first-child {
    margin-top: 3px;
}

.logocell {
    padding: 10px;
}

input {
	font-family: verdana, geneva, arial, sans-serif;
	font-size: 11px;
	color: #000000;
}

textarea, textarea.editor {
	font-family: verdana, geneva, arial, sans-serif;
	font-size: 11px;
	color: #333333;
}

/* use logoSpaceLink instead.
.spacenametitle {
	font: 21px/31px Impact, Arial, Helvetica;
    font-weight: 100;
    color: #999999;
	margin: 0px;
}
.spacenametitle img {
  margin: 0 0 -4px 0;
}
.spacenametitle a {
    text-decoration: none;
    color: #999999;
}
.spacenametitle a:visited {
    text-decoration: none;
    color: #999999;
}*/

.spacenametitle-printable {
	font: 20px/25px Impact, Arial, Helvetica;
    font-weight: 100;
    color: #999999;
	margin: 0px;
}
.spacenametitle-printable a {
    text-decoration: none;
    color: #999999;
}
.spacenametitle-printable a:visited {
    text-decoration: none;
    color: #999999;
}

.blogDate {
	font-weight: bold;
	text-decoration: none;
	color: black;
}

.blogSurtitle {
    background: #f0f0f0;
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.blogHeading {
    font-size: 20px;
    line-height: normal;
    font-weight: bold;
    padding: 0px;
    margin: 0px;
}

.blogHeading a {
   text-decoration: none;
   color: black;
}

.endsection {
	align: right;
	color: #666666;
	margin-top: 10px;
}
.endsectionleftnav {
	align: right;
	color: #666666;
	margin-top: 10px;
}

h1 {
	font-size: 24px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	color: #003366;
 	border-bottom: 1px solid #3c78b5;
	padding: 2px;
	margin: 36px 0px 4px 0px;
}

h2 {
	font-size: 18px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
 	border-bottom: 1px solid #3c78b5;
	padding: 2px;
	margin: 27px 0px 4px 0px;
}

h3 {
	font-size: 14px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 21px 0px 4px 0px;
}

h4 {
	font-size: 12px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 18px 0px 4px 0px;
}

h4.search {
	font-size: 12px;
	line-height: normal;
	font-weight: normal;
	background-color: #f0f0f0;
	padding: 4px;
	margin: 18px 0px 4px 0px;
}

h5 {
	font-size: 10px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 14px 0px 4px 0px;
}

h6 {
	font-size: 8px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 14px 0px 4px 0px;
}

.smallfont {
    font-size: 10px;
}
.descfont {
    font-size: 10px;
    color: #666666;
}
.smallerfont {
    font-size: 9px;
}
.smalltext {
    color: #666666;
    font-size: 10px;
}
.smalltext a {
    color: #666666;
}
.smalltext-blue {
    color: #3c78b5;
    font-size: 10px;
}
.surtitle {
    margin-left: 1px;
    margin-bottom: 5px;
    font-size: 14px;
    color: #666666;
}

/* css hack found here:  http://www.fo3nix.pwp.blueyonder.co.uk/tutorials/css/hacks/ */
.navItemOver { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #003366; cursor: hand; voice-family: '\'}\''; voice-family:inherit; cursor: pointer;}
.navItemOver a { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItemOver a:visited { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItemOver a:hover { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItem { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; }
.navItem a { color: #ffffff; text-decoration: none; }
.navItem a:hover { color: #ffffff; text-decoration: none; }
.navItem a:visited { color: #ffffff; text-decoration: none; }

div.padded { padding: 4px; }
div.thickPadded { padding: 10px; }
h3.macrolibrariestitle {
    margin: 0px 0px 0px 0px;
}

div.centered { text-align: center; margin: 10px; }
div.centered table {margin: 0px auto; text-align: left; }

.tableview table {
    margin: 0;
}

.tableview th {
    text-align: left;
    color: #003366;
    font-size: 12px;
    padding: 5px 0px 0px 5px;
    border-bottom: 2px solid #3c78b5;
}
.tableview td {
    text-align: left;
    border-color: #ccc;
    border-width: 0px 0px 1px 0px;
    border-style: solid;
    margin: 0;
    padding: 4px 10px 4px 5px;
}

.grid {
    margin: 2px 0px 5px 0px;
    border-collapse: collapse;
}
.grid th  {
    border: 1px solid #ccc;
    padding: 2px 4px 2px 4px;
    background: #f0f0f0;
    text-align: center;
}
.grid td  {
    border: 1px solid #ccc;
    padding: 3px 4px 3px 4px;
}
.gridHover {
	background-color: #f9f9f9;
}

td.infocell {
    background-color: #f0f0f0;
}
.label {
	font-weight: bold;
	color: #003366;
}

label {
	font-weight: bold;
	color: #003366;
}

.error {
	background-color: #fcc;
}

.errorBox {
	background-color: #fcc;
    border: 1px solid #c00;
    padding: 5px;
    margin: 5px;
}

.errorMessage {
	color: #c00;
}

.success {
	background-color: #dfd;
}

.successBox {
	background-color: #dfd;
    border: 1px solid #090;
    padding: 5px;
    margin-top:5px;
    margin-bottom:5px;
}

blockquote {
	padding-left: 10px;
	padding-right: 10px;
	margin-left: 5px;
	margin-right: 0px;
	border-left: 1px solid #3c78b5;
}

table.confluenceTable
{
    margin: 5px;
    border-collapse: collapse;
}

/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
table.confluenceTable td.confluenceTd
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
}

/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
table.confluenceTable th.confluenceTh
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
    background-color: #f0f0f0;
    text-align: center;
}

td.confluenceTd
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
}

th.confluenceTh
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
    background-color: #f0f0f0;
    text-align: center;
}

DIV.small {
	font-size: 9px;
}

H1.pagename {
	margin-top: 0px;
}

IMG.inline  {}

.loginform {
    margin: 5px;
    border: 1px solid #ccc;
}

/* The text how the "This is a preview" comment should be shown. */
.previewnote { text-align: center;
                font-size: 11px;
                    color: red; }

/* How the preview content should be shown */
.previewcontent { background: #E0E0E0; }

/* How the system messages should be shown (DisplayMessage.jsp) */
.messagecontent { background: #E0E0E0; }

/* How the "This page has been modified..." -comment should be shown. */
.conflictnote { }

.createlink {
    color: maroon;
}
a.createlink {
    color: maroon;
}
.templateparameter {
    font-size: 9px;
    color: darkblue;
}

.diffadded {
    background: #ddffdd;
    padding: 1px 1px 1px 4px;
	border-left: 4px solid darkgreen;
}
.diffdeleted {
    color: #999;
    background: #ffdddd;
    padding: 1px 1px 1px 4px;
	border-left: 4px solid darkred;
}
.diffnochange {
    padding: 1px 1px 1px 4px;
	border-left: 4px solid lightgrey;
}
.differror {
    background: brown;
}
.diff {
    font-family: lucida console, courier new, fixed-width;
	font-size: 12px;
	line-height: 14px;
}
.diffaddedchars {
    background-color:#99ff99;
    font-weight:bolder;
}
.diffremovedchars {
    background-color:#ff9999;
    text-decoration: line-through;
    font-weight:bolder;
}

.greybackground {
    background: #f0f0f0
}

.greybox {
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.borderedGreyBox {
    border: 1px solid #cccccc;
    background-color: #f0f0f0;
    padding: 10px;
}

.greyboxfilled {
 	border: 1px solid #ddd;
    background: #f0f0f0;
    padding: 3px;
	margin: 1px 1px 10px 1px;
}

.navBackgroundBox {
    padding: 5px 5px 5px 5px;
    font-size: 22px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: white;
    background: #3c78b5;
    text-decoration: none;
}

.previewBoxTop {
	background-color: #f0f0f0;
    border-width: 1px 1px 0px 1px;
    border-style: solid;
    border-color: #3c78b5;
    padding: 5px;
    margin: 5px 0px 0px 0px;
    text-align: center;
}
.previewContent {
    background-color: #fff;
 	border-color: #3c78b5;
	border-width: 0px 1px 0px 1px;
	border-style: solid;
	padding: 10px;
	margin: 0px;
}
.previewBoxBottom {
	background-color: #f0f0f0;
    border-width: 0px 1px 1px 1px;
    border-style: solid;
    border-color: #3c78b5;
    padding: 5px;
    margin: 0px 0px 5px 0px;
    text-align: center;
}

.functionbox {
    background-color: #f0f0f0;
 	border: 1px solid #3c78b5;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.functionbox-greyborder {
    background-color: #f0f0f0;
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.search-highlight {
    background-color: #ffffcc;
}

/* normal (white) background */
.rowNormal {
    background-color: #ffffff;
 }

/* alternate (pale yellow) background */
.rowAlternate {
    background-color: #f7f7f7;
}

/* used in the list attachments table */
.rowAlternateNoBottomColor {
    background-color: #f7f7f7;
}

.rowAlternateNoBottomNoColor {
}

.rowAlternateNoBottomColor td {
    border-bottom: 0px;
}

.rowAlternateNoBottomNoColor td {
    border-bottom: 0px;
}

/* row highlight (grey) background */
.rowHighlight {
    background-color: #f0f0f0;

}

TD.greenbar {FONT-SIZE: 2px; BACKGROUND: #00df00; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
TD.redbar {FONT-SIZE: 2px; BACKGROUND: #df0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
TD.darkredbar {FONT-SIZE: 2px; BACKGROUND: #af0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }

TR.testpassed {FONT-SIZE: 2px; BACKGROUND: #ddffdd; PADDING: 0px; }
TR.testfailed {FONT-SIZE: 2px; BACKGROUND: #ffdddd; PADDING: 0px; }

.toolbar  {
    margin: 0px;
    border-collapse: collapse;
}

.toolbar td  {
    border: 1px solid #ccc;
    padding: 2px 2px 2px 2px;
    color: #ccc;
}

td.noformatting {
    border-width: 0px;
    border-style: none;
    text-align: center;
	padding: 0px;
}

.commentblock {
    margin: 12px 0 12px 0;
}

/*
 * Divs displaying the license information, if necessary.
 */
.license-eval, .license-none, .license-nonprofit {
    border-top: 1px solid #bbbbbb;
    text-align: center;
    font-size: 10px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}

.license-eval, .license-none {
    background-color: #ffcccc;
}

.license-eval b, .license-none b {
    color: #990000
}

.license-nonprofit {
    background-color: #ffffff;
}

/*
 * The shadow at the bottom of the page between the main content and the
 * "powered by" section.
 */
.bottomshadow {
    height: 12px;
    background-image: url("$req.contextPath/images/border/border_bottom.gif");
    background-repeat: repeat-x;
}

/*
 * Styling of the operations box
 */
.navmenu .operations li, .navmenu .operations ul {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}

.navmenu .operations ul {
    margin-bottom: 9px;
}

.navmenu .label {
    font-weight: inherit;
}

/*
 * Styling of ops as a toolbar
 */
.toolbar div {
    display: none;
}

.toolbar .label {
    display: none;
}

.toolbar .operations {
    display: block;
}

.toolbar .operations ul {
    display: inline;
    list-style: none;
    margin-left: 10px;
    padding-left: 0;
}

.toolbar .operations li {
    list-style: none;
    display: inline;
}

/* list page navigational tabs */
#foldertab {
padding: 3px 0px 3px 8px;
margin-left: 0;
border-bottom: 1px solid #3c78b5;
font: bold 11px Verdana, sans-serif;
}

#foldertab li {
list-style: none;
margin: 0;
display: inline;
}

#foldertab li a {
padding: 3px 0.5em;
margin-left: 3px;
border: 1px solid #3c78b5;
border-bottom: none;
background: #3c78b5;
text-decoration: none;
}

#foldertab li a:link { color: #ffffff; }
#foldertab li a:visited { color: #ffffff; }

#foldertab li a:hover {
color: #ffffff;
background: #003366;
border-color: #003366;
}

#foldertab li a.current {
background: white;
border-bottom: 1px solid white;
color: black;
}

#foldertab li a.current:link { color: black; }
#foldertab li a.current:visited { color: black; }
#foldertab li a.current:hover {
background: white;
border-bottom: 1px solid white;
color: black;
}

/* alphabet list */
ul#squaretab {
margin-left: 0;
padding-left: 0;
white-space: nowrap;
font: bold 8px Verdana, sans-serif;
}

#squaretab li {
display: inline;
list-style-type: none;
}

#squaretab a {
padding: 2px 6px;
border: 1px solid #3c78b5;
}

#squaretab a:link, #squaretab a:visited {
color: #fff;
background-color: #3c78b5;
text-decoration: none;
}

#squaretab a:hover {
color: #ffffff;
background-color: #003366;
border-color: #003366;
text-decoration: none;
}

#squaretab li a#current {
background: white;
color: black;
}

.blogcalendar * {
    font-family:verdana, arial, sans-serif;
    font-size:x-small;
    font-weight:normal;
    line-height:140%;
    padding:2px;
}


table.blogcalendar {
    border: 1px solid #3c78b5;
}

.blogcalendar th.calendarhead, a.calendarhead {
    font-size:x-small;
    font-weight:bold;
    padding:2px;
    text-transform:uppercase;
    background-color: #3c78b5;
    color: #ffffff;
    letter-spacing: .3em;
    text-transform: uppercase;
}

.calendarhead:visited {color: white;}
.calendarhead:active {color: white;}
.calendarhead:hover {color: white;}

.blogcalendar th {
    font-size:x-small;
    font-weight:bold;
    padding:2px;
    background-color:#f0f0f0;
}

.blogcalendar td {
    font-size:x-small;
    font-weight:normal;
}

.searchGroup { padding: 0 0 10px 0; background: #f0f0f0; }
.searchGroupHeading { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; padding: 2px 4px 1px 4px; }
.searchItem { padding: 1px 4px 1px 4px; }
.searchItemSelected { padding: 1px 4px 1px 4px; font-weight: bold; background: #ddd; }

/* permissions page styles */
.permissionHeading {
    border-bottom: #bbb; border-width: 0 0 1px 0; border-style: solid; font-size: 16px; text-align: left;
}
.permissionTab {
    border-width: 0 0 0 1px; border-style: solid; background: #3c78b5; color: #ffffff; font-size: 10px;
}
.permissionSuperTab {
    border-width: 0 0 0 1px; border-style: solid; background: #003366; color: #ffffff;
}
.permissionCell {
    border-left: #bbb; border-width: 0 0 0 1px; border-style: solid;
}

/* warning panel */
.warningPanel { background: #FFFFCE; border:#F0C000 1px solid; padding: 8px; margin: 10px; }
/* alert panel */
.alertPanel { background: #FFCCCC; border:#C00 1px solid; padding: 8px; margin: 10px; }
/* info panel */
.infoPanel { background: #D8E4F1; border:#3c78b5 1px solid; padding: 8px; margin: 10px; }

/* side menu highlighting (e.g. space content screen) */
.optionPadded { padding: 2px; }
.optionSelected { background-color: #ffffcc; padding: 2px; border: 1px solid #ddd; margin: -1px; }
.optionSelected a { font-weight: bold; text-decoration: none; color: black; }

/* information macros */
.noteMacro { border-style: solid; border-width: 1px; border-color: #F0C000; background-color: #FFFFCE; text-align:left; margin-top: 5px; margin-bottom: 5px}
.warningMacro { border-style: solid; border-width: 1px; border-color: #c00; background-color: #fcc; text-align:left; margin-top: 5px; margin-bottom: 5px}
.infoMacro { border-style: solid; border-width: 1px; border-color: #3c78b5; background-color: #D8E4F1; text-align:left; margin-top: 5px; margin-bottom: 5px}
.tipMacro { border-style: solid; border-width: 1px; border-color: #090; background-color: #dfd; text-align:left; margin-top: 5px; margin-bottom: 5px}
.informationMacroPadding { padding: 5px 0 0 5px; }

table.infoMacro td, table.warningMacro td, table.tipMacro td, table.noteMacro td, table.sectionMacro td {
    border: none;
}

table.sectionMacroWithBorder td.columnMacro { border-style: dashed; border-width: 1px; border-color: #cccccc;}

.pagecontent
{
    padding: 10px;
    text-align: left;
}

/* styles for links in the top bar */
.topBarDiv a:link {color: #ffffff;}
.topBarDiv a:visited {color: #ffffff;}
.topBarDiv a:active {color: #ffffff;}
.topBarDiv a:hover {color: #ffffff;}
.topBarDiv {color: #ffffff;}

.topBar {
    background-color: #003366;
}


/* styles for extended operations */
.greyLinks a:link {color: #666666; text-decoration:underline;}
.greyLinks a:visited {color: #666666; text-decoration:underline;}
.greyLinks a:active {color: #666666; text-decoration:underline;}
.greyLinks a:hover {color: #666666; text-decoration:underline;}
.greyLinks {color: #666666; display:block; padding: 10px}

.logoSpaceLink {color: #999999; text-decoration: none}
.logoSpaceLink a:link {color: #999999; text-decoration: none}
.logoSpaceLink a:visited {color: #999999; text-decoration: none}
.logoSpaceLink a:active {color: #999999; text-decoration: none}
.logoSpaceLink a:hover {color: #003366; text-decoration: none}

/* basic panel (basicpanel.vmd) style */
.basicPanelContainer {border: 1px solid #3c78b5; margin-top: 2px; margin-bottom: 8px; width: 100%}
.basicPanelTitle {padding: 5px; margin: 0px; background-color: #f0f0f0; color: black; font-weight: bold;}
.basicPanelBody {padding: 5px; margin: 0px}

.separatorLinks a:link {color: white}
.separatorLinks a:visited {color: white}
.separatorLinks a:active {color: white}

.greynavbar {background-color: #f0f0f0; border-top: 1px solid #3c78b5; margin-top: 2px}

div.headerField {
    float: left;
    width: auto;
    height: 100%;
}

.headerFloat {
    margin-left: auto;
    width: 50%;
}

.headerFloatLeft {
    float: left;
    margin-right: 20px;
    margin-bottom: 10px;
}

#headerRow {
    padding: 10px;
}

div.license-personal {
   background-color: #003366;
   color: #ffffff;
}

div.license-personal a {
   color: #ffffff;
}

.greyFormBox {
    border: 1px solid #cccccc;
    padding: 5px;
}

/* IE automatically adds a margin before and after form tags. Use this style to remove that */
.marginlessForm {
    margin: 0px;
}

.openPageHighlight {
    background-color: #ffffcc;
    padding: 2px;
    border: 1px solid #ddd;
}

.editPageInsertLinks, .editPageInsertLinks a
{
    color: #666666;
    font-weight: bold;
    font-size: 10px;
}

/* Style for label heatmap. */
.top10 a {
    font-weight: bold;
    font-size: 2em;
    color: #003366;
}
.top25 a {
    font-weight: bold;
    font-size: 1.6em;
    color: #003366;
}
.top50 a {
    font-size: 1.4em;
    color: #003366;
}
.top100 a {
    font-size: 1.2em;
    color: #003366;
}

.heatmap {
    list-style:none;
    width: 95%;
    margin: 0px auto;
}

.heatmap a {
    text-decoration:none;
}

.heatmap a:hover {
    text-decoration:underline;
}

.heatmap li {
    display: inline;
}

.minitab {
padding: 3px 0px 3px 8px;
margin-left: 0;
margin-top: 1px;
margin-bottom: 0px;
border-bottom: 1px solid #3c78b5;
font: bold 9px Verdana, sans-serif;
text-decoration: none;
float:none;
}
.selectedminitab {
padding: 3px 0.5em;
margin-left: 3px;
margin-top: 1px;
border: 1px solid #3c78b5;
background: white;
border-bottom: 1px solid white;
color: #000000;
text-decoration: none;
}
.unselectedminitab {
padding: 3px 0.5em;
margin-left: 3px;
margin-top: 1px;
border: 1px solid #3c78b5;
border-bottom: none;
background: #3c78b5;
color: #ffffff;
text-decoration: none;
}

a.unselectedminitab:hover {
color: #ffffff;
background: #003366;
border-color: #003366;
}

a.unselectedminitab:link { color: white; }
a.unselectedminitab:visited { color: white; }

a.selectedminitab:link { color: black; }
a.selectedminitab:visited { color: black; }

.linkerror { background-color: #fcc;}

a.labelOperationLink:link {text-decoration: underline}
a.labelOperationLink:active {text-decoration: underline}
a.labelOperationLink:visited {text-decoration: underline}
a.labelOperationLink:hover {text-decoration: underline}

a.newLabel:link {background-color: #ddffdd}
a.newLabel:active {background-color: #ddffdd}
a.newLabel:visited {background-color: #ddffdd}
a.newLabel:hover {background-color: #ddffdd}

ul.square {list-style-type: square}

.inline-control-link {
    background: #ffc;
    font-size: 9px;
    color: #666;
    padding: 2px;
    text-transform: uppercase;
    text-decoration: none;
}


.inline-control-link a:link {text-decoration: none}
.inline-control-link a:active {text-decoration: none}
.inline-control-link a:visited {text-decoration: none}
.inline-control-link a:hover {text-decoration: none}

.inline-control-link {
    background: #ffc;
    font-size: 9px;
    color: #666;
    padding: 2px;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}

div.auto_complete {
    width: 350px;
    background: #fff;
}
div.auto_complete ul {
    border: 1px solid #888;
    margin: 0;
    padding: 0;
    width: 100%;
    list-style-type: none;
}
div.auto_complete ul li {
    margin: 0;
    padding: 3px;
}
div.auto_complete ul li.selected {
    background-color: #ffb;
}
div.auto_complete ul strong.highlight {
    color: #800;
    margin: 0;
    padding: 0;
}

/******* Edit Page Styles *******/
.toogleFormDiv{
    border:1px solid #A7A6AA;
    background-color:white;
    padding:5px;
    margin-top: 5px;
}

.toogleInfoDiv{
    border:1px solid #A7A6AA;
    background-color:white;
    display:none;
    padding:5px;
    margin-top: 10px;
}

.inputSection{
    margin-bottom:20px;
}

#editBox{
   border:1px solid lightgray;
   background-color:#F0F0F0;
}

/******* Left Navigation Theme Styles ********/
.leftnav li a {
    text-decoration:none;
    color:white;
    margin:0px;
    display:block;
    padding:2px;
    padding-left:5px;
    background-color: #3c78b5;
    border-top:1px solid #3c78b5;
}

.leftnav li a:active {color:white;}
.leftnav li a:visited {color:white;}
.leftnav li a:hover {background-color: #003366; color:white;}

/* Added by Shaun during i18n */
.replaced
{
    background-color: #33CC66;
}

.topPadding
{
    margin-top: 20px;
}

/* new form style */
.form-block {
    padding: 6px;
}
.form-error-block {
    padding: 6px;
    background: #fcc;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 0 12px 0 12px;
}
.form-element-large {
    font-size: 16px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
}

.form-element-small {
    font-size: 12px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
}

.form-header {
    background: lightyellow;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 0 12px 0 12px;
}
.form-header p, .form-block p, .form-error-block p {
    line-height: normal;
    margin: 12px 0 12px 0;
}
.form-example {
    color: #888;
    font-size: 11px;
}
.form-divider {
    border-bottom: #ccc 1px solid;
    margin-bottom: 6px;
}
.form-buttons {
    margin-top: 6px;
    border-top: #ccc 1px solid;
    border-bottom: #ccc 1px solid;
    background: #f0f0f0;
    padding: 10px;
    text-align: center;
}
.form-buttons input {
    width: 100px;
}
.form-block .error {
    padding: 6px;
    margin-bottom: 6px;
}
    -->
    </style>
</head>
<body>

<div id="PageContent">
<table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%"><tr>
<td valign="top" class="pagebody">

    <div class="pageheader">
        <span class="pagetitle">
            Page Edited :
            <a href="http://cwiki.apache.org/confluence/display/DIRxSRVx11">DIRxSRVx11</a> :
            <a href="http://cwiki.apache.org/confluence/display/DIRxSRVx11/Reverse+LDIF">Reverse LDIF</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/DIRxSRVx11/Reverse+LDIF">Reverse LDIF</a>
        has been edited by             <a href="http://cwiki.apache.org/confluence/display/~elecharny">Emmanuel Lécharny</a>
            <span class="smallfont">(Nov 26, 2008)</span>.
     </p>
    
     <p>
                 <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=69391&originalVersion=25&revisedVersion=26">(View changes)</a>
     </p>

    <span class="label">Content:</span><br/>
    <div class="greybox wiki-content"><h1><a name="ReverseLDIF-Introduction"></a>Introduction</h1>

<p>This page describes the way we generate reverse LDIF, for each forward operation. A reverse LDIF can be applied on a server in order to revert an operation.</p>

<p>In this document we do not consider what is required to revert a series of operations which have ordering requirements: i.e. they must be applied in reverse order.  Here we simply focus on how to generate the LDIF for each atomic operation.</p>

<h2><a name="ReverseLDIF-Operations"></a>Operations</h2>

<p>Operations to generate reverse LDIF for:</p>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> <b>Operation</b> </td>
</tr>
<tr>
<td class='confluenceTd'> AddRequest </td>
</tr>
<tr>
<td class='confluenceTd'> DelRequest </td>
</tr>
<tr>
<td class='confluenceTd'> ModifyRequest </td>
</tr>
<tr>
<td class='confluenceTd'> ModifyDNRequest </td>
</tr>
</tbody></table>

<h3><a name="ReverseLDIF-AddRequest"></a>AddRequest</h3>

<p>Computing the reverse LDIF for an AddRequest is easy: it's a DelRequest where we use the DN of the created entry.</p>

<p>An AddRequest contains those informations :</p>
<div class="preformatted"><div class="preformattedContent">
<pre>AddRequest ::= [APPLICATION 8] SEQUENCE {
    entry           LDAPDN,
    attributes      AttributeList }

AttributeList ::= SEQUENCE OF attribute Attribute
</pre>
</div></div>
<p>For the added entry :</p>
<div class="preformatted"><div class="preformattedContent">
<pre>dn: cn=test, dc=example, dc=com
objectclass: top
objectclass: person
cn: test
sn: This is a test
</pre>
</div></div>
<p>the reverse LDIF will be :</p>
<div class="preformatted"><div class="preformattedContent">
<pre>dn: cn=test, dc=example, dc=com
changetype: delete
</pre>
</div></div>

<h3><a name="ReverseLDIF-DelRequest"></a>DelRequest</h3>

<p>To produce a reverse LDIF for a DelRequest, we must first read the deleted attribute. We will create a AddRequest based on the read deleted entry :</p>
<div class="preformatted"><div class="preformattedContent">
<pre>* read the entry to be deleted
* create a revert ldif AddRequest with this deleted entry
* delete the entry
</pre>
</div></div>
<p>Considering the existing entry :</p>
<div class="preformatted"><div class="preformattedContent">
<pre>dn: cn=test, dc=example, dc=com
objectclass: top
objectclass: person
cn: test
sn: This is a testcreatorsName:  dc=admin, ou=systemcreateTimestamp: 20071010150132ZmodifiersName:  dc=admin, ou=systemmodifyTimestamp:  20071010150133Z
</pre>
</div></div>
<p>if we have a <b>delRequest</b> which <b>ldif</b> is :</p>
<div class="preformatted"><div class="preformattedContent">
<pre>dn: cn=test, dc=example, dc=com
changetype: delete
</pre>
</div></div>
<p>the reversed <b>ldif</b> should be :</p>
<div class="preformatted"><div class="preformattedContent">
<pre>dn: cn=test, dc=example, dc=comchangetype: add
objectclass: top
objectclass: person
cn: test
sn: This is a test
</pre>
</div></div>
<table cellpadding='5' width='85%' cellspacing='8px' class='noteMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
<p>There is still a question regarding operational attributes: should we keep them (in the LDIF)? How do we guarantee that the creatorsName and createTimeStamp attributes are the original ones, instead of the one injected while creating the saved entry?  Operational attribute state needs to be captured out of band (from the LDIF data) and is the responsibility of the change log service to manage, capture and track.  This information is made available to higher level interfaces which handle all this.  So at this level we need not worry: the LDIF's generated have no operational attributes in them as would be normally expected for a valid LDIF.</p></td></tr></table>
<p>To be able to build this reverse <b>ldif</b>, we need to read the previous entry before the deletion.</p>

<h3><a name="ReverseLDIF-ModifyRequest"></a>ModifyRequest</h3>

<p>This is the most complex operation. The modification is applied on a specific entry, and can impact one or more attribute, one or more value, but it can't modify an attribute which is part iof the entry RDN.</p>

<p>We have three kind of modifications : <b>add</b>, <b>delete</b> and <b>replace</b>. They are applied in the order they are found in the Modify request, so the reverse LDIF must store them in reverse order too.</p>

<p>Depending on the modified values, each basic operation may have some different semantic. The following table present all the possible actions :</p>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> modification </td>
<td class='confluenceTd'> initial entry </td>
<td class='confluenceTd'> imported Ldif </td>
<td class='confluenceTd'> resulting entry </td>
<td class='confluenceTd'> Comments </td>
<td class='confluenceTd'> Reverse LDIF </td>
</tr>
<tr>
<td class='confluenceTd'> add </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 add: ou <br clear="all" />
 ou: BigCompany inc. <br clear="all" />
 &#45; </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp <br clear="all" />
 ou: BigCompany inc. </td>
<td class='confluenceTd'> In this case, the <b>ou</b> value is simply added </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 delete: ou <br clear="all" />
 ou: BigCompany inc. <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> add </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 add: ou <br clear="all" />
 ou: BigCompany inc. <br clear="all" />
 &#45; </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: BigCompany inc. </td>
<td class='confluenceTd'> The <b>ou</b> attribute and its value has been created </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 delete: ou <br clear="all" />
 ou: BigCompany inc. <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> add </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 add: cn <br clear="all" />
 cn: test <br clear="all" />
 &#45; </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA </td>
<td class='confluenceTd'> Nothing is done. </td>
<td class='confluenceTd'> no reverse, void operation </td>
</tr>
<tr>
<td class='confluenceTd'> delete </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 delete: ou <br clear="all" />
 ou: acme corp <br clear="all" />
 &#45; </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: apache </td>
<td class='confluenceTd'> The <b>ou=acme corp</b> value has been deleted </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 add: ou <br clear="all" />
 ou: acme corp <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> delete </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 delete: ou <br clear="all" />
 &#45; </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA </td>
<td class='confluenceTd'> The <b>ou</b> attribute has been removed </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 add: ou <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> delete </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 delete: ou <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp <br clear="all" />
 &#45; </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA </td>
<td class='confluenceTd'> As all the <b>ou</b> values have been removed, <br clear="all" />
 the attribute itself is deleted </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 add: ou <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> replace </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 replace: ou <br clear="all" />
 ou: directory <br clear="all" />
 ou: BigCompany inc. <br clear="all" />
 &#45; </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: directory <br clear="all" />
 ou: BigCompany inc. </td>
<td class='confluenceTd'> The <b>ou</b> attributes' values are replaced <br clear="all" />
 by the new values. </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 replace: ou <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> replace </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 replace: ou <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp <br clear="all" />
 &#45; </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp </td>
<td class='confluenceTd'> Create the <b>ou</b> attribute </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 replace: ou <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> replace </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 replace: ou <br clear="all" />
 &#45; </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: joe doe <br clear="all" />
 l: USA </td>
<td class='confluenceTd'> Delete the <b>ou</b> attribute </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 replace: ou <br clear="all" />
 ou: apache <br clear="all" />
 ou: acme corp <br clear="all" />
 &#45; </td>
</tr>
</tbody></table>

<h3><a name="ReverseLDIF-ModifyDNRequest"></a>ModifyDNRequest</h3>

<p>This request is used to move entries or to rename entries or to move and rename entries. Its counterpart in a <b>ldif</b> file is a 'changetype: moddn' or a 'changetype: modrdn' operation (moddn or modrdn are synonymous).</p>

<p>We will separate the ModifyDN into 3 different cases :</p>
<ul>
	<li>A simple move operation : we change the superior, the RDN remains the same</li>
	<li>A rename operation : the RDN is changed</li>
	<li>A move and rename operation : a combinaison of both previous operations</li>
</ul>


<h4><a name="ReverseLDIF-Moveoperation"></a>Move operation</h4>

<p>This is the simplest one : we change the superior, without changing the entry's attributes nor the RDN</p>

<p>the following entry :</p>
<div class="preformatted"><div class="preformattedContent">
<pre>cn=test, dc=example, dc=orgobjectClass: personobjectClass: topcn: test
</pre>
</div></div>
<p>will be transformed to the entry</p>
<div class="preformatted"><div class="preformattedContent">
<pre>cn=test, ou=systemobjectClass: personobjectClass: topcn: test
</pre>
</div></div>
<p>if we change the superior from <b>dc=example,dc=com</b> to <b>ou=system</b></p>

<p>and the revert operation will be :</p>
<div class="preformatted"><div class="preformattedContent">
<pre>cn=test, ou=systemchangetype: moddnnewRdn: cn=test deleteoldrdn: 0
newSuperior: dc=example,dc=com
</pre>
</div></div>

<h4><a name="ReverseLDIF-Renameoperation"></a>Rename operation</h4>

<p>It's a bit more complex. We have to take care of multiple value RDN (RDN like cn=small+sn=test) and also to the existing attributes. The <b>deleteOldRdn</b> flag must also be take into account when dealing with the revert operation.</p>

<p>Generally speaking, the revert operation may be a simple one or a combinaison of a moddn and a add/delete operation, depending on the case.</p>

<p>There are 14 cases :</p>
<ol>
	<li>The initial RDN is simple, the target RDN is simple, we don't delete the oldRDN : We just have to remove the newly added AVA if it's not present into the original entry</li>
	<li>The initial RDN is simple, the target RDN is simple, we delete the oldRDN : We have to add the old AVA and to remove the newly added AVA if it's not present into the original entry</li>
	<li>The initial RDN is composite, the target is simple, they don't overlap, we just have to remove the newly added AVA if it's not present into the original entry</li>
	<li>The initial RDN is composite, the target is simple, they don't overlap, we have to add the original AVAs, and to remove the newly added AVAs if it's not present into the original entry</li>
	<li>The initial RDN is composite, the target is simple, they overlap, we don't delete the oldRDN : Nothing special to do</li>
	<li>The initial RDN is composite, the target is simple, they overlap, we delete the oldRDN : We have to add the removed AVAs except the one which is in the new RDN</li>
	<li>The initial RDN is simple, the target RDN is composite, they don't overlap, we don't delete the oldRDN : We have to remove all the new AVAs</li>
	<li>The initial RDN is simple, the target RDN is composite, they don't overlap, we delete the oldRDN : We have to remove all the new AVAs and to add the old AVA</li>
	<li>The initial RDN is simple, the target RDN is composite, they overlap, we don't delete the oldRDN : We have to remove all the new AVAs except the one whgich is in the old RDN</li>
	<li>The initial RDN is simple, the target RDN is composite, they overlap, we delete the oldRDN : We have to remove all the new AVAs except the one which is in the old RDN</li>
	<li>The initial RDN is composite, the target RDN is composite, they don't overlap, we don't delete the oldRDN : We have to remove all the new AVAs which are not present in the original entry</li>
	<li>The initial RDN is composite, the target RDN is composite, they don't overlap, we delete the oldRDN : We have to remove all the new AVAs which are not present in the original entry and add all the removed AVAs from the original entry</li>
	<li>The initial RDN is composite, the target RDN is composite, they overlap, we don't delete the oldRDN : We have to remove all the new AVAs which are not present in the original entry.</li>
	<li>The initial RDN is composite, the target RDN is composite, they overlap, we delete the oldRDN : We have to remove all the new AVAs which are not present in the original entry and add all the removed AVAs from the original entry<br/>
Case 11 and 13 are equivalent, so are case 12 and 14. They need two operations to be applied.</li>
</ol>


<p>We also have sub cases, depending in the presence (or not) of the new RDN AVAs into the initial entry. Rge following table expose all the different cases (28), assuming that the two subcases are :</p>
<ol>
	<li>The initial entry does not contain any of the RDN AVA</li>
	<li>The initial entry contains at least one of the RDN AVA which is not part of the original RDN</li>
</ol>


<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> case </td>
<td class='confluenceTd'> orginal entry </td>
<td class='confluenceTd'> target RDN </td>
<td class='confluenceTd'> deleteoldrdn </td>
<td class='confluenceTd'> forward ldif </td>
<td class='confluenceTd'> resulting entry </td>
<td class='confluenceTd'> reverse ldif </td>
</tr>
<tr>
<td class='confluenceTd'> 1.1 </td>
<td class='confluenceTd'> dn: cn=test,ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
<b>cn: joe</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=joe, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=test <br clear="all" />
 deleteoldrdn: 1 </td>
</tr>
<tr>
<td class='confluenceTd'> 1.2 </td>
<td class='confluenceTd'> dn: cn=test,ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn:small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=small </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=small <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=small</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=small, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=test <br clear="all" />
 deleteoldrdn: 0 </td>
</tr>
<tr>
<td class='confluenceTd'> 2.1 </td>
<td class='confluenceTd'> dn: cn=test,ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
<b>cn: joe</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=joe, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=test <br clear="all" />
 deleteoldrdn: 1 </td>
</tr>
<tr>
<td class='confluenceTd'> 2.2 </td>
<td class='confluenceTd'> dn: cn=test,ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn:small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=small </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=small <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=small</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: joe <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=joe, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=test <br clear="all" />
 deleteoldrdn: 0 </td>
</tr>
<tr>
<td class='confluenceTd'> 3<br clear="all" /> </td>
<td class='confluenceTd'> dn: cn=small+cn=test,ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe </td>
<td class='confluenceTd'> N/A<br clear="all" /> </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 [cn: test] <br clear="all" />
 [cn: small] <br clear="all" />
<b>cn: joe</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=joe, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=small+cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 4 </td>
<td class='confluenceTd'> dn: cn=small+cn=test,ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 cn: big <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=big </td>
<td class='confluenceTd'> N/A </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=big <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: cn=big, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 [cn: test] <br clear="all" />
 [cn: small] <br clear="all" />
 cn: big <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=big, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 0 <br clear="all" />
 newrdn: cn=small+cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 5 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=test </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=test <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=test</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 0 <br clear="all" />
 newrdn: cn=small+cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 6 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=test </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=test <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=test</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 0 <br clear="all" />
 newrdn: cn=small+cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 7.1 </td>
<td class='confluenceTd'> cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=plumber </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=plumber <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=plumber</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
<b>cn: joe</b> <br clear="all" />
<b>cn: plumber</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=joe+cn=plumber, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 7.2 </td>
<td class='confluenceTd'> cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=small </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=small <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=small</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
<b>cn: joe</b> <br clear="all" />
<b>cn: plumber</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=joe+cn=small, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=test <br clear="all" />
<br clear="all" />
<b>and</b> <br clear="all" />
<br clear="all" />
 dn: cn=test,ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 add: cn <br clear="all" />
 cn: small <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> 8.1 </td>
<td class='confluenceTd'> cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=plumber </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=plumber <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=plumber</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: joe <br clear="all" />
 cn: plumber <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=plumber</b>, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 8.2 </td>
<td class='confluenceTd'> cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=small </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=small <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=small</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: small <br clear="all" />
<b>cn: joe</b> <br clear="all" />
<b>cn: plumber</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=joe+cn=small, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=test <br clear="all" />
<br clear="all" />
<b>and</b> <br clear="all" />
<br clear="all" />
 dn: cn=test,ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 add: cn <br clear="all" />
 cn: small <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> 9.1 </td>
<td class='confluenceTd'> cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=small+cn=test </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=small+cn=test <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=small</b>&#43;cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: small <br clear="all" />
 cn: test <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=small</b>&#43;cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: test </td>
</tr>
<tr>
<td class='confluenceTd'> 9.2 </td>
<td class='confluenceTd'> cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=big+cn=test&#43; <br clear="all" />
 cn=small </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=big+cn=test&#43; <br clear="all" />
 cn=small <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=big</b>&#43;cn=test&#43;<b>cn=small</b>, <br clear="all" />
 ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: big <br clear="all" />
 cn: test <br clear="all" />
<b>cn: small</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=big</b>&#43;cn=test&#43;<b>cn=small</b>, <br clear="all" />
 ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: test <br clear="all" />
<br clear="all" />
<b>and</b> <br clear="all" />
<br clear="all" />
 dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 cn: add <br clear="all" />
 cn: big <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> 10.1 </td>
<td class='confluenceTd'> cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=small+cn=test </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=small+cn=test <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=small</b>&#43;cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: small <br clear="all" />
 cn: test <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=small</b>&#43;cn=test,ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: test </td>
</tr>
<tr>
<td class='confluenceTd'> 10.2 </td>
<td class='confluenceTd'> cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=big+cn=test&#43; <br clear="all" />
 cn=small </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=big+cn=test&#43; <br clear="all" />
 cn=small <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=big</b>&#43;cn=test&#43;<b>cn=small</b>, <br clear="all" />
 ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: big <br clear="all" />
 cn: test <br clear="all" />
<b>cn: small</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=big</b>&#43;cn=test&#43;<b>cn=small</b>, <br clear="all" />
 ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: test <br clear="all" />
<br clear="all" />
<b>and</b> <br clear="all" />
<br clear="all" />
 dn: cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 cn: add <br clear="all" />
 cn: big <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> 11.1 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=plumber </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=plumber <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=plumber</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
 cn: small <br clear="all" />
<b>cn: joe</b> <br clear="all" />
<b>cn: plumber</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=plumber</b>, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=small+cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 11.2 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=big </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=big <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>&#43;cn=big, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
 cn: small <br clear="all" />
<b>cn: joe</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>&#43;cn=big, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1newrdn: cn=small+cn=test <br clear="all" />
<br clear="all" />
<b>and</b> <br clear="all" />
<br clear="all" />
 dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 cn: add <br clear="all" />
 cn: big <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> 12.1 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=plumber </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=plumber <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=plumber</b>, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: big <br clear="all" />
<b>cn: joe</b> <br clear="all" />
<b>cn: plumber</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=plumber</b>, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=small+cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 12.2 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=big </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=big <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>&#43;cn=big, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: big <br clear="all" />
<b>cn: joe</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=joe+cn=big</b>, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=small+cn=test <br clear="all" />
<br clear="all" />
<b>and</b> <br clear="all" />
<br clear="all" />
 dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 cn: add <br clear="all" />
 cn: big <br clear="all" />
 &#45; </td>
</tr>
<tr>
<td class='confluenceTd'> 13.1 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=test </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=test <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>&#43;cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
<b>cn: joe</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>&#43;cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=small+cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 13.2 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=big+cn=test </td>
<td class='confluenceTd'> no </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=big+cn=test <br clear="all" />
 deleteoldrdn: 0 </td>
<td class='confluenceTd'> dn: cn=big+cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: small <br clear="all" />
 cn: big <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=big+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 0 <br clear="all" />
 newrdn: cn=small+cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 14.1 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
 cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=joe+cn=test </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=joe+cn=test <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>&#43;cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
<b>cn: joe</b> <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: <b>cn=joe</b>&#43;cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 1 <br clear="all" />
 newrdn: cn=small+cn=test </td>
</tr>
<tr>
<td class='confluenceTd'> 14.2 </td>
<td class='confluenceTd'> cn=small+cn=test <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big cn: small <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> cn=big+cn=test </td>
<td class='confluenceTd'> yes </td>
<td class='confluenceTd'> dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 newrdn: cn=big+cn=test <br clear="all" />
 deleteoldrdn: 1 </td>
<td class='confluenceTd'> dn: cn=big+cn=test, ou=system <br clear="all" />
 objectclass: top <br clear="all" />
 objectclass: person <br clear="all" />
 cn: test <br clear="all" />
 cn: big <br clear="all" />
 sn: This is a test </td>
<td class='confluenceTd'> dn: cn=big+cn=test, ou=system <br clear="all" />
 changetype: moddn <br clear="all" />
 deleteoldrdn: 0 <br clear="all" />
 newrdn: cn=small+cn=test <br clear="all" />
<br clear="all" />
<b>and</b> <br clear="all" />
<br clear="all" />
 dn: cn=small+cn=test, ou=system <br clear="all" />
 changetype: modify <br clear="all" />
 cn: add <br clear="all" />
 cn: big <br clear="all" />
 &#45; </td>
</tr>
</tbody></table>
<p>The following picture represent all the different cases as a decision tree :<img src="/confluence/download/attachments/69391/renameOperation.png" align="absmiddle" border="0" /><br/>
&nbsp;</p></div>


</td></tr></table></div>
<p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
        <td height="12" background="http://cwiki.apache.org/confluence/images/border/border_bottom.gif"><img src="http://cwiki.apache.org/confluence/images/border/spacer.gif" width="1" height="1" border="0"/></td>
    </tr>
</table>

<div class="smalltext">
    Powered by
    <a href="http://www.atlassian.com/software/confluence/default.jsp?clicked=footer" class="smalltext">Atlassian Confluence</a>
    (Version: 2.2.9 Build:#527 Sep 07, 2006)
    -
    <a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a><br/>
    <br>
    <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action">Unsubscribe or edit your notifications preferences</a>

</div>

</body>
</html>


Mime
View raw message