diff --git a/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/Constants.java b/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/Constants.java index 5b6886cf..d947f7f4 100644 --- a/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/Constants.java +++ b/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/Constants.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2019 IBM Corporation and others. + * Copyright (c) 2011, 2020 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -196,6 +196,7 @@ public class Constants { // configuration variables public static final String SERVER_CONFIG_VAR = "${server.config.dir}"; public static final String SERVER_OUTPUT_VAR = "${server.output.dir}"; + public static final String WLP_USER_DIR_VAR = "${wlp.user.dir}"; public static final String WLP_INSTALL_VAR = "${wlp.install.dir}"; public static final String LOGGING_DIR_VAR = "${com.ibm.ws.logging.log.directory}"; public static final String MESSAGES_FILENAME_VAR = "${com.ibm.ws.logging.message.file.name}"; diff --git a/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/WebSphereServerBehaviour.java b/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/WebSphereServerBehaviour.java index 1f952d73..57fcac8a 100644 --- a/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/WebSphereServerBehaviour.java +++ b/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/WebSphereServerBehaviour.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2017 IBM Corporation and others. + * Copyright (c) 2011, 2020 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -693,9 +693,9 @@ public WebSphereServerInfo getWebSphereServerInfo() { /** * Setup for starting the server. * - * @param launch ILaunch + * @param launch ILaunch * @param launchMode String - * @param monitor IProgressMonitor + * @param monitor IProgressMonitor * @throws CoreException if anything goes wrong */ public void preLaunch(ILaunch launch, String launchMode, IProgressMonitor monitor) throws CoreException { @@ -1337,7 +1337,7 @@ public boolean isCleanOnStartup() { * reset to false during every launch. * * @param clean true if the server should be cleaned on next startup, - * and false otherwise. + * and false otherwise. */ public void setCleanOnStartup(boolean clean) { cleanOnStartup = clean; @@ -1711,6 +1711,12 @@ else if (userDir != null && userDir.getRemoteUserPath() != null) { if (fileLocation != null) fileLocations.add(new File(fileLocation).toString().replace("\\", "/")); } + + if (serverInfo.getSharedServerEnv() != null) { + URI fileLocation = serverInfo.getSharedServerEnv().getURI(); + if (fileLocation != null) + fileLocations.add(new File(fileLocation).toString().replace("\\", "/")); + } } return fileLocations.toArray(new String[fileLocations.size()]); } diff --git a/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/WebSphereServerInfo.java b/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/WebSphereServerInfo.java index 69e59c4e..b7fe485f 100644 --- a/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/WebSphereServerInfo.java +++ b/dev/com.ibm.ws.st.core/src/com/ibm/ws/st/core/internal/WebSphereServerInfo.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2018 IBM Corporation and others. + * Copyright (c) 2011, 2020 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -63,6 +63,7 @@ public class WebSphereServerInfo implements IMetadataGenerator { private Bootstrap bootstrap; private final Map jvmOptionsFiles; private ServerEnv serverEnv; + private ServerEnv sharedServerEnv; private ServerEnv etcServerEnv; private final UserDirectory userDir; @@ -161,6 +162,10 @@ public ExtendedConfigFile getServerEnv() { return serverEnv; } + public ExtendedConfigFile getSharedServerEnv() { + return sharedServerEnv; + } + public ConfigurationFile getConfigRoot() { synchronized (infoLock) { updateConfigurationCache(); @@ -345,6 +350,17 @@ private boolean updateServerEnv() { serverEnv = null; } + File sharedServerEnvFile = getUserDirectory().getSharedPath().append(ExtendedConfigFile.SERVER_ENV_FILE).toFile(); + if (sharedServerEnvFile.exists()) { + if (sharedServerEnv == null || sharedServerEnv.hasChanged()) { + changed = true; + sharedServerEnv = new ServerEnv(sharedServerEnvFile, null); + } + } else if (sharedServerEnv != null) { + changed = true; + sharedServerEnv = null; + } + File etcServerEnvFile = runtime.getRuntimeLocation().append(ExtendedConfigFile.ETC_DIR).append(ExtendedConfigFile.SERVER_ENV_FILE).toFile(); if (etcServerEnvFile.exists()) { if (etcServerEnv == null || etcServerEnv.hasChanged()) { @@ -438,11 +454,17 @@ private void addServerVars(ConfigVars vars) { } // Do the env vars from the /etc directory first - // since those from the server directory should override. + // since it is the lowest priority server.env file if (etcServerEnv != null) { etcServerEnv.getVariables(vars); } + // Followed by env vars from the /shared directory + if (sharedServerEnv != null) { + sharedServerEnv.getVariables(vars); + } + + // And finally the env vars from the config dir if (serverEnv != null) { serverEnv.getVariables(vars); } diff --git a/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/NewExtendedConfigAction.java b/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/NewExtendedConfigAction.java index fcd2d69e..5cb30103 100644 --- a/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/NewExtendedConfigAction.java +++ b/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/NewExtendedConfigAction.java @@ -1,12 +1,12 @@ /******************************************************************************* - * Copyright (c) 2012, 2017 IBM Corporation and others. + * Copyright (c) 2012, 2020 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * IBM Corporation - initial API and implementation + * IBM Corporation - initial API and implementation *******************************************************************************/ package com.ibm.ws.st.ui.internal.actions; diff --git a/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/RuntimeExplorerViewActionProvider.java b/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/RuntimeExplorerViewActionProvider.java index 1329cc11..477e85d2 100644 --- a/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/RuntimeExplorerViewActionProvider.java +++ b/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/RuntimeExplorerViewActionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2017 IBM Corporation and others. + * Copyright (c) 2011, 2020 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -47,9 +47,10 @@ public class RuntimeExplorerViewActionProvider extends CommonActionProvider { protected NewQuickServerAction newQuickServerAction; protected ShowInServersAction showInServersAction; protected PropertiesAction propertiesAction; - protected NewExtendedConfigAction[] createConfigActions = new NewExtendedConfigAction[2]; - protected NewConfigDropinAction[] newConfigDropinActions = new NewConfigDropinAction[2]; + protected NewExtendedConfigAction[] createConfigActions = new NewExtendedConfigAction[1]; + protected NewExtendedConfigAction[] newServerEnvActions = new NewExtendedConfigAction[2]; protected NewExtendedConfigAction[] newJVMOptionsActions = new NewExtendedConfigAction[4]; + protected NewConfigDropinAction[] newConfigDropinActions = new NewConfigDropinAction[2]; protected AddOnRuntimeAction addOnRuntimeAction; @Override @@ -74,16 +75,15 @@ public void init(ICommonActionExtensionSite aSite) { showInServersAction = new ShowInServersAction(selProvider); propertiesAction = new PropertiesAction(selProvider, shell); - //propertiesAction.runtime. + createConfigActions[0] = new NewExtendedConfigAction(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE, selProvider, viewer); - createConfigActions[1] = new NewExtendedConfigAction(ExtendedConfigFile.SERVER_ENV_FILE, selProvider, viewer); - newConfigDropinActions[0] = new NewConfigDropinAction(NewConfigDropinAction.DropinType.DEFAULTS, selProvider, viewer); - newConfigDropinActions[1] = new NewConfigDropinAction(NewConfigDropinAction.DropinType.OVERRIDES, selProvider, viewer); + newServerEnvActions[0] = new NewExtendedConfigAction(ExtendedConfigFile.SERVER_ENV_FILE, selProvider, viewer, Constants.SERVER_CONFIG_VAR); + newServerEnvActions[1] = new NewExtendedConfigAction(ExtendedConfigFile.SERVER_ENV_FILE, selProvider, viewer, Constants.WLP_USER_DIR_VAR + "/" + + Constants.SHARED_FOLDER); newJVMOptionsActions[0] = new NewExtendedConfigAction(ExtendedConfigFile.JVM_OPTIONS_FILE, selProvider, viewer, Constants.SERVER_CONFIG_VAR); - newJVMOptionsActions[1] = new NewExtendedConfigAction(ExtendedConfigFile.JVM_OPTIONS_FILE, selProvider, viewer, Constants.WLP_INSTALL_VAR + "/" - + Constants.USER_FOLDER + "/" + newJVMOptionsActions[1] = new NewExtendedConfigAction(ExtendedConfigFile.JVM_OPTIONS_FILE, selProvider, viewer, Constants.WLP_USER_DIR_VAR + "/" + Constants.SHARED_FOLDER); newJVMOptionsActions[2] = new NewExtendedConfigAction(ExtendedConfigFile.JVM_OPTIONS_FILE, selProvider, viewer, Constants.SERVER_CONFIG_VAR + "/" + Constants.CONFIG_DROPINS_FOLDER + "/" @@ -91,6 +91,10 @@ public void init(ICommonActionExtensionSite aSite) { newJVMOptionsActions[3] = new NewExtendedConfigAction(ExtendedConfigFile.JVM_OPTIONS_FILE, selProvider, viewer, Constants.SERVER_CONFIG_VAR + "/" + Constants.CONFIG_DROPINS_FOLDER + "/" + Constants.CONFIG_OVERRIDE_DROPINS_FOLDER); + + newConfigDropinActions[0] = new NewConfigDropinAction(NewConfigDropinAction.DropinType.DEFAULTS, selProvider, viewer); + newConfigDropinActions[1] = new NewConfigDropinAction(NewConfigDropinAction.DropinType.OVERRIDES, selProvider, viewer); + addOnRuntimeAction = new AddOnRuntimeAction(shell, selProvider); } @@ -108,8 +112,13 @@ public void fillContextMenu(IMenuManager menu) { MenuManager configMenu = new MenuManager(Messages.menuNewExtendedConfig, Activator.getImageDescriptor(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE), "extendedConfig"); for (int i = 0; i < createConfigActions.length; i++) configMenu.add(createConfigActions[i]); + // Add the submenu for server.env + MenuManager subConfigMenu = new MenuManager(ExtendedConfigFile.SERVER_ENV_FILE, Activator.getImageDescriptor(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE), ExtendedConfigFile.SERVER_ENV_FILE); + for (int i = 0; i < newServerEnvActions.length; i++) + subConfigMenu.add(newServerEnvActions[i]); + configMenu.add(subConfigMenu); // Add the submenu for jvm.options - MenuManager subConfigMenu = new MenuManager(ExtendedConfigFile.JVM_OPTIONS_FILE, Activator.getImageDescriptor(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE), ExtendedConfigFile.JVM_OPTIONS_FILE); + subConfigMenu = new MenuManager(ExtendedConfigFile.JVM_OPTIONS_FILE, Activator.getImageDescriptor(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE), ExtendedConfigFile.JVM_OPTIONS_FILE); for (int i = 0; i < newJVMOptionsActions.length; i++) subConfigMenu.add(newJVMOptionsActions[i]); configMenu.add(subConfigMenu); diff --git a/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/UtilityActionProvider.java b/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/UtilityActionProvider.java index d4d87973..d6a0adcf 100644 --- a/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/UtilityActionProvider.java +++ b/dev/com.ibm.ws.st.ui/src/com/ibm/ws/st/ui/internal/actions/UtilityActionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012, 2017 IBM Corporation and others. + * Copyright (c) 2012, 2020 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -30,7 +30,8 @@ public class UtilityActionProvider extends CommonActionProvider { public static final String UTILITY_MENU_PATH = "utility"; - protected NewExtendedConfigAction[] createConfigActions = new NewExtendedConfigAction[2]; + protected NewExtendedConfigAction[] createConfigActions = new NewExtendedConfigAction[1]; + protected NewExtendedConfigAction[] newServerEnvActions = new NewExtendedConfigAction[2]; protected NewExtendedConfigAction[] newJVMOptionsActions = new NewExtendedConfigAction[4]; protected PackageAction packageAction; protected PluginConfigAction pluginConfigAction; @@ -47,14 +48,13 @@ public void init(ICommonActionExtensionSite aSite) { ISelectionProvider selectionProvider = aSite.getStructuredViewer(); createConfigActions[0] = new NewExtendedConfigAction(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE, selectionProvider, viewer); - createConfigActions[1] = new NewExtendedConfigAction(ExtendedConfigFile.SERVER_ENV_FILE, selectionProvider, viewer); - newConfigDropinActions[0] = new NewConfigDropinAction(NewConfigDropinAction.DropinType.DEFAULTS, selectionProvider, viewer); - newConfigDropinActions[1] = new NewConfigDropinAction(NewConfigDropinAction.DropinType.OVERRIDES, selectionProvider, viewer); + newServerEnvActions[0] = new NewExtendedConfigAction(ExtendedConfigFile.SERVER_ENV_FILE, selectionProvider, viewer, Constants.SERVER_CONFIG_VAR); + newServerEnvActions[1] = new NewExtendedConfigAction(ExtendedConfigFile.SERVER_ENV_FILE, selectionProvider, viewer, Constants.WLP_USER_DIR_VAR + "/" + + Constants.SHARED_FOLDER); newJVMOptionsActions[0] = new NewExtendedConfigAction(ExtendedConfigFile.JVM_OPTIONS_FILE, selectionProvider, viewer, Constants.SERVER_CONFIG_VAR); - newJVMOptionsActions[1] = new NewExtendedConfigAction(ExtendedConfigFile.JVM_OPTIONS_FILE, selectionProvider, viewer, Constants.WLP_INSTALL_VAR + "/" - + Constants.USER_FOLDER + "/" + newJVMOptionsActions[1] = new NewExtendedConfigAction(ExtendedConfigFile.JVM_OPTIONS_FILE, selectionProvider, viewer, Constants.WLP_USER_DIR_VAR + "/" + Constants.SHARED_FOLDER); newJVMOptionsActions[2] = new NewExtendedConfigAction(ExtendedConfigFile.JVM_OPTIONS_FILE, selectionProvider, viewer, Constants.SERVER_CONFIG_VAR + "/" + Constants.CONFIG_DROPINS_FOLDER + "/" @@ -63,6 +63,9 @@ public void init(ICommonActionExtensionSite aSite) { + Constants.CONFIG_DROPINS_FOLDER + "/" + Constants.CONFIG_OVERRIDE_DROPINS_FOLDER); + newConfigDropinActions[0] = new NewConfigDropinAction(NewConfigDropinAction.DropinType.DEFAULTS, selectionProvider, viewer); + newConfigDropinActions[1] = new NewConfigDropinAction(NewConfigDropinAction.DropinType.OVERRIDES, selectionProvider, viewer); + packageAction = new PackageAction(shell, selectionProvider); pluginConfigAction = new PluginConfigAction(shell, selectionProvider); dumpAction = new DumpAction(shell, selectionProvider); @@ -77,8 +80,13 @@ public void fillContextMenu(IMenuManager menu) { MenuManager configMenu = new MenuManager(Messages.menuNewExtendedConfig, Activator.getImageDescriptor(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE), "extendedConfig"); for (int i = 0; i < createConfigActions.length; i++) configMenu.add(createConfigActions[i]); + // Add the submenu for server.env + MenuManager subConfigMenu = new MenuManager(ExtendedConfigFile.SERVER_ENV_FILE, Activator.getImageDescriptor(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE), ExtendedConfigFile.SERVER_ENV_FILE); + for (int i = 0; i < newServerEnvActions.length; i++) + subConfigMenu.add(newServerEnvActions[i]); + configMenu.add(subConfigMenu); // Add the submenu for jvm.options - MenuManager subConfigMenu = new MenuManager(ExtendedConfigFile.JVM_OPTIONS_FILE, Activator.getImageDescriptor(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE), ExtendedConfigFile.JVM_OPTIONS_FILE); + subConfigMenu = new MenuManager(ExtendedConfigFile.JVM_OPTIONS_FILE, Activator.getImageDescriptor(ExtendedConfigFile.BOOTSTRAP_PROPS_FILE), ExtendedConfigFile.JVM_OPTIONS_FILE); for (int i = 0; i < newJVMOptionsActions.length; i++) subConfigMenu.add(newJVMOptionsActions[i]); configMenu.add(subConfigMenu);