From 2ad8f02979a60329fc21e117731a2f7598bbc7e4 Mon Sep 17 00:00:00 2001 From: Roy Wetherall Date: Wed, 31 Jan 2007 11:56:02 +0000 Subject: [PATCH] Added module status to module.properties file saved in WAR for later use. Added contribution to return node path in Reference object. Fixed issues with web service caused by outdated Jars and incorrect AuthenticationService git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4980 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/module/ModuleDetailsImpl.java | 16 ++++++++++ .../repo/module/tool/ModuleDetailsHelper.java | 11 +++++++ .../module/tool/ModuleManagementTool.java | 5 ++++ .../service/cmr/module/ModuleDetails.java | 7 +++++ .../cmr/module/ModuleInstallState.java | 29 +++++++++++++++++++ 5 files changed, 68 insertions(+) create mode 100644 source/java/org/alfresco/service/cmr/module/ModuleInstallState.java diff --git a/source/java/org/alfresco/repo/module/ModuleDetailsImpl.java b/source/java/org/alfresco/repo/module/ModuleDetailsImpl.java index de59b6b3d5..72bffa1662 100644 --- a/source/java/org/alfresco/repo/module/ModuleDetailsImpl.java +++ b/source/java/org/alfresco/repo/module/ModuleDetailsImpl.java @@ -22,6 +22,7 @@ import java.util.Properties; import org.alfresco.repo.module.tool.ModuleManagementToolException; import org.alfresco.service.cmr.module.ModuleDetails; +import org.alfresco.service.cmr.module.ModuleInstallState; import org.alfresco.util.VersionNumber; /** @@ -39,6 +40,7 @@ public class ModuleDetailsImpl implements ModuleDetails protected static final String PROP_DESCRIPTION = "module.description"; protected static final String PROP_VERSION = "module.version"; protected static final String PROP_INSTALL_DATE = "module.installDate"; + protected static final String PROP_INSTALL_STATE = "module.installState"; /** Properties object */ protected Properties properties; @@ -130,6 +132,20 @@ public class ModuleDetailsImpl implements ModuleDetails return this.properties.getProperty(PROP_INSTALL_DATE); } + /** + * @see org.alfresco.service.cmr.module.ModuleDetails#getInstallState() + */ + public ModuleInstallState getInstallState() + { + ModuleInstallState result = ModuleInstallState.INSTALLED; + String value = this.properties.getProperty(PROP_INSTALL_STATE); + if (value != null && value.length() != 0) + { + result = ModuleInstallState.valueOf(value); + } + return result; + } + /** * @see java.lang.Object#toString() */ diff --git a/source/java/org/alfresco/repo/module/tool/ModuleDetailsHelper.java b/source/java/org/alfresco/repo/module/tool/ModuleDetailsHelper.java index 352e94e92a..3a3f8b40f3 100644 --- a/source/java/org/alfresco/repo/module/tool/ModuleDetailsHelper.java +++ b/source/java/org/alfresco/repo/module/tool/ModuleDetailsHelper.java @@ -22,6 +22,7 @@ import java.io.OutputStream; import java.util.Date; import org.alfresco.repo.module.ModuleDetailsImpl; +import org.alfresco.service.cmr.module.ModuleInstallState; import de.schlichtherle.io.File; import de.schlichtherle.io.FileInputStream; @@ -125,5 +126,15 @@ public class ModuleDetailsHelper extends ModuleDetailsImpl throw new ModuleManagementToolException("Unable to save module details into WAR file.", exception); } } + + /** + * Set the install state + * + * @param installState the install state + */ + public void setInstallState(ModuleInstallState installState) + { + this.properties.setProperty(PROP_INSTALL_STATE, installState.toString()); + } } diff --git a/source/java/org/alfresco/repo/module/tool/ModuleManagementTool.java b/source/java/org/alfresco/repo/module/tool/ModuleManagementTool.java index 5a001310f2..83643a0fcd 100644 --- a/source/java/org/alfresco/repo/module/tool/ModuleManagementTool.java +++ b/source/java/org/alfresco/repo/module/tool/ModuleManagementTool.java @@ -22,6 +22,8 @@ import java.io.InputStream; import java.util.Map; import java.util.Properties; +import org.alfresco.service.cmr.module.ModuleInstallState; +import org.alfresco.service.cmr.module.ModuleService; import org.alfresco.util.GUID; import org.apache.log4j.Logger; import org.springframework.util.FileCopyUtils; @@ -136,6 +138,8 @@ public class ModuleManagementTool { try { + outputMessage("Installing AMP '" + ampFileLocation + "' into WAR '" + warFileLocation + "'"); + if (preview == false) { // Make sure the module and backup directory exisits in the WAR file @@ -239,6 +243,7 @@ public class ModuleManagementTool installedFiles.save(); // Update the installed module details + installingModuleDetails.setInstallState(ModuleInstallState.INSTALLED); installingModuleDetails.save(warFileLocation, installingModuleDetails.getId()); // Update the zip file's diff --git a/source/java/org/alfresco/service/cmr/module/ModuleDetails.java b/source/java/org/alfresco/service/cmr/module/ModuleDetails.java index 6afb0609e3..07bef3afe2 100644 --- a/source/java/org/alfresco/service/cmr/module/ModuleDetails.java +++ b/source/java/org/alfresco/service/cmr/module/ModuleDetails.java @@ -67,4 +67,11 @@ public interface ModuleDetails * @return module install date */ String getInstalledDate(); + + /** + * Get the modules install state + * + * @return the modules install state + */ + ModuleInstallState getInstallState(); } diff --git a/source/java/org/alfresco/service/cmr/module/ModuleInstallState.java b/source/java/org/alfresco/service/cmr/module/ModuleInstallState.java new file mode 100644 index 0000000000..df11cdffd8 --- /dev/null +++ b/source/java/org/alfresco/service/cmr/module/ModuleInstallState.java @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2005 Alfresco, Inc. + * + * Licensed under the Mozilla Public License version 1.1 + * with a permitted attribution clause. You may obtain a + * copy of the License at + * + * http://www.alfresco.org/legal/license.txt + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the + * License. + */ +package org.alfresco.service.cmr.module; + +/** + * Enum used to indicate the install state of a module + * + * @author Roy Wetherall + */ +public enum ModuleInstallState +{ + INSTALLED, // indicates that a module is installed + DISABLED, // indicates that a module is installed but it functionality is disabled + UNINSTALLED // indicates that a module is uninstalled +}