From b1b420fd12cafaa45dc80383a690f913a2a7bdb0 Mon Sep 17 00:00:00 2001 From: Richard Millet Date: Wed, 12 Mar 2014 08:59:54 -0700 Subject: [PATCH] CSPACE-6168: Need to qualify the database names of the auto-generate Nuxeo repo config files with the CollectionSpace instance ID. Also, need to change the location of the Nuxeo repo config prototype to /cspace/config/services instead of cspace/services/config. --- 3rdparty/nuxeo/build.xml | 2 +- .../common/api/JEEServerDeployment.java | 3 +- .../services/common/ServiceMain.java | 30 ++++++++----------- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/3rdparty/nuxeo/build.xml b/3rdparty/nuxeo/build.xml index 709974ba7..c02d9b675 100644 --- a/3rdparty/nuxeo/build.xml +++ b/3rdparty/nuxeo/build.xml @@ -121,7 +121,7 @@ - + diff --git a/services/common-api/src/main/java/org/collectionspace/services/common/api/JEEServerDeployment.java b/services/common-api/src/main/java/org/collectionspace/services/common/api/JEEServerDeployment.java index e42755a33..d8679686b 100644 --- a/services/common-api/src/main/java/org/collectionspace/services/common/api/JEEServerDeployment.java +++ b/services/common-api/src/main/java/org/collectionspace/services/common/api/JEEServerDeployment.java @@ -8,7 +8,8 @@ public interface JEEServerDeployment { final public static String SERVICES_DIR_NAME = "services"; final public static String CONFIG_DIR_PATH = CONFIG_DIR_NAME + File.separator + SERVICES_DIR_NAME; - final public static String CSPACE_SERVICES_DIR_PATH = CSPACE_DIR_NAME + File.separator + SERVICES_DIR_NAME; + final public static String CSPACE_SERVICES_DIR_PATH = CSPACE_DIR_NAME + File.separator + CONFIG_DIR_NAME + + File.separator + SERVICES_DIR_NAME; final public static String TENANT_BINDINGS_FILENAME_PREFIX = "tenant-bindings"; final public static String TENANT_BINDINGS_PROTOTYPE_FILENAME = TENANT_BINDINGS_FILENAME_PREFIX + "-proto.xml"; diff --git a/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java b/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java index 7c43b0e59..4281c8095 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java +++ b/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java @@ -386,19 +386,19 @@ public class ServiceMain { return serverRootDir; } - public String getCspaceServicesConfigDir() { + private String getCspaceServicesConfigDir() { return getServerRootDir() + File.separator + JEEServerDeployment.CSPACE_SERVICES_DIR_PATH; } - public String getNuxeoConfigDir() { + private String getNuxeoConfigDir() { return getServerRootDir() + File.separator + JEEServerDeployment.NUXEO_SERVER_CONFIG_DIR; } - public String getNuxeoProtoConfigFilename() { + private String getNuxeoProtoConfigFilename() { return JEEServerDeployment.NUXEO_PROTOTYPE_CONFIG_FILENAME; } - public String getNuxeoConfigFilename(String reponame) { + private String getNuxeoConfigFilename(String reponame) { return reponame + JEEServerDeployment.NUXEO_REPO_CONFIG_FILENAME_SUFFIX; } @@ -808,7 +808,7 @@ public class ServiceMain { repositoryConfigDoc = (Document) prototypeConfigDoc.clone(); // Update this config file by inserting values pertinent to the // current repository. - repositoryConfigDoc = updateRepositoryConfigDoc(repositoryConfigDoc, repositoryName); + repositoryConfigDoc = updateRepositoryConfigDoc(repositoryConfigDoc, repositoryName, this.getCspaceInstanceId()); if (logger.isTraceEnabled()) { logger.trace("Updated Nuxeo repo config file contents=\n" + repositoryConfigDoc.asXML()); } @@ -824,9 +824,10 @@ public class ServiceMain { } } - private Document updateRepositoryConfigDoc(Document repoConfigDoc, String repositoryName) { + private Document updateRepositoryConfigDoc(Document repoConfigDoc, String repositoryName, String cspaceInstanceId) { + String databaseName = JDBCTools.getDatabaseName(repositoryName, cspaceInstanceId); + // FIXME: Remove this temporary placeholder variable used only during development. - final String PLACEHOLDER = "placeholder"; repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc, "/component", "name", String.format("config:%s-repository", repositoryName)); // Text substitutions within first extension point, "repository" @@ -834,24 +835,17 @@ public class ServiceMain { REPOSITORY_EXTENSION_POINT_XPATH + "/repository", "name", repositoryName); repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc, REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository", "name", repositoryName); -// repoConfigDoc = XmlTools.setElementValue(repoConfigDoc, -// REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/xa-datasource", PLACEHOLDER); String url = XmlTools.getElementValue(repoConfigDoc, REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/property[@name='URL']"); if (! Tools.isBlank(url)) { repoConfigDoc = XmlTools.setElementValue(repoConfigDoc, REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/property[@name='URL']", - url + repositoryName); + url + databaseName); } -// repoConfigDoc = XmlTools.setElementValue(repoConfigDoc, -// REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/property[@name='ServerName']", PLACEHOLDER); repoConfigDoc = XmlTools.setElementValue(repoConfigDoc, - REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/property[@name='DatabaseName']", repositoryName); -// repoConfigDoc = XmlTools.setElementValue(repoConfigDoc, -// REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/property[@name='User']", PLACEHOLDER); -// repoConfigDoc = XmlTools.setElementValue(repoConfigDoc, -// REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/property[@name='Password']", PLACEHOLDER); - // Text substitutions within second extension point, "repositories" + REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/property[@name='DatabaseName']", + databaseName); + // Text substitutions within second extension point, "repositories" repoConfigDoc = XmlTools.setElementValue(repoConfigDoc, REPOSITORIES_EXTENSION_POINT_XPATH + "/documentation", String.format("The %s repository", repositoryName)); -- 2.47.3