diff --git a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/Deployment.java b/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/Deployment.java
--- a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/Deployment.java
+++ b/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/Deployment.java
@@ -41,7 +41,6 @@
package org.netbeans.modules.j2ee.deployment.devmodules.api;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -83,7 +82,14 @@
private static boolean alsoStartTargets = true; //TODO - make it a property? is it really needed?
private static Deployment instance = null;
-
+
+ /**
+ * Deployment mode enumeration
+ */
+ public static enum Mode {
+ RUN, DEBUG, PROFILE;
+ }
+
public static synchronized Deployment getDefault () {
if (instance == null) {
instance = new Deployment ();
@@ -94,6 +100,19 @@
private Deployment () {
}
+ /*Deploys a web J2EE module to server.
+ * @param clientModuleUrl URL of module within a J2EE Application that
+ * should be used as a client (can be null for standalone modules)
+ *
+ *
Note: if null for J2EE application the first web or client module will be used.
+ *
+ * @return complete URL to be displayed in browser (server part plus the client module and/or client part provided as a parameter)
+ * @deprecated Should use {@link Deployment#deploy(org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider, org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.Mode, java.lang.String, java.lang.String, boolean) } instead
+ */
+ public String deploy (J2eeModuleProvider jmp, boolean debug, String clientModuleUrl, String clientUrlPart, boolean forceRedeploy) throws DeploymentException {
+ return deploy(jmp, debug ? Mode.DEBUG : Mode.RUN, clientModuleUrl, clientUrlPart, forceRedeploy, null);
+ }
+
/** Deploys a web J2EE module to server.
* @param clientModuleUrl URL of module within a J2EE Application that
* should be used as a client (can be null for standalone modules)
@@ -102,11 +121,18 @@
*
* @return complete URL to be displayed in browser (server part plus the client module and/or client part provided as a parameter)
*/
- public String deploy (J2eeModuleProvider jmp, boolean debugmode, String clientModuleUrl, String clientUrlPart, boolean forceRedeploy) throws DeploymentException {
- return deploy(jmp, debugmode, clientModuleUrl, clientUrlPart, forceRedeploy, null);
+ public String deploy (J2eeModuleProvider jmp, Mode mode, String clientModuleUrl, String clientUrlPart, boolean forceRedeploy) throws DeploymentException {
+ return deploy(jmp, mode, clientModuleUrl, clientUrlPart, forceRedeploy, null);
}
-
- public String deploy (J2eeModuleProvider jmp, boolean debugmode, String clientModuleUrl, String clientUrlPart, boolean forceRedeploy, Logger logger) throws DeploymentException {
+
+ /**
+ * @deprecated Should use {@link Deployment#deploy(org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider, org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.Mode, java.lang.String, java.lang.String, boolean, org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.Logger) } instead
+ */
+ public String deploy (J2eeModuleProvider jmp, boolean debug, String clientModuleUrl, String clientUrlPart, boolean forceRedeploy, Logger logger) throws DeploymentException {
+ return deploy(jmp, debug ? Mode.DEBUG : Mode.RUN, clientModuleUrl, clientUrlPart, forceRedeploy, logger);
+ }
+
+ public String deploy (J2eeModuleProvider jmp, Mode mode, String clientModuleUrl, String clientUrlPart, boolean forceRedeploy, Logger logger) throws DeploymentException {
DeploymentTargetImpl deploymentTarget = new DeploymentTargetImpl(jmp, clientModuleUrl);
TargetModule[] modules = null;
@@ -151,8 +177,8 @@
boolean serverReady = false;
TargetServer targetserver = new TargetServer(deploymentTarget);
- if (alsoStartTargets || debugmode) {
- targetserver.startTargets(debugmode, progress);
+ if (alsoStartTargets || mode != Mode.RUN) {
+ targetserver.startTargets(mode, progress);
} else { //PENDING: how do we know whether target does not need to start when deploy only
server.getServerInstance().start(progress);
}
diff --git a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerInstance.java b/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerInstance.java
--- a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerInstance.java
+++ b/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerInstance.java
@@ -965,7 +965,7 @@
public void startDebug(ProgressUI ui) throws ServerException {
try {
setServerState(STATE_WAITING);
- startTarget(null, ui, true);
+ startTarget(null, ui, Deployment.Mode.DEBUG);
_retrieveDebugInfo(null);
} finally {
refresh();
@@ -997,7 +997,7 @@
try {
setServerState(STATE_WAITING);
// target == null - admin server
- startProfileImpl(null, settings, forceRestart, ui);
+ _startProfile(null, settings, forceRestart, ui);
} finally {
refresh();
}
@@ -1021,7 +1021,7 @@
if (stopped) {
// restart in the mode the server was running in before
if (inProfile) {
- startProfileImpl(null, profilerSettings, true, ui);
+ _startProfile(null, profilerSettings, true, ui);
} else if (inDebug) {
startDebugTarget(null, ui);
} else {
@@ -1075,7 +1075,7 @@
* @throws ServerException if the target cannot be started.
*/
public void startTarget(Target target, ProgressUI ui) throws ServerException {
- startTarget(target, ui, false);
+ startTarget(target, ui, Deployment.Mode.RUN);
}
/**
@@ -1087,7 +1087,7 @@
* @throws ServerException if the server cannot be started.
*/
public void startDebugTarget(Target target, ProgressUI ui) throws ServerException {
- startTarget(target, ui, true);
+ startTarget(target, ui, Deployment.Mode.DEBUG);
_retrieveDebugInfo(target);
}
@@ -1203,7 +1203,7 @@
/**
* @throws ServerException if the server cannot be started.
*/
- private void startTarget(Target target, ProgressUI ui, boolean debugMode) throws ServerException {
+ private void startTarget(Target target, ProgressUI ui, Deployment.Mode mode) throws ServerException {
StartServer ss = getStartServer();
// No StartServer, have to assume manually started
@@ -1221,50 +1221,58 @@
boolean needsRestart = ss.needsRestart(target);
if (ss.isAlsoTargetServer(target)) {
- if (debugMode) {
- if (ss.isDebuggable(target)) { // already running in debug mode
- if (! needsRestart) {
- return;
+ switch(mode) {
+ case PROFILE: {
+ assert false; // should never come this far
+ }
+ case DEBUG: {
+ if (ss.isDebuggable(target)) { // already running in debug mode
+ if (! needsRestart) {
+ return;
+ }
+ if (!canControlAdmin || !canDebug) {
+ String msg = NbBundle.getMessage(ServerInstance.class, "MSG_RestartingThisServerNotSupported", getDisplayName());
+ throw new ServerException(msg);
+ }
+ _stop(ui);
+ } else if (isReallyRunning()) { // running but not debuggable
+ if (!canControlAdmin || !canDebug) {
+ String msg = NbBundle.getMessage(ServerInstance.class, "MSG_DebugginThisServerNotSupported", getDisplayName());
+ throw new ServerException(msg);
+ }
+ _stop(ui);
}
- if (!canControlAdmin || !canDebug) {
- String msg = NbBundle.getMessage(ServerInstance.class, "MSG_RestartingThisServerNotSupported", getDisplayName());
- throw new ServerException(msg);
- }
- _stop(ui);
- } else if (isReallyRunning()) { // running but not debuggable
- if (!canControlAdmin || !canDebug) {
+ // the server is stopped now
+ if (!canDebug) {
String msg = NbBundle.getMessage(ServerInstance.class, "MSG_DebugginThisServerNotSupported", getDisplayName());
throw new ServerException(msg);
}
- _stop(ui);
- }
- // the server is stopped now
- if (!canDebug) {
- String msg = NbBundle.getMessage(ServerInstance.class, "MSG_DebugginThisServerNotSupported", getDisplayName());
- throw new ServerException(msg);
+ // resolve conflicts with other servers
+ ConflictData cd = anotherServerDebuggable(target);
+ if (cd != null) { // another server instance with the same parameters
+ resolveServerConflict(target, ui, cd);
+ }
+ _startDebug(target, ui);
+ break;
}
- // resolve conflicts with other servers
- ConflictData cd = anotherServerDebuggable(target);
- if (cd != null) { // another server instance with the same parameters
- resolveServerConflict(target, ui, cd);
- }
- _startDebug(target, ui);
- } else {
- if (isReallyRunning()) { // already running
- if (! needsRestart) {
- return;
+ case RUN: {
+ if (isReallyRunning()) { // already running
+ if (! needsRestart) {
+ return;
+ }
+ if (!canControlAdmin) {
+ String msg = NbBundle.getMessage(ServerInstance.class, "MSG_RestartingThisServerNotSupported", getDisplayName());
+ throw new ServerException(msg);
+ }
+ _stop(ui);
}
if (!canControlAdmin) {
- String msg = NbBundle.getMessage(ServerInstance.class, "MSG_RestartingThisServerNotSupported", getDisplayName());
+ String msg = NbBundle.getMessage(ServerInstance.class, "MSG_StartingThisServerNotSupported", getDisplayName());
throw new ServerException(msg);
}
- _stop(ui);
+ _start(ui);
+ break;
}
- if (!canControlAdmin) {
- String msg = NbBundle.getMessage(ServerInstance.class, "MSG_StartingThisServerNotSupported", getDisplayName());
- throw new ServerException(msg);
- }
- _start(ui);
}
} else { // not also target server
// this block ensure a running admin server to control other targets
@@ -1275,28 +1283,33 @@
}
_start(ui);
}
- if (debugMode) {
- if (ss.isDebuggable(target)) {
- if ( ! needsRestart) {
- return;
+ switch (mode) {
+ case DEBUG: {
+ if (ss.isDebuggable(target)) {
+ if ( ! needsRestart) {
+ return;
+ }
+ _stop(target, ui);
+ } else if (ss.isRunning(target)) {
+ _stop(target, ui);
}
- _stop(target, ui);
- } else if (ss.isRunning(target)) {
- _stop(target, ui);
+ ConflictData cd = anotherServerDebuggable(target);
+ if (cd != null) { //another server instance with the same parameters
+ resolveServerConflict(target, ui, cd);
+ }
+ _startDebug(target, ui);
+ break;
}
- ConflictData cd = anotherServerDebuggable(target);
- if (cd != null) { //another server instance with the same parameters
- resolveServerConflict(target, ui, cd);
+ case RUN: {
+ if (ss.isRunning(target)) {
+ if (! needsRestart) {
+ return;
+ }
+ _stop(target, ui);
+ }
+ _start(target, ui);
+ break;
}
- _startDebug(target, ui);
- } else {
- if (ss.isRunning(target)) {
- if (! needsRestart) {
- return;
- }
- _stop(target, ui);
- }
- _start(target, ui);
}
}
}
@@ -1345,7 +1358,7 @@
}
/** start server in the profile mode */
- private void startProfileImpl(
+ private void _startProfile(
Target target,
ProfilerServerSettings settings,
boolean forceRestart,
diff --git a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/TargetServer.java b/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/TargetServer.java
--- a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/TargetServer.java
+++ b/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/TargetServer.java
@@ -38,8 +38,6 @@
* Version 2 license, then the option applies only if the new code is
* made subject to such option by the copyright holder.
*/
-
-
package org.netbeans.modules.j2ee.deployment.impl;
import java.io.File;
@@ -71,6 +69,7 @@
import javax.enterprise.deploy.spi.TargetModuleID;
import javax.enterprise.deploy.spi.exceptions.TargetException;
import javax.enterprise.deploy.spi.status.ProgressObject;
+import org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.Mode;
import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeApplication;
import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule;
import org.netbeans.modules.j2ee.deployment.devmodules.api.ModuleChangeReporter;
@@ -82,7 +81,10 @@
import org.netbeans.modules.j2ee.deployment.plugins.spi.IncrementalDeployment;
import org.netbeans.modules.j2ee.deployment.plugins.spi.config.ModuleConfiguration;
import org.netbeans.modules.j2ee.deployment.plugins.spi.TargetModuleIDResolver;
+import org.netbeans.modules.j2ee.deployment.profiler.api.ProfilerServerSettings;
+import org.netbeans.modules.j2ee.deployment.profiler.spi.Profiler;
import org.openide.util.Exceptions;
+import org.openide.util.Lookup;
/**
* Encapsulates a set of ServerTarget(s), provides a wrapper for deployment
@@ -99,7 +101,6 @@
public class TargetServer {
private static final Logger LOGGER = Logger.getLogger(TargetServer.class.getName());
-
private Target[] targets;
private final ServerInstance instance;
private final DeploymentTarget dtarget;
@@ -136,7 +137,7 @@
}
incremental = instance.getIncrementalDeployment();
- if (incremental != null && !checkServiceImplementations())
+ if (incremental != null && !checkServiceImplementations())
incremental = null;
try {
@@ -186,7 +187,7 @@
return false;
}
- if (deployable == null || null == deployable.getContentDirectory() || !instance.getIncrementalDeployment().canFileDeploy(targetz[0], deployable))
+ if (deployable == null || null == deployable.getContentDirectory() || !instance.getIncrementalDeployment().canFileDeploy(targetz[0], deployable))
return false;
return true;
@@ -359,8 +360,8 @@
}
if (! redeployHasSharer ||
toDistribute.contains(sharer.getTarget())) {
- shared = true;
- addToUndeployWhenSharedDetected.add(sharer.delegate());
+ shared = true;
+ addToUndeployWhenSharedDetected.add(sharer.delegate());
} else {
removeFromRedeployWhenSharedDetected.add(sharer);
addToDistributeWhenSharedDetected.add(sharer.getTarget());
@@ -423,7 +424,7 @@
Set toRedeploy = new HashSet(); //type TargetModule
for (int i=0; i