Cleanup
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeWorkingCopy.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeWorkingCopy.java
index 0404fee..ca2e493 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeWorkingCopy.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeWorkingCopy.java
@@ -136,6 +136,15 @@
 	public void setLocation(IPath path);
 
 	/**
+	 * Returns whether this runtime is a stub (used for compilation only)
+	 * or a full runtime.
+	 * 
+	 * @param stub <code>true</code> if this runtime is a stub, and
+	 *    <code>false</code> otherwise
+	 */
+	public void setStub(boolean stub);
+
+	/**
 	 * Commits the changes made in this working copy. If there is
 	 * no extant runtime instance with a matching id and runtime
 	 * type, this will create a runtime instance with attributes
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitorManager.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitorManager.java
index 8a8a9c8..99973ec 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitorManager.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitorManager.java
@@ -23,6 +23,7 @@
 	/**
 	 * Returns the array of ports that are currently being monitored.
 	 *
+	 * @param server a server
 	 * @return an array containing the monitored ports for this server
 	 */
 	public IMonitoredServerPort[] getMonitoredPorts(IServer server);
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerTask.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerTask.java
index 526b0d5..ff46017 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerTask.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerTask.java
@@ -31,7 +31,8 @@
 	/**
 	 * Returns true if the given type (given by the id) can use this task. This
 	 * result is based on the result of the getTypeIds() method.
-	 *
+	 * 
+	 * @param id a server type id
 	 * @return boolean
 	 */
 	public boolean supportsType(String id);
@@ -43,6 +44,7 @@
 	 * 
 	 * @param server the server
 	 * @param modules a list containing IModule arrays
+	 * @return a possibly empty array of optional tasks 
 	 */
 	public IOptionalTask[] getTasks(IServer server, List modules);
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/LaunchableAdapter.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/LaunchableAdapter.java
index 151723d..87e4e56 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/LaunchableAdapter.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/LaunchableAdapter.java
@@ -24,6 +24,8 @@
 
 	/**
 	 * LaunchableAdapter constructor comment.
+	 * 
+	 * @param element a configuration element
 	 */
 	public LaunchableAdapter(IConfigurationElement element) {
 		super();
@@ -51,7 +53,7 @@
 	}
 
 	/**
-	 * 
+	 * @see ILaunchableAdapter#getLaunchable(IServer, IModuleArtifact)
 	 */
 	public Object getLaunchable(IServer server, IModuleArtifact object) {
 		try {
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java
index 9e5e27c..9a99e1d 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java
@@ -36,7 +36,14 @@
 	private transient List listeners;
 
 	/**
-	 * Module constructor comment.
+	 * Module constructor.
+	 * 
+	 * @param factory
+	 * @param id
+	 * @param name
+	 * @param type
+	 * @param version
+	 * @param project
 	 */
 	public Module(ModuleFactory factory, String id, String name, String type, String version, IProject project) {
 		super();
@@ -107,7 +114,8 @@
 	/**
 	 * Returns the child modules of this module.
 	 *
-	 * @return org.eclipse.wst.server.core.model.IModule[]
+	 * @param monitor a progress monitor
+	 * @return a possibly empty array of modules
 	 */
 	public IModule[] getChildModules(IProgressMonitor monitor) {
 		try {
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleArtifactAdapter.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleArtifactAdapter.java
index ec29085..22fe514 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleArtifactAdapter.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleArtifactAdapter.java
@@ -27,6 +27,8 @@
 
 	/**
 	 * ModuleArtifactAdapter constructor comment.
+	 * 
+	 * @param element a configuration element
 	 */
 	public ModuleArtifactAdapter(IConfigurationElement element) {
 		super();
@@ -126,7 +128,14 @@
 		
 		return context;
 	}*/
-	
+
+	/**
+	 * Returns true if enabled for the given object.
+	 * 
+	 * @param obj an object
+	 * @return <code>true</code> if enabled
+	 * @throws CoreException if anything goes wrong
+	 */
 	public boolean isEnabled(Object obj) throws CoreException {
 		IEvaluationContext context = new EvaluationContext(null, obj);
 		context.addVariable("selection", obj);
@@ -149,7 +158,10 @@
 	}
 
 	/**
+	 * Returns the module artifact.
 	 * 
+	 * @param obj an object
+	 * @return the module artifact, or <code>null</code>
 	 */
 	public IModuleArtifact getModuleArtifact(Object obj) {
 		try {
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactory.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactory.java
index c4a8f52..828be11 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactory.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactory.java
@@ -31,6 +31,8 @@
 
 	/**
 	 * ModuleFactory constructor comment.
+	 * 
+	 * @param element a configuration element
 	 */
 	public ModuleFactory(IConfigurationElement element) {
 		super();
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
index 8594f3f..0c9fbf1 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
@@ -30,7 +30,9 @@
 	private IModuleResource[] resources = new IModuleResource[0];
 
 	/**
-	 * ModulePublishInfo constructor comment.
+	 * ModulePublishInfo constructor.
+	 * 
+	 * @param moduleId a module id
 	 */
 	public ModulePublishInfo(String moduleId) {
 		super();
@@ -39,7 +41,9 @@
 	}
 	
 	/**
-	 * ModulePublishInfo constructor comment.
+	 * ModulePublishInfo constructor.
+	 * 
+	 * @param memento a memento
 	 */
 	public ModulePublishInfo(IMemento memento) {
 		super();
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProgressUtil.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProgressUtil.java
index 822b330..761c763 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProgressUtil.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProgressUtil.java
@@ -56,9 +56,10 @@
 	 * Return a sub-progress monitor with the given amount on the
 	 * current progress monitor.
 	 *
-	 * @param monitor org.eclipse.core.runtime.IProgressMonitor
-	 * @param ticks int
-	 * @return org.eclipse.core.runtime.IProgressMonitor
+	 * @param monitor a progress monitor
+	 * @param ticks the number of ticks
+	 * @param style a style
+	 * @return a progress monitor
 	 */
 	public static IProgressMonitor getSubMonitorFor(IProgressMonitor monitor, int ticks, int style) {
 		if (monitor == null)
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProjectProperties.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProjectProperties.java
index df5c5df..35532e5 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProjectProperties.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProjectProperties.java
@@ -34,7 +34,9 @@
 	protected transient List listeners;
 
 	/**
-	 * ProjectProperties constructor comment.
+	 * ProjectProperties constructor.
+	 * 
+	 * @param project a project
 	 */
 	public ProjectProperties(IProject project) {
 		super();
@@ -144,9 +146,11 @@
 	}
 
 	/**
-	 * Sets the preferred runtime server for the project.
-	 *
-	 * @param server org.eclipse.wst.server.core.IServer
+	 * Sets the default server.
+	 * 
+	 * @param server a server
+	 * @param monitor a progress monitor
+	 * @throws CoreException if anything goes wrong
 	 */
 	public void setDefaultServer(IServer server, IProgressMonitor monitor) throws CoreException {
 		loadPreferences();
@@ -192,6 +196,7 @@
 	 * 
 	 * @param runtime the target runtime
 	 * @param monitor a progress monitor
+	 * @throws CoreException if anything goes wrong
 	 */
 	public void setRuntimeTarget(IRuntime runtime, IProgressMonitor monitor) throws CoreException {
 		loadPreferences();
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java
index 357dd26..92abfda 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java
@@ -621,7 +621,8 @@
 
 	/**
 	 * Returns the runtime with the given id.
-	 *
+	 * 
+	 * @param id a runtime id
 	 * @return IRuntime
 	 */
 	public IRuntime getRuntime(String id) {
@@ -648,6 +649,8 @@
 	
 	/**
 	 * Sets the default runtime. Test API - do not use.
+	 * 
+	 * @param runtime a runtime
 	 */
 	public void setDefaultRuntime(IRuntime runtime) {
 		defaultRuntime = runtime;
@@ -684,7 +687,8 @@
 
 	/**
 	 * Returns the server with the given id.
-	 *
+	 * 
+	 * @param id a server id
 	 * @return a server
 	 */
 	public IServer getServer(String id) {
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java
index 1b1fe08..52d8b7b 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java
@@ -26,27 +26,37 @@
 	protected IRuntimeType runtimeType;
 	protected RuntimeDelegate delegate;
 
+	/**
+	 * Create a new runtime.
+	 * 
+	 * @param file
+	 */
 	public Runtime(IFile file) {
 		super(file);
 	}
 
+	/**
+	 * Create a new runtime.
+	 * 
+	 * @param file
+	 * @param id
+	 * @param runtimeType
+	 */
 	public Runtime(IFile file, String id, IRuntimeType runtimeType) {
 		super(file, id);
 		this.runtimeType = runtimeType;
 		map.put(PROP_NAME, runtimeType.getName());
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.server.core.model.IRuntime#getRuntimeType()
+	/**
+	 * @see IRuntime#getRuntimeType()
 	 */
 	public IRuntimeType getRuntimeType() {
 		return runtimeType;
 	}
 
 	/**
-	 * Return the validation status of the runtime.
-	 * 
-	 * @return the status
+	 * @see IRuntime#validate(IProgressMonitor)
 	 */
 	public IStatus validate(IProgressMonitor monitor) {
 		try {
@@ -57,7 +67,7 @@
 		}
 	}
 
-	public RuntimeDelegate getDelegate(IProgressMonitor monitor) {
+	protected RuntimeDelegate getDelegate(IProgressMonitor monitor) {
 		if (delegate != null)
 			return delegate;
 		
@@ -92,16 +102,22 @@
 			delegate.dispose();
 	}
 	
+	/**
+	 * @see IRuntime#createWorkingCopy()
+	 */
 	public IRuntimeWorkingCopy createWorkingCopy() {
 		return new RuntimeWorkingCopy(this); 
 	}
 
+	/**
+	 * @see IRuntime#isWorkingCopy()
+	 */
 	public boolean isWorkingCopy() {
 		return false;
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.server.core.model.IRuntime#getLocation()
+	/**
+	 * @see IRuntime#getLocation()
 	 */
 	public IPath getLocation() {
 		String temp = getAttribute(PROP_LOCATION, (String)null);
@@ -127,6 +143,9 @@
 		return getAttribute(PROP_TEST_ENVIRONMENT, false);
 	}
 
+	/**
+	 * @see IRuntime#isStub()
+	 */
 	public boolean isStub() {
 		return getAttribute(PROP_STUB, false);
 	}
@@ -154,6 +173,9 @@
 			memento.putString(PROP_RUNTIME_TYPE_ID, runtimeType.getId());
 	}
 
+	/**
+	 * @see Object#equals(Object)
+	 */
 	public boolean equals(Object obj) {
 		if (!(obj instanceof Runtime))
 			return false;
@@ -162,7 +184,7 @@
 		return runtime.getId().equals(getId());
 	}
 	
-	/* (non-Javadoc)
+	/** (non-Javadoc)
 	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
 	 */
 	public Object getAdapter(Class adapter) {
@@ -171,7 +193,10 @@
 			return delegate;
 		return null;
 	}
-	
+
+	/**
+	 * @see Object#toString()
+	 */
 	public String toString() {
 		return "Runtime[" + getId() + ", " + getName() + ", " + getLocation() + ", " + getRuntimeType() + "]";
 	}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeTargetHandler.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeTargetHandler.java
index f85b0e5..1b88c4c 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeTargetHandler.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeTargetHandler.java
@@ -26,6 +26,11 @@
 	private IConfigurationElement element;
 	private RuntimeTargetHandlerDelegate delegate;
 
+	/**
+	 * Create a new runtime target handler.
+	 * 
+	 * @param element a configuration element
+	 */
 	public RuntimeTargetHandler(IConfigurationElement element) {
 		super();
 		this.element = element;
@@ -80,6 +85,7 @@
 	 * id) can be opened with this editor. This result is based on
 	 * the result of the getServerResources() method.
 	 *
+	 * @param runtimeType a runtime type
 	 * @return boolean
 	 */
 	public boolean supportsRuntimeType(IRuntimeType runtimeType) {
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeWorkingCopy.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeWorkingCopy.java
index 93576cf..b359b37 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeWorkingCopy.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeWorkingCopy.java
@@ -15,10 +15,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.osgi.util.NLS;
@@ -33,8 +30,12 @@
 	protected WorkingCopyHelper wch;
 	
 	protected RuntimeDelegate workingCopyDelegate;
-	
-	// from existing runtime
+
+	/**
+	 * Create a new runtime working copy from existing runtime.
+	 * 
+	 * @param runtime
+	 */
 	public RuntimeWorkingCopy(Runtime runtime) {
 		super(runtime.getFile());
 		this.runtime = runtime;
@@ -45,7 +46,13 @@
 		wch = new WorkingCopyHelper(this);
 	}
 	
-	// new runtime
+	/**
+	 * Create a new runtime working copy for a new runtime.
+	 * 
+	 * @param file
+	 * @param id
+	 * @param runtimeType
+	 */
 	public RuntimeWorkingCopy(IFile file, String id, IRuntimeType runtimeType) {
 		super(file, id, runtimeType);
 		wch = new WorkingCopyHelper(this);
@@ -60,14 +67,23 @@
 		// throw CoreException if the id already exists
 	}
 
+	/**
+	 * @see IRuntime#isWorkingCopy()
+	 */
 	public boolean isWorkingCopy() {
 		return true;
 	}
 
+	/**
+	 * @see IRuntime#createWorkingCopy()
+	 */
 	public IRuntimeWorkingCopy createWorkingCopy() {
 		return this;
 	}
 
+	/**
+	 * @see RuntimeDelegate#setAttribute(String, int)
+	 */
 	public void setAttribute(String attributeName, int value) {
 		wch.setAttribute(attributeName, value);
 	}
@@ -88,6 +104,9 @@
 		wch.setAttribute(attributeName, value);
 	}
 
+	/**
+	 * @see IRuntimeWorkingCopy#setName(String)
+	 */
 	public void setName(String name) {
 		wch.setName(name);
 		boolean set = getAttribute(PROP_ID_SET, false);
@@ -98,15 +117,31 @@
 	public void setTestEnvironment(boolean b) {
 		setAttribute(PROP_TEST_ENVIRONMENT, b);
 	}
+	
+	/**
+	 * @see IRuntimeWorkingCopy#setStub(boolean)
+	 */
+	public void setStub(boolean b) {
+		setAttribute(PROP_STUB, b);
+	}
 
+	/**
+	 * @see IRuntimeWorkingCopy#isDirty()
+	 */
 	public boolean isDirty() {
 		return wch.isDirty();
 	}
 	
+	/**
+	 * @see IRuntimeWorkingCopy#getOriginal()
+	 */
 	public IRuntime getOriginal() {
 		return runtime;
 	}
 
+	/**
+	 * @see IRuntimeWorkingCopy#setReadOnly(boolean)
+	 */
 	public void setReadOnly(boolean b) {
 		wch.setLocked(b);
 	}
@@ -114,7 +149,10 @@
 	public void setPrivate(boolean b) {
 		wch.setPrivate(b);
 	}
-	
+
+	/**
+	 * @see IRuntimeWorkingCopy#setLocation(IPath)
+	 */
 	public void setLocation(IPath path) {
 		if (path == null)
 			setAttribute(PROP_LOCATION, (String)null);
@@ -122,6 +160,9 @@
 			setAttribute(PROP_LOCATION, path.toString());
 	}
 
+	/**
+	 * @see IRuntimeWorkingCopy#save(boolean, IProgressMonitor)
+	 */
 	public IRuntime save(boolean force, IProgressMonitor monitor) throws CoreException {
 		monitor = ProgressUtil.getMonitorFor(monitor);
 		monitor.subTask(NLS.bind(Messages.savingTask, getName()));
@@ -153,6 +194,9 @@
 
 	protected void updateRuntimeReferences(final String oldId, final String newId, final IRuntime origRuntime) {
 		class UpdateRuntimeReferencesJob extends Job {
+			/**
+			 * A job that updates runtime references when a runtime changes.
+			 */
 			public UpdateRuntimeReferencesJob() {
 				super(NLS.bind(Messages.savingTask, newId));
 			}
@@ -212,6 +256,9 @@
 			return;
 
 		class RebuildRuntimeReferencesJob extends Job {
+			/**
+			 * A job that rebuilds projects when a runtime changes.
+			 */
 			public RebuildRuntimeReferencesJob() {
 				super(Messages.taskPerforming);
 			}
@@ -245,7 +292,7 @@
 		job.schedule();
 	}
 
-	public RuntimeDelegate getWorkingCopyDelegate(IProgressMonitor monitor) {
+	protected RuntimeDelegate getWorkingCopyDelegate(IProgressMonitor monitor) {
 		if (workingCopyDelegate != null)
 			return workingCopyDelegate;
 		
@@ -296,7 +343,12 @@
 		wch.firePropertyChangeEvent(propertyName, oldValue, newValue);
 	}
 	
-	public void setDefaults(IProgressMonitor monitor) {
+	/**
+	 * Set the defaults.
+	 * 
+	 * @param monitor
+	 */
+	protected void setDefaults(IProgressMonitor monitor) {
 		try {
 			getWorkingCopyDelegate(monitor).setDefaults();
 		} catch (Exception e) {