[243883] Publish after add/remove
diff --git a/features/org.eclipse.wst.server_core.feature/feature.xml b/features/org.eclipse.wst.server_core.feature/feature.xml
index c212fe4..8985d45 100644
--- a/features/org.eclipse.wst.server_core.feature/feature.xml
+++ b/features/org.eclipse.wst.server_core.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.wst.server_core.feature"
label="%featureName"
- version="3.0.1.qualifier"
+ version="3.0.2.qualifier"
provider-name="%providerName">
<description>
diff --git a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
index 8815a61..71f3f04 100644
--- a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.wst.server.ui; singleton:=true
-Bundle-Version: 1.1.1.qualifier
+Bundle-Version: 1.1.2.qualifier
Bundle-Activator: org.eclipse.wst.server.ui.internal.ServerUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
index 48a4403..79f2f7a 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
@@ -183,6 +183,7 @@
public static String wizModuleRemoveAll;
public static String wizModuleRequiredModule;
public static String wizModuleRequiredModules;
+ public static String wizModulePublishImmediately;
public static String wizTaskTitle;
public static String wizTaskDescription;
public static String wizErrorInvalidFolder;
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
index f768261..08b92ba 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
@@ -85,6 +85,7 @@
wizModuleRemoveAll=<< Re&move All
wizModuleRequiredModule={0} is required and cannot be removed from the server
wizModuleRequiredModules=One of the required modules ({0}) must be added to the server
+wizModulePublishImmediately=If server is started, publish changes &immediately
# Wizard info and error messages
wizErrorInvalidFolder=The folder must be a server project or a folder within a server project
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPreferences.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPreferences.java
index a66d68b..e9c6e3a 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPreferences.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPreferences.java
@@ -29,6 +29,7 @@
private static final String PREF_ENABLE_BREAKPOINTS = "enable-breakpoints";
private static final String PREF_RESTART = "restart";
private static final String PREF_CREATE_SERVER_WITH_RUNTIME = "create-server";
+ private static final String PREF_PUBLISH_ON_ADD_REMOVE = "publish-on-add-remove";
public static final byte SAVE_EDITORS_ALWAYS = 2;
public static final byte SAVE_EDITORS_NEVER = 0;
@@ -72,6 +73,7 @@
preferences.setDefault(PREF_HOST_NAMES, "localhost");
preferences.setDefault(PREF_SHOW_ON_ACTIVITY, true);
preferences.setDefault(PREF_CREATE_SERVER_WITH_RUNTIME, false);
+ preferences.setDefault(PREF_PUBLISH_ON_ADD_REMOVE, true);
}
/**
@@ -340,4 +342,23 @@
preferences.setValue(PREF_CREATE_SERVER_WITH_RUNTIME, b);
ServerUIPlugin.getInstance().savePluginPreferences();
}
+
+ /**
+ * Returns the setting for publishing when modules are added or removed.
+ *
+ * @return boolean
+ */
+ public boolean getPublishOnAddRemoveModule() {
+ return preferences.getBoolean(PREF_PUBLISH_ON_ADD_REMOVE);
+ }
+
+ /**
+ * Sets the value for publishing when modules are added or removed.
+ *
+ * @param b
+ */
+ public void setPublishOnAddRemoveModule(boolean b) {
+ preferences.setValue(PREF_PUBLISH_ON_ADD_REMOVE, b);
+ ServerUIPlugin.getInstance().savePluginPreferences();
+ }
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RemoveModuleAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RemoveModuleAction.java
index b198af0..756ba36 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RemoveModuleAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RemoveModuleAction.java
@@ -16,8 +16,8 @@
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.IServerWorkingCopy;
-import org.eclipse.wst.server.core.internal.Server;
import org.eclipse.wst.server.ui.internal.Messages;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
import org.eclipse.wst.server.ui.internal.Trace;
import org.eclipse.swt.widgets.Shell;
/**
@@ -53,7 +53,8 @@
wc.modifyModules(null, new IModule[] { module }, null);
server = wc.save(true, null);
- if (server.getServerState() != IServer.STATE_STOPPED && ((Server)server).getAutoPublishSetting() != Server.AUTO_PUBLISH_DISABLE) {
+ if (server.getServerState() != IServer.STATE_STOPPED &&
+ ServerUIPlugin.getPreferences().getPublishOnAddRemoveModule()) {
final IAdaptable info = new IAdaptable() {
public Object getAdapter(Class adapter) {
if (Shell.class.equals(adapter))
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/ModifyModulesWizard.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/ModifyModulesWizard.java
index 1c6b776..9cdc191 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/ModifyModulesWizard.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/ModifyModulesWizard.java
@@ -16,8 +16,8 @@
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.internal.Server;
import org.eclipse.wst.server.ui.internal.Messages;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
import org.eclipse.wst.server.ui.internal.wizard.fragment.ModifyModulesWizardFragment;
import org.eclipse.wst.server.ui.wizard.WizardFragment;
/**
@@ -26,7 +26,7 @@
public class ModifyModulesWizard extends TaskWizard {
static class ModifyModulesWizard2 extends WizardFragment {
protected void createChildFragments(List<WizardFragment> list) {
- list.add(new ModifyModulesWizardFragment());
+ list.add(new ModifyModulesWizardFragment(true));
list.add(WizardTaskUtil.SaveServerFragment);
list.add(new WizardFragment() {
@@ -34,7 +34,8 @@
IServerAttributes svr = (IServerAttributes) getTaskModel().getObject(TaskModel.TASK_SERVER);
if (svr instanceof IServer) {
IServer server = (IServer) svr;
- if (server.getServerState() != IServer.STATE_STOPPED && ((Server)server).getAutoPublishSetting() != Server.AUTO_PUBLISH_DISABLE) {
+ if (server.getServerState() != IServer.STATE_STOPPED &&
+ ServerUIPlugin.getPreferences().getPublishOnAddRemoveModule()) {
IAdaptable info = null;
/*IAdaptable info = new IAdaptable() {
public Object getAdapter(Class adapter) {
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/ModifyModulesWizardFragment.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/ModifyModulesWizardFragment.java
index 02b9e09..498555d 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/ModifyModulesWizardFragment.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/ModifyModulesWizardFragment.java
@@ -19,6 +19,7 @@
import org.eclipse.wst.server.core.*;
import org.eclipse.wst.server.core.internal.IModuleVisitor;
import org.eclipse.wst.server.core.internal.Server;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
import org.eclipse.wst.server.ui.internal.Trace;
import org.eclipse.wst.server.ui.internal.wizard.WizardTaskUtil;
import org.eclipse.wst.server.ui.internal.wizard.page.ModifyModulesComposite;
@@ -31,11 +32,16 @@
protected ModifyModulesComposite comp;
protected IModule module;
+ protected boolean showPublishOption;
public ModifyModulesWizardFragment() {
// do nothing
}
+ public ModifyModulesWizardFragment(boolean showPublishOption) {
+ this.showPublishOption = showPublishOption;
+ }
+
public ModifyModulesWizardFragment(IModule module) {
this.module = module;
}
@@ -48,7 +54,7 @@
* @see org.eclipse.wst.server.ui.internal.task.WizardTask#getWizardPage()
*/
public Composite createComposite(Composite parent, IWizardHandle handle) {
- comp = new ModifyModulesComposite(parent, handle, module);
+ comp = new ModifyModulesComposite(parent, handle, module, showPublishOption);
return comp;
}
@@ -120,7 +126,10 @@
}
public void performFinish(IProgressMonitor monitor) throws CoreException {
- if (comp != null)
+ if (comp != null) {
WizardTaskUtil.modifyModules(comp.getModulesToAdd(), comp.getModulesToRemove(), getTaskModel(), monitor);
+ if (showPublishOption)
+ ServerUIPlugin.getPreferences().setPublishOnAddRemoveModule(comp.shouldPublishImmediately());
+ }
}
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
index 0b56d11..454ad8b 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
@@ -49,6 +49,8 @@
protected IRuntime runtime;
protected boolean runtimeDirty;
protected Object refreshModules;
+ protected boolean showPublishOption;
+ protected boolean publishImmediately;
protected Map<ChildModuleMapKey, IModule[]> childModuleMap = new HashMap<ChildModuleMapKey, IModule[]>();
protected Map<IModule, IModule[]> parentModuleMap = new HashMap<IModule, IModule[]>();
@@ -219,6 +221,27 @@
createControl();
}
+ /**
+ * Create a new ModifyModulesComposite.
+ *
+ * @param parent a parent composite
+ * @param wizard a wizard
+ * @param module the module that is being added
+ * @param showPublishOption show the publishing options
+ */
+ public ModifyModulesComposite(Composite parent, IWizardHandle wizard, IModule module, boolean showPublishOption) {
+ super(parent, SWT.NONE);
+ this.wizard = wizard;
+ requiredModule = module;
+ this.showPublishOption = showPublishOption;
+
+ wizard.setTitle(Messages.wizModuleTitle);
+ wizard.setDescription(Messages.wizModuleDescription);
+ wizard.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_WIZBAN_SELECT_SERVER));
+
+ createControl();
+ }
+
public void setServer(IServerAttributes server) {
if (isVisible())
return;
@@ -614,6 +637,22 @@
}
});
+ if (showPublishOption) {
+ final Button publish = new Button(this, SWT.CHECK);
+ publish.setText(Messages.wizModulePublishImmediately);
+ data = new GridData(GridData.FILL_HORIZONTAL);
+ data.horizontalSpan = 3;
+ publish.setLayoutData(data);
+
+ publishImmediately = ServerUIPlugin.getPreferences().getPublishOnAddRemoveModule();
+ publish.setSelection(publishImmediately);
+ publish.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent event) {
+ publishImmediately = publish.getSelection();
+ }
+ });
+ }
+
setEnablement();
availableTree.setFocus();
@@ -900,4 +939,8 @@
public boolean isComplete() {
return isComplete;
}
+
+ public boolean shouldPublishImmediately() {
+ return publishImmediately;
+ }
}
\ No newline at end of file