From 3d94e093e647c30331f5ad701e1251df46ffe5cc Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Fri, 27 Feb 2009 15:25:04 +0000
Subject: [PATCH] Fix for issue #3765 (Root for relative paths in export-ldif depends on the path where we started the server)
---
opends/src/server/org/opends/server/tasks/ExportTask.java | 9 ++++++++-
opends/src/messages/messages/tools.properties | 1 +
opends/src/server/org/opends/server/tasks/ImportTask.java | 27 +++++++++++++++++++++++++--
3 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/opends/src/messages/messages/tools.properties b/opends/src/messages/messages/tools.properties
index 72980f0..d0d3105 100644
--- a/opends/src/messages/messages/tools.properties
+++ b/opends/src/messages/messages/tools.properties
@@ -2450,6 +2450,7 @@
FATAL_ERR_INSTANCE_ROOT_NOT_SPECIFIED_1660=INSTANCE_ROOT property not specified
FATAL_ERR_CONFIG_LDIF_NOT_FOUND_1661=The "config.ldif" file is not present in \
the instance directory %s.\nInstance directory is referenced by %s
+INFO_LDIFEXPORT_PATH_TO_LDIF_FILE_1662=Exporting to %s
diff --git a/opends/src/server/org/opends/server/tasks/ExportTask.java b/opends/src/server/org/opends/server/tasks/ExportTask.java
index 0f39887..b96a75f 100644
--- a/opends/src/server/org/opends/server/tasks/ExportTask.java
+++ b/opends/src/server/org/opends/server/tasks/ExportTask.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Copyright 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.server.tasks;
import org.opends.messages.Message;
@@ -227,6 +227,12 @@
attrList = taskEntry.getAttribute(typeLdifFile);
ldifFile = TaskUtils.getSingleValueString(attrList);
+ File f = new File (ldifFile);
+ if (! f.isAbsolute())
+ {
+ ldifFile = new File(DirectoryServer.getInstanceRoot(), ldifFile)
+ .getAbsolutePath();
+ }
attrList = taskEntry.getAttribute(typeBackendID);
backendID = TaskUtils.getSingleValueString(attrList);
@@ -572,6 +578,7 @@
try
{
DirectoryServer.notifyExportBeginning(backend, exportConfig);
+ addLogMessage(INFO_LDIFEXPORT_PATH_TO_LDIF_FILE.get(ldifFile));
backend.exportLDIF(exportConfig);
DirectoryServer.notifyExportEnded(backend, exportConfig, true);
}
diff --git a/opends/src/server/org/opends/server/tasks/ImportTask.java b/opends/src/server/org/opends/server/tasks/ImportTask.java
index b7174c2..c8a9833 100644
--- a/opends/src/server/org/opends/server/tasks/ImportTask.java
+++ b/opends/src/server/org/opends/server/tasks/ImportTask.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Copyright 2006-2009 Sun Microsystems, Inc.
*/
package org.opends.server.tasks;
import org.opends.messages.Message;
@@ -283,10 +283,33 @@
List<Attribute> attrList;
attrList = taskEntry.getAttribute(typeLdifFile);
- ldifFiles = TaskUtils.getMultiValueString(attrList);
+ ArrayList<String> ldifFilestmp = TaskUtils.getMultiValueString(attrList);
+ ldifFiles = new ArrayList<String>(ldifFilestmp.size());
+ for (String s : ldifFilestmp)
+ {
+ File f = new File (s);
+ if (!f.isAbsolute())
+ {
+ ldifFiles.add(new File(DirectoryServer.getInstanceRoot(), s)
+ .getAbsolutePath());
+ }
+ else
+ {
+ ldifFiles.add(s);
+ }
+ }
attrList = taskEntry.getAttribute(typeTemplateFile);
templateFile = TaskUtils.getSingleValueString(attrList);
+ if (templateFile != null)
+ {
+ File f = new File(templateFile);
+ if (!f.isAbsolute())
+ {
+ templateFile = new File(DirectoryServer.getInstanceRoot(), templateFile)
+ .getAbsolutePath();
+ }
+ }
attrList = taskEntry.getAttribute(typeAppend);
append = TaskUtils.getBoolean(attrList, false);
--
Gitblit v1.10.0