Sync 3.4.2 GA code to R3_4_maintenance stream
diff --git a/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml b/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml
index def758a..5ff8c85 100644
--- a/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml
+++ b/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml
@@ -1,30 +1,31 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.jst.server_adapters.sdk.feature"
- label="%featureName"
- version="3.3.101.qualifier"
- provider-name="%providerName"
- license-feature="org.eclipse.license"
- license-feature-version="1.0.0.qualifier">
-
- <description>
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes
- id="org.eclipse.jst.server_adapters.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.jst.server_adapters.feature.source"
- version="0.0.0"/>
-
-</feature>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.jst.server_adapters.sdk.feature"
+ label="%featureName"
+ version="3.3.101.qualifier"
+ provider-name="%providerName"
+ license-feature="org.eclipse.license"
+ license-feature-version="1.0.0.qualifier">
+
+ <description>
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+
+ <includes
+ id="org.eclipse.jst.server_adapters.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.jst.server_adapters.feature.source"
+ version="0.0.0"/>
+
+</feature>
diff --git a/features/org.eclipse.wst.server_adapters.feature/feature.xml b/features/org.eclipse.wst.server_adapters.feature/feature.xml
index e601349..398528b 100644
--- a/features/org.eclipse.wst.server_adapters.feature/feature.xml
+++ b/features/org.eclipse.wst.server_adapters.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.wst.server_adapters.feature"
label="%featureName"
- version="3.2.202.qualifier"
+ version="3.2.203.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.license"
license-feature-version="1.0.0.qualifier">
@@ -59,6 +59,6 @@
download-size="0"
install-size="0"
version="8.1.3.qualifier"
- unpack="false"/>
+ unpack="false"/>
</feature>
diff --git a/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml b/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml
index 8f99603..f370d17 100644
--- a/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.wst.server_adapters.sdk.feature"
label="%featureName"
- version="3.2.102.qualifier"
+ version="3.2.104.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.license"
license-feature-version="1.0.0.qualifier">
diff --git a/features/org.eclipse.wst.server_core.feature/feature.xml b/features/org.eclipse.wst.server_core.feature/feature.xml
index 42ac33c..edbf006 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.3.100.qualifier"
+ version="3.3.200.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.license"
license-feature-version="1.0.0.qualifier">
diff --git a/features/org.eclipse.wst.server_sdk.feature/feature.xml b/features/org.eclipse.wst.server_sdk.feature/feature.xml
index 26be5c1..1c4ae6a 100644
--- a/features/org.eclipse.wst.server_sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.server_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.wst.server_sdk.feature"
label="%featureName"
- version="3.3.101.qualifier"
+ version="3.3.201.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.license"
license-feature-version="1.0.0.qualifier">
diff --git a/features/org.eclipse.wst.server_ui.feature/feature.xml b/features/org.eclipse.wst.server_ui.feature/feature.xml
index f426f9c..656afb1 100644
--- a/features/org.eclipse.wst.server_ui.feature/feature.xml
+++ b/features/org.eclipse.wst.server_ui.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.wst.server_ui.feature"
label="%featureName"
- version="3.3.101.qualifier"
+ version="3.3.201.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.license"
license-feature-version="1.0.0.qualifier">
diff --git a/plugins/org.eclipse.jst.server.generic.jboss/build.properties b/plugins/org.eclipse.jst.server.generic.jboss/build.properties
index 6271748..a57ae49 100644
--- a/plugins/org.eclipse.jst.server.generic.jboss/build.properties
+++ b/plugins/org.eclipse.jst.server.generic.jboss/build.properties
@@ -15,5 +15,6 @@
icons/,\
buildfiles/,\
genericjboss.jar
+src.includes = build.properties
source.genericjboss.jar = servers/
jars.compile.order = genericjboss.jar
diff --git a/plugins/org.eclipse.jst.server.generic.jonas/build.properties b/plugins/org.eclipse.jst.server.generic.jonas/build.properties
index 179f110..39aa983 100644
--- a/plugins/org.eclipse.jst.server.generic.jonas/build.properties
+++ b/plugins/org.eclipse.jst.server.generic.jonas/build.properties
@@ -15,5 +15,6 @@
servers/,\
buildfiles/,\
genericjonas.jar
+src.includes = build.properties
jars.compile.order = genericjonas.jar
source.genericjonas.jar = servers/
diff --git a/plugins/org.eclipse.jst.server.generic.oc4j/build.properties b/plugins/org.eclipse.jst.server.generic.oc4j/build.properties
index ca37d55..1a01b25 100644
--- a/plugins/org.eclipse.jst.server.generic.oc4j/build.properties
+++ b/plugins/org.eclipse.jst.server.generic.oc4j/build.properties
@@ -15,5 +15,6 @@
plugin.properties,\
servers/,\
genericoc4j.jar
+src.includes = build.properties
source.genericoc4j.jar = servers/
jars.compile.order = genericoc4j.jar
diff --git a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
index c3c021a..2d43153 100644
--- a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.wst.server.core; singleton:=true
-Bundle-Version: 1.4.0.qualifier
+Bundle-Version: 1.4.100.qualifier
Bundle-Activator: org.eclipse.wst.server.core.internal.ServerPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
index ee87fa3..13fdda4 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
@@ -375,11 +375,18 @@
public RestartJob(String launchMode) {
super(NLS.bind(Messages.jobRestarting, Server.this.getName()));
this.launchMode = launchMode;
- setRule(Server.this);
}
protected IStatus run(IProgressMonitor monitor) {
- return restartImpl(launchMode, monitor);
+ try{
+ // Do begin rule in here instead of setRule on constructor to prevent deadlock
+ // on the default restart operation during the join() in the StartJob.
+ Job.getJobManager().beginRule(Server.this, monitor);
+ return restartImpl(launchMode, monitor);
+ }
+ finally{
+ Job.getJobManager().endRule(Server.this);
+ }
}
}
@@ -1891,7 +1898,7 @@
job.schedule();
}
- protected IStatus publishBeforeStart(IProgressMonitor monitor, boolean synchronous){
+ protected IStatus publishBeforeStart(IProgressMonitor monitor, final StartJob startJob, final boolean synchronous){
// check if we need to publish
byte pub = StartJob.PUBLISH_NONE;
@@ -1910,22 +1917,53 @@
pubJob.addJobChangeListener(new JobChangeAdapter(){
public void done(IJobChangeEvent event) {
IStatus status = event.getResult();
- if (status != null && status.getSeverity() == IStatus.ERROR)
- pubStatus[0] = status;
+ if (status != null && status.getSeverity() == IStatus.ERROR) {
+ pubStatus[0] = status;
+ if (Trace.INFO) {
+ Trace.trace(Trace.STRING_INFO,
+ "Skipping server start job schedule since the server publish failed on a publish before start server.");
+ }
+ } else {
+ if (Trace.INFO) {
+ Trace.trace(Trace.STRING_INFO,
+ "Scheduling server start job after successful publish.");
+ }
+ // Schedule the server start job since the publish operation is completed successfully.
+ startJob.schedule();
+
+ try {
+ if (synchronous)
+ startJob.join();
+ } catch (InterruptedException e) {
+ if (Trace.WARNING) {
+ Trace.trace(Trace.STRING_WARNING, "Error waiting for job", e);
+ }
+ }
+ }
}
});
-
pubJob.schedule();
- try{
+ try {
if (synchronous)
pubJob.join();
-
- }
- catch (InterruptedException ie){
+ } catch (InterruptedException ie) {
return Status.CANCEL_STATUS;
}
+ } else {
+ // Schedule the server start since a publish is not needed so
+ // Schedule the server start job since the publish operation is completed successfully.
+ startJob.schedule();
+
+ try {
+ if (synchronous)
+ startJob.join();
+ } catch (InterruptedException e) {
+ if (Trace.WARNING) {
+ Trace.trace(Trace.STRING_WARNING, "Error waiting for job", e);
+ }
+ }
}
return pubStatus[0];
}
@@ -1989,20 +2027,10 @@
// make sure that the delegate is loaded and the server state is correct
loadAdapter(ServerBehaviourDelegate.class, null);
- boolean synchronous = ((ServerType)getServerType()).synchronousStart();
- IStatus status = publishBeforeStart(monitor,synchronous);
-
- if (status != null && status.getSeverity() == IStatus.ERROR){
- if (Trace.FINEST) {
- Trace.trace(Trace.STRING_FINEST, "Failed publish job during start routine");
- }
- return;
- }
-
StartJob startJob = new StartJob(mode2);
// 287442 - only do publish after start if the server start is successful.
final IProgressMonitor monitor2 = monitor;
- final boolean synchronous2 = synchronous;
+ final boolean synchronous = ((ServerType)getServerType()).synchronousStart();
startJob.addJobChangeListener(new JobChangeAdapter() {
public void done(IJobChangeEvent event) {
IStatus resultStatus = event.getResult();
@@ -2012,17 +2040,29 @@
"Skipping auto publish after server start since the server start failed.");
}
} else {
- publishAfterStart(monitor2,synchronous2,null);
+ publishAfterStart(monitor2,synchronous,null);
}
}
});
- startJob.schedule();
- try {
- if(synchronous)
- startJob.join();
- } catch (InterruptedException e) {
- if (Trace.WARNING) {
- Trace.trace(Trace.STRING_WARNING, "Error waiting for job", e);
+ // Forces synchronous start since this method is supposed to wait until the publish operation is completed.
+ IStatus status = publishBeforeStart(monitor, startJob, true);
+
+ if (status != null && status.getSeverity() == IStatus.ERROR){
+ if (Trace.FINEST) {
+ Trace.trace(Trace.STRING_FINEST, "Failed publish job during start routine");
+ }
+ return;
+ }
+
+ if (((ServerType)getServerType()).startBeforePublish()) {
+ startJob.schedule();
+ try {
+ if(synchronous)
+ startJob.join();
+ } catch (InterruptedException e) {
+ if (Trace.WARNING) {
+ Trace.trace(Trace.STRING_WARNING, "Error waiting for job", e);
+ }
}
}
}
@@ -2040,18 +2080,6 @@
// make sure that the delegate is loaded and the server state is correct
loadAdapter(ServerBehaviourDelegate.class, null);
- boolean synchronous = ((ServerType)getServerType()).synchronousStart();
- IStatus status = publishBeforeStart(null,synchronous);
-
- if (status != null && status.getSeverity() == IStatus.ERROR){
- if (Trace.FINEST) {
- Trace.trace(Trace.STRING_FINEST, "Failed publish job during start routine");
- }
- if (opListener != null)
- opListener.done(Status.OK_STATUS);
- return;
- }
-
// check the publish flag (again) to determine when to call opListener.done
byte pub = StartJob.PUBLISH_NONE;
if (ServerCore.isAutoPublishing() && shouldPublish()) {
@@ -2073,8 +2101,22 @@
}
});
}
+
+ final boolean synchronous = ((ServerType)getServerType()).synchronousStart();
+ // For publish before start servers, the start job will only be kicked off if the publishing
+ // operation is completed successfully.
+ IStatus status = publishBeforeStart(null, startJob, synchronous);
+
+ if (status != null && status.getSeverity() == IStatus.ERROR){
+ if (Trace.FINEST) {
+ Trace.trace(Trace.STRING_FINEST, "Failed publish job during start routine");
+ }
+ if (opListener != null)
+ opListener.done(Status.OK_STATUS);
+ return;
+ }
+
// 287442 - only do publish after start if the server start is successful.
- final boolean synchronous2 = synchronous;
if (pub == StartJob.PUBLISH_AFTER) {
startJob.addJobChangeListener(new JobChangeAdapter() {
public void done(IJobChangeEvent event) {
@@ -2089,19 +2131,19 @@
opListener.done(Status.OK_STATUS);
}
else {
- publishAfterStart(null,synchronous2,opListener);
+ publishAfterStart(null,synchronous,opListener);
}
}
});
- }
- startJob.schedule();
-
- try {
- if(synchronous)
- startJob.join();
- } catch (InterruptedException e) {
- if (Trace.WARNING) {
- Trace.trace(Trace.STRING_WARNING, "Error waiting for job", e);
+ startJob.schedule();
+
+ try {
+ if(synchronous)
+ startJob.join();
+ } catch (InterruptedException e) {
+ if (Trace.WARNING) {
+ Trace.trace(Trace.STRING_WARNING, "Error waiting for job", e);
+ }
}
}
}
@@ -2113,15 +2155,6 @@
// make sure that the delegate is loaded and the server state is correct
loadAdapter(ServerBehaviourDelegate.class, monitor);
- IStatus status = publishBeforeStart(monitor,true);
-
- if (status != null && status.getSeverity() == IStatus.ERROR){
- if (Trace.FINEST) {
- Trace.trace(Trace.STRING_FINEST, "Failed publish job during start routine");
- }
- return;
- }
-
StartJob startJob = new StartJob(mode2);
// 287442 - only do publish after start if the server start is successful.
final IProgressMonitor monitor2 = monitor;
@@ -2138,13 +2171,25 @@
}
}
});
- startJob.schedule();
- try {
- startJob.join();
- } catch (InterruptedException e) {
- if (Trace.WARNING) {
- Trace.trace(Trace.STRING_WARNING, "Error waiting for job", e);
+ IStatus status = publishBeforeStart(monitor, startJob, true);
+
+ if (status != null && status.getSeverity() == IStatus.ERROR){
+ if (Trace.FINEST) {
+ Trace.trace(Trace.STRING_FINEST, "Failed publish job during start routine");
+ }
+ return;
+ }
+
+ if (((ServerType)getServerType()).startBeforePublish()) {
+ startJob.schedule();
+
+ try {
+ startJob.join();
+ } catch (InterruptedException e) {
+ if (Trace.WARNING) {
+ Trace.trace(Trace.STRING_WARNING, "Error waiting for job", e);
+ }
}
}
}
@@ -3147,6 +3192,7 @@
Trace.trace(Trace.STRING_FINEST, "Restarting server: " + getName());
}
+ ISchedulingRule curRule = null;
try {
try {
// synchronous restart
@@ -3163,14 +3209,21 @@
}
// if restart is not implemented by the server adopter
// lets provide a default implementation
+ // Ending the current rule setup by the RestartJob to prevent deadlock since the StopJob triggered
+ // by the stop(false) also setup the Server as the scheduling rule.
+ curRule = Job.getJobManager().currentRule();
+ Job.getJobManager().endRule(curRule);
stop(false);
start(launchMode, monitor);
-
} catch (Exception e) {
if (Trace.SEVERE) {
Trace.trace(Trace.STRING_SEVERE, "Error restarting server", e);
}
return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorStartFailed, getName()), e);
+ } finally {
+ if (curRule != null) {
+ Job.getJobManager().beginRule(curRule, monitor);
+ }
}
return Status.OK_STATUS;
}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerWorkingCopy.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerWorkingCopy.java
index 40dd6bc..77d8a4d 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerWorkingCopy.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerWorkingCopy.java
@@ -448,7 +448,7 @@
wch.setDirty(false);
if (getServerState() == IServer.STATE_STARTED)
- autoPublish();
+ server.autoPublish();
return server;
}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
index e1b258e..352faf3 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2011 IBM Corporation and others.
+ * Copyright (c) 2005, 2012 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
@@ -920,11 +920,32 @@
if (monitor.isCanceled())
return Status.CANCEL_STATUS;
+ /**
+ * Trace time for when publishing begins.
+ */
+ long publishStartTime = 0;
+ /**
+ * Trace time of the previous publishing action.
+ */
+ long previousPublishActionTime = publishStartTime;
+ if(Trace.PERFORMANCE) {
+ publishStartTime = System.currentTimeMillis();
+ previousPublishActionTime = publishStartTime;
+ }
try {
+ if(Trace.PERFORMANCE) {
+ Trace.trace(Trace.STRING_PERFORMANCE, "ServerBehaviourDelegate.publish(): start");
+ }
if (Trace.FINEST) {
Trace.trace(Trace.STRING_FINEST, "Starting publish");
}
publishStart(ProgressUtil.getSubMonitorFor(monitor, 1000));
+ long currentTime = 0;
+ if(Trace.PERFORMANCE) {
+ currentTime = System.currentTimeMillis();
+ Trace.trace(Trace.STRING_PERFORMANCE, "ServerBehaviourDelegate.publish(): publish start <" + (currentTime - previousPublishActionTime) + "> " + getServer().getServerType().getId());
+ previousPublishActionTime = currentTime;
+ }
if (monitor.isCanceled())
return Status.CANCEL_STATUS;
@@ -937,6 +958,12 @@
// execute publishers
taskStatus = executePublishers(kind, moduleList, deltaKindList, monitor, info2);
+ if(Trace.PERFORMANCE) {
+ currentTime = System.currentTimeMillis();
+ Trace.trace(Trace.STRING_PERFORMANCE, "ServerBehaviourDelegate.publish(): run publishers <" + (currentTime - previousPublishActionTime) + "> " + getServer().getServerType().getId());
+ previousPublishActionTime = currentTime;
+ }
+
monitor.setTaskName(mainTaskMsg);
if (taskStatus != null && !taskStatus.isOK())
tempMulti.addAll(taskStatus);
@@ -947,12 +974,22 @@
// publish the server
publishServer(kind, ProgressUtil.getSubMonitorFor(monitor, 1000));
monitor.setTaskName(mainTaskMsg);
+ if(Trace.PERFORMANCE) {
+ currentTime = System.currentTimeMillis();
+ Trace.trace(Trace.STRING_PERFORMANCE, "ServerBehaviourDelegate.publish(): publisher server <" + (currentTime - previousPublishActionTime) + "> " + getServer().getServerType().getId());
+ previousPublishActionTime = currentTime;
+ }
if (monitor.isCanceled())
return Status.CANCEL_STATUS;
// publish modules
publishModules(kind, moduleList, deltaKindList, tempMulti, monitor);
+ if(Trace.PERFORMANCE) {
+ currentTime = System.currentTimeMillis();
+ Trace.trace(Trace.STRING_PERFORMANCE, "ServerBehaviourDelegate.publish(): publish modules <" + (currentTime - previousPublishActionTime) + "> " + getServer().getServerType().getId());
+ previousPublishActionTime = currentTime;
+ }
if (monitor.isCanceled())
return Status.CANCEL_STATUS;
@@ -972,6 +1009,11 @@
// end the publishing
try {
publishFinish(ProgressUtil.getSubMonitorFor(monitor, 500));
+ if(Trace.PERFORMANCE) {
+ long currentTime = System.currentTimeMillis();
+ Trace.trace(Trace.STRING_PERFORMANCE, "ServerBehaviourDelegate.publish(): publish finish <" + (currentTime - previousPublishActionTime) + "> " + getServer().getServerType().getId());
+ previousPublishActionTime = currentTime;
+ }
} catch (CoreException ce) {
if (Trace.INFO) {
Trace.trace(Trace.STRING_INFO, "CoreException publishing to " + toString(), ce);
@@ -983,6 +1025,9 @@
}
tempMulti.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorPublishing, e));
}
+ if(Trace.PERFORMANCE) {
+ Trace.trace(Trace.STRING_PERFORMANCE, "ServerBehaviourDelegate.publish(): <" + (previousPublishActionTime - publishStartTime) + "> " + getServer().getServerType().getId());
+ }
}
if (Trace.FINEST) {
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishHelper.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishHelper.java
index 77c4601..f0b3922 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishHelper.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishHelper.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2011 IBM Corporation and others.
+ * Copyright (c) 2007, 2013 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
@@ -536,6 +536,10 @@
for (int i = 0; i < size; i++) {
IStatus[] stat = copy(resources[i], path, monitor);
addArrayToList(status, stat);
+
+ if (monitor.isCanceled()) {
+ break;
+ }
}
IStatus[] stat = new IStatus[status.size()];
@@ -544,6 +548,9 @@
}
private IStatus[] copy(IModuleResource resource, IPath path, IProgressMonitor monitor) {
+ if (monitor.isCanceled()) {
+ return new IStatus[0];
+ }
String name = resource.getName();
if (Trace.PUBLISHING) {
Trace.trace(Trace.STRING_PUBLISHING, "Copying: " + name + " to " + path.toString());
@@ -557,12 +564,26 @@
IModuleFile mf = (IModuleFile) resource;
path = path.append(mf.getModuleRelativePath()).append(name);
File f = path.toFile().getParentFile();
- if (!f.exists())
- f.mkdirs();
- try {
- copyFile(mf, path);
- } catch (CoreException ce) {
- status.add(ce.getStatus());
+ if (f.exists()) {
+ try {
+ copyFile(mf, path);
+ } catch (CoreException ce) {
+ status.add(ce.getStatus());
+ }
+ } else {
+ // Create the parent directory.
+ if (f.mkdirs()) {
+ try {
+ copyFile(mf, path);
+ } catch (CoreException ce) {
+ status.add(ce.getStatus());
+ }
+ } else {
+ if (Trace.PUBLISHING) {
+ Trace.trace(Trace.STRING_PUBLISHING, "Failed to create the directory: " + f.getAbsolutePath() );
+ }
+ status.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorMkdir, f.getAbsolutePath()), null));
+ }
}
}
IStatus[] stat = new IStatus[status.size()];
diff --git a/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
index 867aacd..92897f7 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.wst.server.preview.adapter;singleton:=true
-Bundle-Version: 1.1.100.qualifier
+Bundle-Version: 1.1.101.qualifier
Bundle-Activator: org.eclipse.wst.server.preview.adapter.internal.core.PreviewPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
index 8359599..5dcb985 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
@@ -168,12 +168,12 @@
}
protected static File getJavaExecutable() {
- // do not detect on the Mac OS
+ // set the 'java.home' system property on the Mac OS
if (Platform.getOS().equals(Constants.OS_MACOSX))
- return null;
+ System.setProperty("java.home", "/Library/Java/Home");
// retrieve the 'java.home' system property. If that directory doesn't exist, return null
- File javaHome;
+ File javaHome;
try {
javaHome = new File(System.getProperty("java.home")).getCanonicalFile();
} catch (IOException e) {
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 c3c3048..7ef10dd 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.4.2.qualifier
+Bundle-Version: 1.4.100.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/Timer.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Timer.java
index f6b1024..d6f3993 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Timer.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Timer.java
@@ -99,6 +99,7 @@
}
if (!isCancelled) {
if (listener != null) {
+ isRunning = false;
listener.actionPerformed(new ActionEvent(Timer.this, 0, "", System.currentTimeMillis(), 0));
}
} else {
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 53b0bc1..94a1145 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
@@ -864,7 +864,7 @@
for (int i = 0; i < size; i++) {
IStatus status = errorMap.get(mods[i]);
- if (status == null && !list.contains(mods[i]))
+ if ((status == null || status.getSeverity() != IStatus.ERROR) && !list.contains(mods[i]))
list.add(mods[i]);
}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
index 9e81277..e0f619c 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
@@ -739,6 +739,10 @@
serverNameToolBar.getControl().setVisible(serverNameModified);
}
}
+
+ if (hostname != null && server != null) {
+ hostname.setText(server.getHost());
+ }
listener.serverSelected(server);
// Fire the property change event.
List<ServerCreationWizardPageExtension> pageExtensionLst = ServerUIPlugin.getServerCreationWizardPageExtensions();
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewServerComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewServerComposite.java
index 62a3190..03255fe 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewServerComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewServerComposite.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2003, 2011 IBM Corporation and others.
+ * Copyright (c) 2003, 2012 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
@@ -346,13 +346,13 @@
if (server != null && module != null) {
IStatus status = isSupportedModule(server, module);
if (status != null) {
- if (status.getSeverity() == IStatus.ERROR)
+ if (status.getSeverity() == IStatus.ERROR) {
wizard.setMessage(status.getMessage(), IMessageProvider.ERROR);
- else if (status.getSeverity() == IStatus.WARNING)
+ server = null;
+ } else if (status.getSeverity() == IStatus.WARNING)
wizard.setMessage(status.getMessage(), IMessageProvider.WARNING);
else if (status.getSeverity() == IStatus.INFO)
wizard.setMessage(status.getMessage(), IMessageProvider.INFORMATION);
- server = null;
}
}