Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst')
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModule.java129
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModuleArtifact.java31
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModuleType.java63
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IProjectProperties.java36
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IPublishListener.java45
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntime.java212
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeLifecycleListener.java48
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeTargetHandler.java51
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeType.java144
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeWorkingCopy.java172
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServer.java664
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerAttributes.java349
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerLifecycleListener.java48
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerListener.java34
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerType.java226
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerWorkingCopy.java283
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerCore.java512
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerEvent.java223
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerPort.java139
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/TaskModel.java95
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Base.java388
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ChainedJob.java100
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Client.java129
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/DeletedModule.java86
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IClient.java74
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableRuntime.java59
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableServer.java92
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ILaunchableAdapter.java42
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IMemento.java189
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleListener.java22
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModulePublishHelper.java28
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleResourceDeltaVisitor.java56
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleVisitor.java27
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IMonitoredServerPort.java56
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IOrdered.java33
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IPublishTask.java59
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IRuntimeLocator.java72
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerLocator.java79
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitor.java55
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitorManager.java74
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IStartup.java23
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableRuntime.java290
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java203
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/LaunchableAdapter.java75
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleArtifactAdapter.java196
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleEvent.java100
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactory.java160
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactoryEvent.java49
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFile.java136
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleKind.java44
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleProperties.java133
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java325
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleResourceDelta.java75
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleType.java123
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProgressUtil.java69
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProjectProperties.java174
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/PublishTask.java113
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RestartServerJob.java61
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java209
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeLocator.java89
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeType.java147
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeWorkingCopy.java320
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerListener.java72
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitor.java118
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitorDelegate.java41
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitorManager.java371
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerNotificationManager.java153
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java1016
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPreferences.java319
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerSchedulingRule.java44
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerType.java360
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerWorkingCopy.java719
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StartServerJob.java40
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Trace.java100
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/UpdateServerJob.java37
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/WorkingCopyHelper.java170
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/XMLMemento.java449
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/provisional/ServerLocatorDelegate.java47
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ClientDelegate.java50
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFile.java25
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFolder.java24
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleResource.java34
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleResourceDelta.java161
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IURLProvider.java46
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/InternalInitializer.java65
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/LaunchableAdapterDelegate.java39
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleArtifactAdapterDelegate.java37
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleDelegate.java112
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryDelegate.java139
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublishOperation.java164
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublishTaskDelegate.java51
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeDelegate.java311
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeLocatorDelegate.java54
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeTargetHandlerDelegate.java70
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java828
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerDelegate.java413
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/package.html30
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/package.xml25
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/package.html58
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/package.xml38
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/HttpLaunchable.java47
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/IStaticWeb.java25
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/NullModuleArtifact.java45
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ProjectModuleFactoryDelegate.java205
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishAdapter.java37
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/RuntimeLifecycleAdapter.java43
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ServerLifecycleAdapter.java43
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/WebResource.java59
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/package.html45
-rw-r--r--plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/package.xml30
110 files changed, 0 insertions, 15747 deletions
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModule.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModule.java
deleted file mode 100644
index 91fc261a0..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModule.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-/**
- * A module is a unit of "content" that can be published to a
- * server.
- * <p>
- * All modules have a module type, which is fixed for the
- * lifetime of the module. The set of module types (or
- * "kinds") is open-ended.
- * </p>
- * <p>
- * All modules are created by module factories using the moduleFactories
- * extension point.
- * </p>
- * <p>
- * The content of a module is a collection of file and folder
- * resources in the workspace.
- * </p>
- * <p>
- * In principle, a module exists independent of any
- * particular server. The same module instance can be associated
- * with multiple server instances at the same time. That is
- * why you cannot ask the module which server it's associated
- * with.
- * </p>
- * <p>
- * [issue: Equality/identify for modules?]
- * </p>
- * <p>This interface is not intended to be implemented by clients.</p>
- * <p>
- * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- * @since 1.0
- */
-public interface IModule extends IAdaptable {
- /**
- * Returns the id of this module.
- * Each module has a distinct id, used to distinguish this
- * module from all other modules in the workspace (and
- * within a server). Ids are intended to be used internally
- * as keys; they are not intended to be shown to end users.
- *
- * @return the module id
- */
- public String getId();
-
- /**
- * Returns the displayable name for this module.
- * <p>
- * Note that this name is appropriate for the current locale.
- * </p>
- *
- * @return a displayable name for this module
- */
- public String getName();
-
- /**
- * Returns the type of this module.
- *
- * @return the module type
- */
- public IModuleType getModuleType();
-
- /**
- * Returns the workbench project that this module is contained in,
- * or null if the module is outside of the workspace.
- *
- * @return a project
- */
- public IProject getProject();
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found, or if the delegate is not
- * loaded.
- * <p>
- * This method will not check the delegate classes for adapting
- * unless they are already loaded. No plugin loading will occur
- * when calling this method. It is suitable for popup menus and
- * other UI artifacts where performance is a concern.
- * </p>
- *
- * @param adapter the adapter class to look up
- * @return a object castable to the given class,
- * or <code>null</code> if this object does not
- * have an adapter for the given class
- * @see IAdaptable#getAdapter(Class)
- * @see #loadAdapter(Class, IProgressMonitor)
- */
- public Object getAdapter(Class adapter);
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> only if
- * no such object can be found after loading and initializing
- * delegates.
- * <p>
- * This method will force a load and initialization of all delegate
- * classes and check them for adapting.
- * </p>
- *
- * @param adapter the adapter class to look up
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a object castable to the given class,
- * or <code>null</code> if this object does not
- * have an adapter for the given class
- * @see #getAdapter(Class)
- */
- public Object loadAdapter(Class adapter, IProgressMonitor monitor);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModuleArtifact.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModuleArtifact.java
deleted file mode 100644
index 939139879..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModuleArtifact.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-/**
- * A module artifact is a resource within a module, which can be launched
- * on the server. Examples of module artifacts are servlets, HTML pages,
- * or EJB beans.
- * <p>
- * Objects that provide an adapter of this type will be considered by the
- * contextual Run on Server launch support.
- * </p>
- *
- * @see org.eclipse.wst.server.core.model.ModuleArtifactAdapterDelegate
- * @since 1.0
- */
-public interface IModuleArtifact {
- /**
- * Returns the module that this artifact is a part of.
- *
- * @return the module that this artifact is contained in
- */
- public IModule getModule();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModuleType.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModuleType.java
deleted file mode 100644
index 98800b88b..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModuleType.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-/**
- * Represents the type of a module.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * <p>
- * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- * @since 1.0
- */
-public interface IModuleType {
- /**
- * Returns the module type id.
- * <p>
- * The module type id is a "." separated string uniquely identifying the
- * type of module. Like a java package name, it should scope the type from
- * most general to specific. For instance, "jst.web".
- * </p>
- *
- * @return the module type id
- */
- public String getId();
-
- /**
- * Returns the displayable name for this module type.
- * <p>
- * Note that this name is appropriate for the current locale.
- * </p>
- *
- * @return a displayable name for this module type
- */
- public String getName();
-
- /**
- * Returns the version (specification level) of this module type,
- * e.g. "1.0" or "1.3.2a".
- * <p>
- * The version will normally be a series of numbers separated by
- * ".", but it could be different depending on the type of module.
- * For module types where a version does not make sense (e.g.
- * a static Web module), <code>null</code> is returned.
- * </p>
- *
- * @return the specification version of this module type, or
- * <code>null</code> if there is no version
- */
- public String getVersion();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IProjectProperties.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IProjectProperties.java
deleted file mode 100644
index d8dbeed5e..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IProjectProperties.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-/**
- * This interface holds information on the properties of a given project.
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- * <p>
- * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- * @deprecated Project facet support should now be used instead of this API. @see
- * org.eclipse.wst.common.project.facet.core.IFacetedProject#getRuntime()
- */
-public interface IProjectProperties {
- /**
- * Returns the current runtime target for this project.
- *
- * @return the current runtime target, or <code>null</code> if the project has
- * no runtime target
- * @deprecated Project facet support should now be used instead of this API. @see
- * org.eclipse.wst.common.project.facet.core.IFacetedProject#getRuntime()
- */
- public IRuntime getRuntimeTarget();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IPublishListener.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IPublishListener.java
deleted file mode 100644
index 0c1646821..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IPublishListener.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core;
-
-import org.eclipse.core.runtime.IStatus;
-/**
- * A publish listener is used to listen for publishing events from a server.
- * The events are typically received in the following order:
- *
- * publishStarted() - The publish operation is starting
- * publishModuleStarted() - This section is fired for each module in the server
- * publishModuleFinished() - This module is finished publishing
- * publishModuleStarted() - The next module is publishing
- * ...
- * publishFinished() - The publish operation is finished
- * <p>
- * Publish listeners are added to a server via IServer.addPublishListener().
- * </p>
- * @see IServer
- * @since 1.0
- */
-public interface IPublishListener {
- /**
- * Fired to notify that publishing has begun.
- *
- * @param server the server that publishing started on
- */
- public void publishStarted(IServer server);
-
- /**
- * Publishing has finished. Returns the overall status.
- *
- * @param server the server that publishing finished on
- * @param status indicating what (if anything) went wrong
- */
- public void publishFinished(IServer server, IStatus status);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntime.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntime.java
deleted file mode 100644
index d187c8cd3..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntime.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-
-import org.eclipse.core.runtime.*;
-/**
- * Represents a runtime instance. Every runtime is an instance of a
- * particular, fixed runtime type.
- * <p>
- * Servers have a runtime. The server runtime corresponds to the
- * installed code base for the server. The main role played by the server
- * runtime is in identifying code libraries to compile or build against.
- * In the case of local servers, the server runtime may play a secondary role
- * of being used to launch the server for testing. Having the server runtimes
- * identified as an entity separate from the server itself facilitates sharing
- * server runtimes between several servers.
- * </p>
- * <p>
- * IRuntime implements IAdaptable to allow users to obtain a runtime-type-specific
- * class. By casting the runtime extension to the type prescribed in the API
- * documentation for that particular runtime type, the client can access
- * runtime-type-specific properties and methods. getAdapter() may involve plugin
- * loading, and should not be called from popup menus, etc.
- * </p>
- * <p>
- * The server framework maintains a global list of all known runtime instances
- * ({@link ServerCore#getRuntimes()}).
- * </p>
- * <p>
- * All runtimes have a unique id. Two runtimes (or more likely a runtime and it's
- * working copy) with the same id are equal, and two runtimes with different ids
- * are never equal.
- * </p>
- * <p>
- * Two runtimes are identical if and only if they have the same id.
- * </p>
- * <p>This interface is not intended to be implemented by clients.</p>
- *
- * @see IRuntimeWorkingCopy
- * @since 1.0
- */
-public interface IRuntime extends IAdaptable {
- /**
- * Returns the displayable name for this runtime.
- * <p>
- * Note that this name is appropriate for the current locale.
- * </p>
- *
- * @return a displayable name
- */
- public String getName();
-
- /**
- * Returns the id of this runtime instance.
- * Each runtime (of a given type) has a distinct id, fixed for
- * its lifetime. Ids are intended to be used internally as keys;
- * they are not intended to be shown to end users.
- * <p>
- * For the id of the runtime type, use {@link IRuntimeType#getId()}
- * </p>
- *
- * @return the runtime id
- */
- public String getId();
-
- /**
- * Deletes the persistent representation of this runtime.
- *
- * @throws CoreException if there was any error received while deleting the runtime
- * or if this method is called on a working copy
- */
- public void delete() throws CoreException;
-
- /**
- * Returns whether this runtime is marked read only.
- * When a runtime is read only, working copies can be created but
- * they cannot be saved.
- *
- * @return <code>true</code> if this runtime is marked as read only,
- * and <code>false</code> otherwise
- */
- public boolean isReadOnly();
-
- /**
- * Returns true if this is a working copy.
- *
- * @return <code>true</code> if this runtime is a working copy
- * (can be cast to IRuntimeWorkingCopy), and
- * <code>false</code> otherwise
- */
- public boolean isWorkingCopy();
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found, or if the delegate is not
- * loaded.
- * <p>
- * This method will not check the delegate classes for adapting
- * unless they are already loaded. No plugin loading will occur
- * when calling this method. It is suitable for popup menus and
- * other UI artifacts where performance is a concern.
- * </p>
- *
- * @param adapter the adapter class to look up
- * @return a object castable to the given class,
- * or <code>null</code> if this object does not
- * have an adapter for the given class
- * @see IAdaptable#getAdapter(Class)
- * @see #loadAdapter(Class, IProgressMonitor)
- */
- public Object getAdapter(Class adapter);
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> only if
- * no such object can be found after loading and initializing
- * delegates.
- * <p>
- * This method will force a load and initialization of all delegate
- * classes and check them for adapting.
- * </p>
- *
- * @param adapter the adapter class to look up
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a object castable to the given class,
- * or <code>null</code> if this object does not
- * have an adapter for the given class
- * @see #getAdapter(Class)
- */
- public Object loadAdapter(Class adapter, IProgressMonitor monitor);
-
- /**
- * Returns the type of this runtime instance.
- *
- * @return the runtime type
- */
- public IRuntimeType getRuntimeType();
-
- /**
- * Returns a runtime working copy for modifying this runtime instance.
- * If this instance is already a working copy, it is returned.
- * If this instance is not a working copy, a new runtime working copy
- * is created with the same id and attributes.
- * Clients are responsible for saving or releasing the working copy when
- * they are done with it.
- * <p>
- * The runtime working copy is related to this runtime instance
- * in the following ways:
- * <pre>
- * this.getWorkingCopy().getId() == this.getId()
- * this.getWorkingCopy().getOriginal() == this
- * </pre>
- * </p>
- * <p>
- * [issue: IRuntimeWorkingCopy extends IRuntime.
- * Runtime.getWorkingCopy() create a new working copy;
- * RuntimeWorkingCopy.getWorkingCopy() returns this.
- * This may be convenient in code that is ignorant of
- * whether they are dealing with a working copy or not.
- * However, it is hard for clients to manage working copies
- * with this design.
- * </p>
- *
- * @return a new working copy
- */
- public IRuntimeWorkingCopy createWorkingCopy();
-
- /**
- * Returns the absolute path in the local file system to the root of the runtime,
- * typically the installation directory.
- *
- * @return the location of this runtime, or <code>null</code> if none
- */
- public IPath getLocation();
-
- /**
- * Returns whether this runtime is a stub (used for compilation only)
- * or a full runtime.
- *
- * @return <code>true</code> if this runtime is a stub, and
- * <code>false</code> otherwise
- */
- public boolean isStub();
-
- /**
- * Validates this runtime instance. This method returns an error if the runtime
- * is pointing to a null or invalid location (e.g. not pointing to the correct
- * installation directory), or if the runtime-type-specific properties are missing
- * or invalid.
- * <p>
- * This method is not on the working copy so that the runtime can be validated at
- * any time.
- * </p>
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a status object with code <code>IStatus.OK</code> if this
- * runtime is valid, otherwise a status object indicating what is
- * wrong with it
- */
- public IStatus validate(IProgressMonitor monitor);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeLifecycleListener.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeLifecycleListener.java
deleted file mode 100644
index e3067c886..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeLifecycleListener.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-/**
- * Listener interface for changes to runtimes.
- * <p>
- * This interface is fired whenever a runtime is added, modified, or removed.
- * All events are fired post-change, so that all server tools API called as a
- * result of the event will return the updated results. (for example, on
- * runtimeAdded the new server will be in the global list of runtimes
- * ({@link ServerCore#getRuntimes()}), and on runtimeRemoved the runtime will
- * not be in the list.
- * </p>
- *
- * @see ServerCore
- * @see IRuntime
- * @since 1.0
- */
-public interface IRuntimeLifecycleListener {
- /**
- * A new runtime has been created.
- *
- * @param runtime the new runtime
- */
- public void runtimeAdded(IRuntime runtime);
-
- /**
- * An existing runtime has been updated or modified.
- *
- * @param runtime the modified runtime
- */
- public void runtimeChanged(IRuntime runtime);
-
- /**
- * A existing runtime has been removed.
- *
- * @param runtime the removed runtime
- */
- public void runtimeRemoved(IRuntime runtime);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeTargetHandler.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeTargetHandler.java
deleted file mode 100644
index 01712ff99..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeTargetHandler.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-
-import org.eclipse.core.runtime.IAdaptable;
-/**
- * A runtime target handler is used to apply some properties to a project
- * this is being targeted to a given runtime. For instance, the handler
- * might update the classpath of a Java project to include the runtime's
- * classes, add validation for the given runtime, or restrict the type of
- * resources that can be created.
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- * <p>
- * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- * @deprecated use project facets instead of runtime targets
- */
-public interface IRuntimeTargetHandler extends IAdaptable {
- /**
- * Returns the id of this runtime target handler.
- * Each known runtime target handler has a distinct id.
- * Ids are intended to be used internally as keys; they are not
- * intended to be shown to end users.
- *
- * @return the runtime target handler id
- */
- public String getId();
-
- /**
- * Returns <code>true</code> if this runtime target handler supports
- * (can work with) the given runtime.
- *
- * @param runtimeType a runtime type
- * @return <code>true</code> if the handler can accept the given runtime type,
- * and <code>false</code> otherwise
- */
- public boolean supportsRuntimeType(IRuntimeType runtimeType);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeType.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeType.java
deleted file mode 100644
index 346cf34ee..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeType.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-/**
- * Represents a (server) runtime type from which runtime instances can be
- * created.
- * <p>
- * The server core framework supports
- * an open-ended set of runtime types, which are contributed via
- * the <code>runtimeTypes</code> extension point in the server core
- * plug-in. Runtime type objects carry no state (all information is
- * read-only and is supplied by the server runtime type declaration).
- * The global list of known runtime types is available via
- * {@link ServerCore#getRuntimeTypes()}.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * <p>
- * [issue: What value do runtimes add?
- * It's main role is for setting up the Java build classpath
- * for projects holding modules that must be Java compiled.
- * If the notion of module is to transcend the vagaries of particular
- * types of server, and, indeed, be published to multiple servers
- * simultaneously, then matters of build classpath had better not
- * be tied to the particular servers involved.]
- * </p>
- * <p>
- * Two runtime types are identical if and only if they have the same id.
- * </p>
- *
- * @since 1.0
- */
-public interface IRuntimeType {
- /**
- * Returns the id of this runtime type.
- * Each known server runtime type has a distinct id.
- * Ids are intended to be used internally as keys; they are not
- * intended to be shown to end users.
- *
- * @return the runtime type id
- */
- public String getId();
-
- /**
- * Returns the displayable name for this runtime type.
- * <p>
- * Note that this name is appropriate for the current locale.
- * </p>
- *
- * @return a displayable name for this runtime type
- */
- public String getName();
-
- /**
- * Returns the displayable description for this runtime type.
- * <p>
- * Note that this description is appropriate for the current locale.
- * </p>
- *
- * @return a displayable description for this runtime type
- */
- public String getDescription();
-
- /**
- * Returns the displayable vendor name for this runtime type. If the
- * runtime type did not specific a vendor, an empty string is returned.
- * <p>
- * Note that this description is appropriate for the current locale.
- * </p>
- *
- * @return a displayable vendor name for this runtime type
- */
- public String getVendor();
-
- /**
- * Returns the displayable version name for this runtime type. If the
- * runtime type did not specific a vendor, an empty string is returned.
- * <p>
- * Note that this description is appropriate for the current locale.
- * </p>
- *
- * @return a displayable version name for this runtime type
- */
- public String getVersion();
-
- /**
- * Returns an array of module types that this runtime type can support.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return the array of module types {@link IModuleType}
- */
- public IModuleType[] getModuleTypes();
-
- /**
- * Returns whether this runtime type can be instantiated.
- * <p>
- * [issue: It's unclear what this method is for.
- * The implementation checks whether the "class"
- * and "workingCopyClass" attributes (both optional) were specified.
- * What would be the point of a runtime type that didn't
- * have both of these attributes and could not be "created"?]
- * </p>
- *
- * @return <code>true</code> if this type of runtime can be
- * instantiated, and <code>false</code> if it cannot
- * @see #createRuntime(String, IProgressMonitor)
- */
- public boolean canCreate();
-
- /**
- * Creates a working copy instance of this runtime type.
- * After setting various properties of the working copy,
- * the client should call {@link IRuntimeWorkingCopy#save(boolean, IProgressMonitor)}
- * to bring the runtime instance into existence.
- * <p>
- * Default values are set by calling the instance's delegate.
- * Clients should assume that the location and other properties are
- * not set and must be explicitly set by the client.
- * </p>
- *
- * @param id the id to assign to the runtime instance; a generated
- * id is used if id is <code>null</code> or an empty string
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a new runtime working copy with the given id
- * @throws CoreException if an exception occurs while creating this runtime
- * or setting it's default values
- */
- public IRuntimeWorkingCopy createRuntime(String id, IProgressMonitor monitor) throws CoreException;
-} \ No newline at end of file
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
deleted file mode 100644
index 66e8de37a..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IRuntimeWorkingCopy.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-
-import java.beans.PropertyChangeListener;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-/**
- * A working copy runtime object used for formulating changes
- * to a runtime instance ({@link IRuntime}). Changes made on a
- * working copy do not occur (and are not persisted) until a
- * save() is performed.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- *
- * @see IRuntime
- * @since 1.0
- */
-public interface IRuntimeWorkingCopy extends IRuntime {
- /**
- * Status code (value 1) returned from the save() method when the save
- * failed with force set to <code>false</code> because the runtime has
- * been modified and saved since this working copy was created.
- *
- * @see #save(boolean, IProgressMonitor)
- */
- public static final int SAVE_CONFLICT = 1;
-
- /**
- * Property change name (value "name") used when the name of the runtime
- * changes.
- *
- * @see #addPropertyChangeListener(PropertyChangeListener)
- * @see #removePropertyChangeListener(PropertyChangeListener)
- */
- public static final String PROPERTY_NAME = "name";
-
- /**
- * Property change name (value "location") used when the location of the
- * runtime changes.
- *
- * @see #addPropertyChangeListener(PropertyChangeListener)
- * @see #removePropertyChangeListener(PropertyChangeListener)
- */
- public static final String PROPERTY_LOCATION = "location";
-
- /**
- * Sets the displayable name for this runtime.
- * <p>
- * The name should be appropriate for the current locale.
- * </p>
- *
- * @param name a displayable name
- * @see IRuntime#getName()
- */
- public void setName(String name);
-
- /**
- * Sets or unsets whether this runtime is marked as read only.
- * When a runtime is read only, working copies can be created but
- * they cannot be saved.
- *
- * @param readOnly <code>true</code> to set this runtime to be marked
- * read only, and <code>false</code> to unset
- */
- public void setReadOnly(boolean readOnly);
-
- /**
- * Returns whether this working copy has unsaved changes.
- *
- * @return <code>true</code> if this working copy has unsaved
- * changes, and <code>false</code> otherwise
- */
- public boolean isDirty();
-
- /**
- * Adds a property change listener to this runtime.
- * <p>
- * Once registered, a listener starts receiving notification of
- * property changes to this runtime. The listener continues to receive
- * notifications until it is removed.
- * Has no effect if an identical listener is already registered.
- * </p>
- *
- * @param listener a property change listener
- * @see #removePropertyChangeListener(PropertyChangeListener)
- */
- public void addPropertyChangeListener(PropertyChangeListener listener);
-
- /**
- * Removes a property change listener from this runtime.
- * Has no effect if the listener is not registered.
- *
- * @param listener a property change listener
- * @see #addPropertyChangeListener(PropertyChangeListener)
- */
- public void removePropertyChangeListener(PropertyChangeListener listener);
-
- /**
- * Returns the runtime instance that this working copy is
- * associated with.
- * <p>
- * For a runtime working copy created by a call to
- * {@link IRuntime#createWorkingCopy()},
- * <code>this.getOriginal()</code> returns the original
- * runtime object. For a runtime working copy just created by
- * a call to {@link IRuntimeType#createRuntime(String, IProgressMonitor)},
- * <code>this.getOriginal()</code> returns <code>null</code>.
- * </p>
- *
- * @return the associated runtime instance, or <code>null</code> if none
- */
- public IRuntime getOriginal();
-
- /**
- * Sets the absolute path in the local file system to the root of the runtime,
- * typically the installation directory.
- *
- * @param path the location of this runtime, or <code>null</code> if none
- * @see IRuntime#getLocation()
- */
- 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
- * taken from this working copy, and return that object.
- * <p>
- * If there an existing runtime instance with a matching id and
- * runtime type, this will change the runtime instance accordingly.
- * The returned runtime will be the same runtime this is returned
- * from getOriginal(), after the changes have been applied.
- * Otherwise, this method will return a newly created runtime.
- * </p>
- * Runtimes can be saved even when they have invalid properties. It
- * is the clients responsibility to call validate() or check the
- * properties before saving.
- * <p>
- * [issue: What is lifecycle for RuntimeWorkingCopyDelegate
- * associated with this working copy?]
- * </p>
- *
- * @param force <code>true</code> to force the save, or <code>false</code>
- * otherwise
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a new runtime instance
- * @throws CoreException if the save could not be completed
- * @see #SAVE_CONFLICT
- */
- public IRuntime save(boolean force, IProgressMonitor monitor) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServer.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServer.java
deleted file mode 100644
index 9e21ba03e..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServer.java
+++ /dev/null
@@ -1,664 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2004, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core;
-
-import org.eclipse.core.runtime.*;
-/**
- * Represents a server instance. Every server is an instance of a
- * particular, fixed server type.
- * <p>
- * Not surprisingly, the notion of <b>server</b> is central in the web tools
- * server infrastructure. In this context, understand that a server is
- * a web server of some ilk. It could be a simple web server lacking Java
- * support, or an J2EE based server, or perhaps even some kind of database
- * server. A more exact definition is not required for the purposes of this API.
- * From a tool-centric point of view, a server
- * is something that the developer is writing "content" for.
- * The unit of content is termed a module.
- * In a sense, the server exists, but lacks useful content. The
- * development task is to provide that content. The content can include
- * anything from simple, static HTML web pages to complex, highly dynamic
- * web applications.
- * In the course of writing and debugging this content,
- * the developer will want to test their content on a web server, to see how it
- * gets served up. For this they will need to launch a server process running on
- * some host machine (often the local host on which the IDE is running), or
- * attach to a server that's already running on a remote (or local) host.
- * The newly developed content sitting in the developer's workspace needs to
- * end up in a location and format that the running server can use for its
- * serving purposes.
- * </p>
- * <p>
- * In this picture, an <code>IServer</code> object is a proxy for the real web
- * server. Through this proxy, a client can configure the server, and start,
- * stop, and restart it.
- * </p>
- * <p>
- * The server framework maintains a global list of all known server instances
- * ({@link ServerCore#getServers()}).
- * </p>
- * <p>
- * [rough notes:
- * Server has a state.
- * Server can be started, stopped, and restarted.
- * To modify server attributes, get a working copy, modify it, and then save it
- * to commit the changes.
- * Server attributes. Serialization.
- * Chained working copies for runtime, server configuration.
- * Server has a set of root modules.
- * Modules have state wrt a server.
- * Restarting modules.
- * ]
- * </p>
- * <p>
- * Two servers are identical if and only if they have the same id.
- * </p>
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- *
- * @since 1.0
- */
-public interface IServer extends IServerAttributes {
- /**
- * An operation listener is used to receive notification back about a
- * specific server operation, such as starting or stopping a server.
- *
- * @since 1.0
- */
- public interface IOperationListener {
- /**
- * Called once when the operation is complete.
- *
- * @param result a status object with code <code>IStatus.OK</code> if
- * the operation completed successfully, otherwise a status object
- * indicating why it didn't
- */
- public void done(IStatus result);
- }
-
- /**
- * Server state constant (value 0) indicating that the
- * server is in an unknown state.
- *
- * @see #getServerState()
- * @see #getModuleState(IModule[])
- */
- public static final int STATE_UNKNOWN = 0;
-
- /**
- * Server state constant (value 1) indicating that the
- * server is starting, but not yet ready to serve content.
- *
- * @see #getServerState()
- * @see #getModuleState(IModule[])
- */
- public static final int STATE_STARTING = 1;
-
- /**
- * Server state constant (value 2) indicating that the
- * server is ready to serve content.
- *
- * @see #getServerState()
- * @see #getModuleState(IModule[])
- */
- public static final int STATE_STARTED = 2;
-
- /**
- * Server state constant (value 3) indicating that the
- * server is shutting down.
- *
- * @see #getServerState()
- * @see #getModuleState(IModule[])
- */
- public static final int STATE_STOPPING = 3;
-
- /**
- * Server state constant (value 4) indicating that the
- * server is stopped.
- *
- * @see #getServerState()
- * @see #getModuleState(IModule[])
- */
- public static final int STATE_STOPPED = 4;
-
- /**
- * Publish state constant (value 0) indicating that it's
- * in an unknown state.
- *
- * @see #getServerPublishState()
- * @see #getModulePublishState(IModule[])
- */
- public static final int PUBLISH_STATE_UNKNOWN = 0;
-
- /**
- * Publish state constant (value 1) indicating that there
- * is no publish required.
- *
- * @see #getServerPublishState()
- * @see #getModulePublishState(IModule[])
- */
- public static final int PUBLISH_STATE_NONE = 1;
-
- /**
- * Publish state constant (value 2) indicating that an
- * incremental publish is required.
- *
- * @see #getServerPublishState()
- * @see #getModulePublishState(IModule[])
- */
- public static final int PUBLISH_STATE_INCREMENTAL = 2;
-
- /**
- * Publish state constant (value 3) indicating that a
- * full publish is required.
- *
- * @see #getServerPublishState()
- * @see #getModulePublishState(IModule[])
- */
- public static final int PUBLISH_STATE_FULL = 3;
-
- /**
- * Publish kind constant (value 1) indicating an incremental publish request.
- *
- * @see #publish(int, IProgressMonitor)
- */
- public static final int PUBLISH_INCREMENTAL = 1;
-
- /**
- * Publish kind constant (value 2) indicating a full publish request.
- *
- * @see #publish(int, IProgressMonitor)
- */
- public static final int PUBLISH_FULL = 2;
-
- /**
- * Publish kind constant (value 3) indicating an automatic publish request.
- *
- * @see #publish(int, IProgressMonitor)
- */
- public static final int PUBLISH_AUTO = 3;
-
- /**
- * Publish kind constant (value 4) indicating a publish clean request
- *
- * @see #publish(int, IProgressMonitor)
- */
- public static final int PUBLISH_CLEAN = 4;
-
- /**
- * Returns the current state of this server.
- * <p>
- * Note that this operation is guaranteed to be fast
- * (it does not actually communicate with any actual
- * server).
- * </p>
- *
- * @return one of the server state (<code>STATE_XXX</code>)
- * constants declared on {@link IServer}
- */
- public int getServerState();
-
- /**
- * Returns the ILaunchManager mode that the server is in. This method will
- * return null if the server is not running.
- *
- * @return the mode in which a server is running, one of the mode constants
- * defined by {@link org.eclipse.debug.core.ILaunchManager}, or
- * <code>null</code> if the server is stopped.
- */
- public String getMode();
-
- /**
- * Returns the server's sync state.
- *
- * @return one of the PUBLISH_XXX state flags
- */
- public int getServerPublishState();
-
- /**
- * Adds the given server state listener to this server.
- * Once registered, a listener starts receiving notification of
- * state changes to this server. The listener continues to receive
- * notifications until it is removed.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the server listener
- * @see #removeServerListener(IServerListener)
- */
- public void addServerListener(IServerListener listener);
-
- /**
- * Adds the given server state listener to this server.
- * Once registered, a listener starts receiving notification of
- * state changes to this server. The listener continues to receive
- * notifications until it is removed.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the server listener
- * @param eventMask the bit-wise OR of all event types of interest to the
- * listener
- * @see #removeServerListener(IServerListener)
- */
- public void addServerListener(IServerListener listener, int eventMask);
-
- /**
- * Removes the given server state listener from this server. Has no
- * effect if the listener is not registered.
- *
- * @param listener the listener
- * @see #addServerListener(IServerListener)
- */
- public void removeServerListener(IServerListener listener);
-
- /**
- * Adds a publish listener to this server.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the publish listener
- * @see #removePublishListener(IPublishListener)
- */
- public void addPublishListener(IPublishListener listener);
-
- /**
- * Removes a publish listener from this server.
- * Has no effect if the listener is not registered.
- *
- * @param listener the publish listener
- * @see #addPublishListener(IPublishListener)
- */
- public void removePublishListener(IPublishListener listener);
-
- /**
- * Returns whether this server is in a state that it can
- * be published to.
- *
- * @return a status object with code <code>IStatus.OK</code> if the server can
- * be published to, otherwise a status object indicating what is wrong
- */
- public IStatus canPublish();
-
- /**
- * Publish to the server using the progress monitor. The result of the
- * publish operation is returned as an IStatus.
- * <p>
- * This method should not be called from the UI thread. Publishing is long-
- * running and may trigger resource change events or builds. Although this
- * framework is safe, there is no guarantee that other bundles are UI-safe
- * and the risk of UI deadlock is high.
- * </p>
- *
- * @param kind the kind of publish being requested. Valid values are
- * <ul>
- * <li><code>PUBLSIH_FULL</code>- indicates a full publish.</li>
- * <li><code>PUBLISH_INCREMENTAL</code>- indicates a incremental publish.
- * <li><code>PUBLISH_CLEAN</code>- indicates a clean request. Clean throws
- * out all state and cleans up the module on the server before doing a
- * full publish.
- * </ul>
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return status indicating what (if anything) went wrong
- */
- public IStatus publish(int kind, IProgressMonitor monitor);
-
- /**
- * Returns whether this server is in a state that it can
- * be started in the given mode.
- *
- * @param launchMode a mode in which a server can be launched,
- * one of the mode constants defined by
- * {@link org.eclipse.debug.core.ILaunchManager}
- * @return a status object with code <code>IStatus.OK</code> if the server can
- * be started, otherwise a status object indicating why it can't
- */
- public IStatus canStart(String launchMode);
-
- /**
- * Asynchronously starts this server in the given launch mode.
- * <p>
- * If canStart(launchMode) is false, this method will throw an
- * exception.
- * </p>
- * <p>
- * If the caller wants to listen for failure or success of the
- * server starting, it can add a server listener or use the
- * version of this method that takes a status listener as a
- * parameter.
- * </p>
- *
- * @param launchMode a mode in which a server can be launched,
- * one of the mode constants defined by
- * {@link org.eclipse.debug.core.ILaunchManager}
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @exception CoreException if an error occurs while trying to start the server
- */
- public void start(String launchMode, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Asynchronously starts this server in the given launch mode.
- * <p>
- * If canStart(launchMode) is false, this method will throw an
- * exception.
- * </p>
- * <p>
- * The operation listener can be used to add a listener for notification
- * of this specific server launch. The listener will be called with a
- * single successful status (severity OK) when the server has
- * finished starting, or a single failure (severity ERROR) if
- * there was an error starting the server.
- * </p>
- *
- * @param launchMode a mode in which a server can be launched,
- * one of the mode constants defined by
- * {@link org.eclipse.debug.core.ILaunchManager}
- * @param listener an operation listener to receive notification when this
- * operation is done, or <code>null</code> if notification is not
- * required
- */
- public void start(String launchMode, IOperationListener listener);
-
- /**
- * Starts this server in the given launch mode and waits until the server
- * has finished starting.
- * <p>
- * This convenience method uses {@link #start(String, IProgressMonitor)}
- * to start the server, and an internal thread and listener to detect
- * when the server has finished starting.
- * </p>
- *
- * @param launchMode a mode in which a server can be launched,
- * one of the mode constants defined by
- * {@link org.eclipse.debug.core.ILaunchManager}
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @deprecated this method is deprecated. use start(String,
- * IProgressMonitor, IOperationListener) instead
- * @exception CoreException if an error occurs while trying to start the server
- */
- public void synchronousStart(String launchMode, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Returns whether this server is in a state that it can
- * be restarted in the given mode. Note that only servers
- * that are currently running can be restarted.
- *
- * @param mode a mode in which a server can be launched,
- * one of the mode constants defined by
- * {@link org.eclipse.debug.core.ILaunchManager}
- * @return a status object with code <code>IStatus.OK</code> if the server can
- * be restarted, otherwise a status object indicating why it can't
- */
- public IStatus canRestart(String mode);
-
- /**
- * Returns whether this server is out of sync and needs to be
- * restarted. This method will return false when the
- * server is not running.
- * <p>
- * [issue: Need to explain what is it that can get out of
- * "out of sync" here, and how this can happen.]
- * </p>
- *
- * @return <code>true</code> if this server is out of sync and needs to be
- * restarted, and <code>false</code> otherwise (e.g., if the contents have
- * not been modified and the server process is still in sync); the
- * result is unspecified if the server is not currently running
- */
- public boolean getServerRestartState();
-
- /**
- * Asynchronously restarts this server. This operation does
- * nothing if this server cannot be stopped ({@link #canRestart(String)}
- * returns <code>false</code>.
- * This method cannot be used to start the server from a stopped state.
- * <p>
- * If the caller wants to listen for failure or success of the
- * server restarting, it can add a server listener or use the
- * version of this method that takes a status listener as a
- * parameter.
- * </p>
- *
- * @param launchMode a mode in which a server can be launched,
- * one of the mode constants defined by
- * {@link org.eclipse.debug.core.ILaunchManager}
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- public void restart(String launchMode, IProgressMonitor monitor);
-
- /**
- * Asynchronously restarts this server. This operation does
- * nothing if this server cannot be stopped ({@link #canRestart(String)}
- * returns <code>false</code>.
- * This method cannot be used to start the server from a stopped state.
- * <p>
- * The operation listener can be used to add a listener for notification
- * of this specific server restart. The listener will be called with a
- * single successful status (severity OK) when the server has
- * finished restarting, or a single failure (severity ERROR) if
- * there was an error restarting the server.
- * </p>
- *
- * @param launchMode a mode in which a server can be launched,
- * one of the mode constants defined by
- * {@link org.eclipse.debug.core.ILaunchManager}
- * @param listener an operation listener to receive notification when this
- * operation is done, or <code>null</code> if notification is not
- * required
- */
- public void restart(String launchMode, IOperationListener listener);
-
- /**
- * Synchronously restarts this server. This operation does
- * nothing if this server cannot be stopped ({@link #canRestart(String)}
- * returns <code>false</code>.
- * <p>
- * [issue: There is no way to communicate failure to the
- * client. Given that this operation can go awry, there probably
- * should be a mechanism that allows failing asynch operations
- * to be diagnosed.]
- * </p>
- *
- * @param launchMode a mode in which a server can be launched,
- * one of the mode constants defined by
- * {@link org.eclipse.debug.core.ILaunchManager}
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there was an error
- * @deprecated this method is deprecated. use restart(String,
- * IProgressMonitor, IOperationListener) instead
- */
- public void synchronousRestart(String launchMode, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Returns whether this server is in a state that it can
- * be stopped.
- * Servers can be stopped if they are not already stopped and if
- * they belong to a state-set that can be stopped.
- *
- * @return a status object with code <code>IStatus.OK</code> if the server can
- * be stopped, otherwise a status object indicating why it can't
- */
- public IStatus canStop();
-
- /**
- * Asynchronously stops this server. This operation does
- * nothing if this server cannot be stopped ({@link #canStop()}
- * returns <code>false</code>.
- * <p>
- * If force is <code>false</code>, it will attempt to stop the server
- * normally/gracefully. If force is <code>true</code>, then the server
- * process will be terminated any way that it can.
- * </p>
- * <p>
- * If the caller wants to listen for success or failure of the
- * server stopping, it can add a server listener or use the
- * version of this method that takes a status listener as a
- * parameter.
- * </p>
- *
- * @param force <code>true</code> to kill the server, or <code>false</code>
- * to stop normally
- */
- public void stop(boolean force);
-
- /**
- * Asynchronously stops this server. This operation does
- * nothing if this server cannot be stopped ({@link #canStop()}
- * returns <code>false</code>.
- * <p>
- * If force is <code>false</code>, it will attempt to stop the server
- * normally/gracefully. If force is <code>true</code>, then the server
- * process will be terminated any way that it can.
- * </p>
- * <p>
- * The operation listener can be used to add a listener for notification
- * of this specific server stop. The listener will be called with a
- * single successful status (severity OK) when the server has
- * finished stopping, or a single failure (severity ERROR) if
- * there was an error stopping the server.
- * </p>
- *
- * @param force <code>true</code> to kill the server, or <code>false</code>
- * to stop normally
- * @param listener an operation listener to receive notification when this
- * operation is done, or <code>null</code> if notification is not
- * required
- */
- public void stop(boolean force, IOperationListener listener);
-
- /**
- * Stops this server and waits until the server has completely stopped.
- * <p>
- * This convenience method uses {@link #stop(boolean)}
- * to stop the server, and an internal thread and listener to detect
- * when the server has complied.
- * </p>
- *
- * @param force <code>true</code> to kill the server, or <code>false</code>
- * to stop normally
- * @deprecated this method is deprecated. use stop(boolean,
- * IOperationListener) instead
- */
- public void synchronousStop(boolean force);
-
- /**
- * Returns the current state of the given module on this server.
- * Returns <code>STATE_UNKNOWN</code> if the module
- * is not among the ones associated with this server.
- *
- * @param module the module
- * @return one of the state (<code>STATE_XXX</code>) constants declared
- * on {@link IServer}
- */
- public int getModuleState(IModule[] module);
-
- /**
- * Returns the module's sync state.
- *
- * @param module the module
- * @return one of the PUBLISH_XXX state flags
- */
- public int getModulePublishState(IModule[] module);
-
- /**
- * Check if the given module is in sync on the server. It should
- * return true if the module should be restarted (is out of
- * sync) or false if the module does not need to be restarted.
- *
- * @param module the module
- * @return boolean
- */
- public boolean getModuleRestartState(IModule[] module);
-
- /**
- * Returns whether the given module can be restarted.
- * <p>
- * This method has a progress monitor because it may involve plugin
- * and class loading. No communication to the server will occur.
- * </p>
- *
- * @param module the module
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a status object with code <code>IStatus.OK</code> if the module can
- * be restarted, otherwise a status object indicating why it can't
- */
- public IStatus canControlModule(IModule[] module, IProgressMonitor monitor);
-
- /**
- * Asynchronously starts this server in the given launch mode.
- * <p>
- * If canStart(launchMode) is false, this method will throw an
- * exception.
- * </p>
- * <p>
- * The operation listener can be used to add a listener for notification
- * of this specific module start. The listener will be called with a
- * single successful status (severity OK) when the module has
- * finished starting, or a single failure (severity ERROR) if
- * there was an error starting the module.
- * </p>
- *
- *@param module the module to be started
- * @param listener an operation listener to receive notification when this
- * operation is done, or <code>null</code> if notification is not
- * required
- */
- public void startModule(IModule[] module, IOperationListener listener);
-
- /**
- * Asynchronously stops the given module. This operation does
- * nothing if this module cannot be stopped.
- * <p>
- * The operation listener can be used to add a listener for notification
- * of this specific module stop. The listener will be called with a
- * single successful status (severity OK) when the module has
- * finished stopping, or a single failure (severity ERROR) if
- * there was an error stopping the module.
- * </p>
- *
- * @param module the module to be stopped
- * @param listener an operation listener to receive notification when this
- * operation is done, or <code>null</code> if notification is not
- * required
- */
- public void stopModule(IModule[] module, IOperationListener listener);
-
- /**
- * Asynchronously restarts the given module on the server.
- * <p>
- * The implementation should update the module sync state and fire
- * an event for the module. If the module does not exist on the server,
- * an exception will be thrown.
- * </p>
- * <p>
- * [issue: Since this method is ascynchronous, is there
- * any need for the progress monitor?]
- * </p>
- * <p>
- * [issue: IServer.synchronousModuleRestart throws CoreException
- * if anything goes wrong.]
- * </p>
- * <p>
- * [issue: If the module was just published to the server
- * and had never been started, would is be ok to "start"
- * the module using this method?]
- * </p>
- *
- * @param module the module to be started
- * @param listener an operation listener to receive notification when this
- * operation is done, or <code>null</code> if notification is not
- * required
- */
- public void restartModule(IModule[] module, IOperationListener listener);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerAttributes.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerAttributes.java
deleted file mode 100644
index 30562d2cb..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerAttributes.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2004, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.runtime.*;
-/**
- * Represents a server instance. Every server is an instance of a
- * particular, fixed server type.
- * <p>
- * Not surprisingly, the notion of <b>server</b> is central in the web tools
- * server infrastructure. In this context, understand that a server is
- * a web server of some ilk. It could be a simple web server lacking Java
- * support, or an J2EE based server, or perhaps even some kind of database
- * server. A more exact definition is not required for the purposes of this API.
- * From a tool-centric point of view, a server
- * is something that the developer is writing "content" for.
- * The unit of content is termed a module.
- * In a sense, the server exists, but lacks useful content. The
- * development task is to provide that content. The content can include
- * anything from simple, static HTML web pages to complex, highly dynamic
- * web applications.
- * In the course of writing and debugging this content,
- * the developer will want to test their content on a web server, to see how it
- * gets served up. For this they will need to launch a server process running on
- * some host machine (often the local host on which the IDE is running), or
- * attach to a server that's already running on a remote (or local) host.
- * The newly developed content sitting in the developer's workspace needs to
- * end up in a location and format that the running server can use for its
- * serving purposes.
- * </p>
- * <p>
- * In this picture, an <code>IServer</code> object is a proxy for the real web
- * server. Through this proxy, a client can configure the server, and start,
- * stop, and restart it.
- * </p>
- * <p>
- * IServerAttributes implements IAdaptable to allow users to obtain a
- * server-type-specific class. By casting the runtime extension to the type
- * prescribed in the API documentation for that particular server type, the
- * client can access server-type-specific properties and methods.
- * getAdapter() may involve plugin loading, and should not be called from
- * popup menus, etc.
- * </p>
- * <p>
- * The server framework maintains a global list of all known server instances
- * ({@link ServerCore#getServers()}).
- * </p>
- * <p>
- * [rough notes:
- * Server has a state.
- * Server can be started, stopped, and restarted.
- * To modify server attributes, get a working copy, modify it, and then save it
- * to commit the changes.
- * Server attributes. Serialization.
- * Chained working copies for runtime, server configuration.
- * Server has a set of root modules.
- * Modules have state wrt a server.
- * Restarting modules.]
- * </p>
- * <p>
- * Two servers are identical if and only if they have the same id.
- * </p>
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- *
- * @since 1.0
- */
-public interface IServerAttributes extends IAdaptable {
- /**
- * Returns the displayable name for this server.
- * <p>
- * Note that this name is appropriate for the current locale.
- * </p>
- *
- * @return a displayable name
- */
- public String getName();
-
- /**
- * Returns the id of this server.
- * Each server (of a given type) has a distinct id, fixed for
- * its lifetime. Ids are intended to be used internally as keys;
- * they are not intended to be shown to end users.
- *
- * @return the server id
- */
- public String getId();
-
- /**
- * Deletes the persistent representation of this server.
- *
- * @throws CoreException if there was any error received while deleting the server
- * or if this method is called on a working copy
- */
- public void delete() throws CoreException;
-
- /**
- * Returns whether this server is marked read only.
- * When a server is read only, working copies can be created but
- * they cannot be saved.
- *
- * @return <code>true</code> if this server is marked as read only,
- * and <code>false</code> otherwise
- */
- public boolean isReadOnly();
-
- /**
- * Returns true if this is a working copy.
- *
- * @return <code>true</code> if this server is a working copy,
- * and <code>false</code> otherwise
- */
- public boolean isWorkingCopy();
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found, or if the delegate is not
- * loaded.
- * <p>
- * This method will not check the delegate classes for adapting
- * unless they are already loaded. No plugin loading will occur
- * when calling this method. It is suitable for popup menus and
- * other UI artifacts where performance is a concern.
- * </p>
- *
- * @param adapter the adapter class to look up
- * @return a object castable to the given class,
- * or <code>null</code> if this object does not
- * have an adapter for the given class
- * @see IAdaptable#getAdapter(Class)
- * @see #loadAdapter(Class, IProgressMonitor)
- */
- public Object getAdapter(Class adapter);
-
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> only if
- * no such object can be found after loading and initializing
- * delegates.
- * <p>
- * This method will force a load and initialization of all delegate
- * classes and check them for adapting.
- * </p>
- *
- * @param adapter the adapter class to look up
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a object castable to the given class,
- * or <code>null</code> if this object does not
- * have an adapter for the given class
- * @see #getAdapter(Class)
- */
- public Object loadAdapter(Class adapter, IProgressMonitor monitor);
-
- /**
- * Returns the host for the server.
- * The format of the host can be either a qualified or unqualified hostname,
- * or an IP address and must conform to RFC 2732.
- *
- * @return a host string conforming to RFC 2732
- * @see java.net.URL#getHost()
- */
- public String getHost();
-
- /**
- * Returns the runtime associated with this server.
- * <p>
- * Note: The runtime of a server working copy may or may not
- * be a working copy. For a server instance that is not a
- * working copy, the runtime instance is not a working copy
- * either.
- * </p>
- * <p>
- * [issue: According to serverType extension point,
- * runtimeTypeId is a mandatory attribute. It seems odd
- * then to have server runtime instance being an
- * optional property of server instance. What does it mean
- * for a server to not have a runtime?]
- * </p>
- *
- * @return the runtime, or <code>null</code> if none
- */
- public IRuntime getRuntime();
-
- /**
- * Returns the type of this server.
- *
- * @return the server type
- * @see IServerType
- */
- public IServerType getServerType();
-
- /**
- * Returns the server configuration associated with this server.
- * <p>
- * Note: The server configuration of a server working copy may
- * or may not be a working copy. For a server instance that is
- * not a working copy, the server configuration instance is not
- * a working copy either.
- * </p>
- * <p>
- * [issue: According to serverType extension point,
- * configurationTypeId is an optional attribute. If a server type
- * has no server configuration type, then it seems reasonable to
- * expect this method to return null for all instances of that server
- * type. But what about a server type that explicitly specifies
- * a server configuration type. Does that mean that all server
- * instances of that server type must have a server configuration
- * instance of that server configuration type, and that this method
- * never returns null in those cases?]
- * </p>
- *
- * @return the server configuration, or <code>null</code> if none
- */
- public IFolder getServerConfiguration();
-
- /**
- * Returns a server working copy for modifying this server instance.
- * If this instance is already a working copy, it is returned.
- * If this instance is not a working copy, a new server working copy
- * is created with the same id and attributes.
- * Clients are responsible for saving or releasing the working copy when
- * they are done with it.
- * <p>
- * The server working copy is related to this server instance
- * in the following ways:
- * <pre>
- * this.getWorkingCopy().getId() == this.getId()
- * this.getWorkingCopy().getFile() == this.getFile()
- * this.getWorkingCopy().getOriginal() == this
- * this.getWorkingCopy().getRuntime() == this.getRuntime()
- * this.getWorkingCopy().getServerConfiguration() == this.getServerConfiguration()
- * </pre>
- * </p>
- * <p>
- * [issue: IServerWorkingCopy extends IServer.
- * Server.getWorkingCopy() create a new working copy;
- * ServerWorkingCopy.getWorkingCopy() returns this.
- * This may be convenient in code that is ignorant of
- * whether they are dealing with a working copy or not.
- * However, it is hard for clients to manage working copies
- * with this design.]
- * </p>
- *
- * @return a new working copy
- */
- public IServerWorkingCopy createWorkingCopy();
-
- /**
- * Returns an array of user modules that are currently configured on
- * the server. When the server is published, these are the projects
- * that will be configured on the server. This method may not return
- * the list of projects that are currently on the server if a module
- * has been added since the last publish.
- * <p>
- * This method returns the root modules, which are not parented within
- * another modules. Each of these may contain child modules, which are
- * also deployed to this server.
- * </p>
- *
- * @return a possibly-empty array of modules
- */
- public IModule[] getModules();
-
- /**
- * Returns whether the specified module modifications could be made to this
- * server at this time.
- * <p>
- * This method may decide based on the type of module
- * or refuse simply due to reaching a maximum number of
- * modules or other criteria.
- * </p>
- * <p>
- * [issue: This seems odd to have a pre-flight method.
- * I should expect that the client can propose making
- * any set of module changes they desire (via a server
- * working copy). If the server doesn't like it, the operation
- * should fail.]
- * </p>
- *
- * @param add a possibly-empty list of modules to add
- * @param remove a possibly-empty list of modules to remove
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return <code>true</code> if the proposed modifications
- * look feasible, and <code>false</code> otherwise
- */
- public IStatus canModifyModules(IModule[] add, IModule[] remove, IProgressMonitor monitor);
-
- /**
- * Returns the child module(s) of this module. If this
- * module contains other modules, it should list those
- * modules. If not, it should return an empty list.
- *
- * <p>This method should only return the direct children.
- * To obtain the full module tree, this method may be
- * recursively called on the children.</p>
- *
- * @param module a module
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return an array of direct module children
- */
- public IModule[] getChildModules(IModule module[], IProgressMonitor monitor);
-
- /**
- * Returns the parent module(s) of this module. When determining if a given
- * project can run on a server, this method will be used to find the actual
- * module(s) that may be run on the server. For instance, a Web module may
- * return a list of EAR modules that it is contained in if the server only
- * supports configuring EAR modules. If the server supports running a module
- * directly, the returned array should contain the module.
- *
- * <p>If the module type is not supported, this method will return null or
- * an empty array. If the type is normally supported but there is a
- * configuration problem or missing parent, etc., this method will fire a
- * CoreException that may then be presented to the user.</p>
- *
- * <p>If it does return valid parent(s), this method will always return
- * the topmost parent module(s), even if there are a few levels
- * (a heirarchy) of modules.</p>
- *
- * @param module a module
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return an array of possible root modules
- * @throws CoreException if there is a problem
- */
- public IModule[] getRootModules(IModule module, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Returns an array of ServerPorts that this server has.
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a possibly empty array of servers ports
- */
- public ServerPort[] getServerPorts(IProgressMonitor monitor);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerLifecycleListener.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerLifecycleListener.java
deleted file mode 100644
index d2c20b8fc..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerLifecycleListener.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-/**
- * Listener interface for changes to servers.
- * <p>
- * This interface is fired whenever a server is added, modified, or removed.
- * All events are fired post-change, so that all server tools API called as a
- * result of the event will return the updated results. (for example, on
- * serverAdded the new server will be in the global list of servers
- * ({@link ServerCore#getServers()}), and on serverRemoved the server will
- * not be in the list.
- * </p>
- *
- * @see ServerCore
- * @see IServer
- * @since 1.0
- */
-public interface IServerLifecycleListener {
- /**
- * A new server has been created.
- *
- * @param server the new server
- */
- public void serverAdded(IServer server);
-
- /**
- * An existing server has been updated or modified.
- *
- * @param server the modified server
- */
- public void serverChanged(IServer server);
-
- /**
- * A existing server has been removed.
- *
- * @param server the removed server
- */
- public void serverRemoved(IServer server);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerListener.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerListener.java
deleted file mode 100644
index 38405815f..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerListener.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-/**
- * This interface is used by the server to broadcast a change of state.
- * Usually, the change of state will be caused by some user action,
- * (e.g. requesting to start a server) however, it is equally fine for
- * a server to broadcast a change of state through no direct user action.
- * (e.g. stopping because the server crashed) This information can be
- * used to inform the user of the change or update the UI.
- *
- * <p>Note: The server listener event MUST NOT directly be used to modify
- * the server's or module's state via one of the server's method. For example,
- * a server stopped event cannot directly trigger a start(). Doing this may
- * cause the thread to hang.</p>
- *
- * @since 1.0
- */
-public interface IServerListener {
- /**
- * A server or module has been changed as specified in the event.
- *
- * @param event a server event that contains information on the change
- */
- public void serverChanged(ServerEvent event);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerType.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerType.java
deleted file mode 100644
index 30a2d6eba..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerType.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-/**
- * Represents a server type from which server instances can be created.
- * <p>
- * The server core framework supports
- * an open-ended set of server types, which are contributed via
- * the <code>serverTypes</code> extension point in the server core
- * plug-in. Server type objects carry no state (all information is
- * read-only and is supplied by the server type declaration).
- * The global list of known server types is available via
- * {@link ServerCore#getServerTypes()}.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * <p>
- * Two server types are identical if and only if they have the same id.
- * </p>
- *
- * @since 1.0
- */
-public interface IServerType {
- /**
- * Returns the id of this server type.
- * Each known server type has a distinct id.
- * Ids are intended to be used internally as keys; they are not
- * intended to be shown to end users.
- *
- * @return the server type id
- */
- public String getId();
-
- /**
- * Returns the displayable name for this server type.
- * <p>
- * Note that this name is appropriate for the current locale.
- * </p>
- *
- * @return a displayable name for this server type
- */
- public String getName();
-
- /**
- * Returns the displayable description for this server type.
- * <p>
- * Note that this description is appropriate for the current locale.
- * </p>
- *
- * @return a displayable description for this server type
- */
- public String getDescription();
-
- /**
- * Returns the type of server runtime that this type
- * of server requires.
- * <p>
- * [issue: "runtimeTypeId" is mandatory according the
- * serverTypes schema. This suggests that all types
- * of servers have a server runtime. But there is also
- * a boolean "runtime" attribute indicating whether the
- * server requires a runtime. I supect that server type
- * has an optional server runtime, in which case you
- * can make "runtimeTypeId" optional and dispense with
- * "runtime".]
- * </p>
- * <p>
- * [issue: Does it really make sense for
- * runtimeTypes and serverTypes be separate extension
- * points? Would it not be sufficient to have the party declaring
- * the server type also declare the server runtime type?
- * Having runtimeType as a separate extension point
- * only makes sense if it would be possible in principle to
- * declare a server runtime type that could actually be
- * used on serveral server types. If server runtimes
- * always end up being server-type specific, it would be better
- * to combine them.]
- * </p>
- * <p>
- * [issue: What should happen when a server type mentions
- * the id of a server runtime type that is not known
- * to the system?]
- * </p>
- *
- * @return a server runtime type
- */
- public IRuntimeType getRuntimeType();
-
- /**
- * Returns whether this type of server requires a server
- * runtime.
- * <p>
- * [issue: See issues on getRuntimeType(). I suspect this
- * method is unnecessary, and that
- * this.getRuntimeType() != null will do.]
- * </p>
- *
- * @return <code>true</code> if this type of server requires
- * a server runtime, and <code>false</code> if it does not
- * @see #getRuntimeType()
- */
- public boolean hasRuntime();
-
- /**
- * Returns whether this type of server supports the given launch mode.
- * <p>
- * [issue: It also seems odd that this is part of the server type
- * declaration. This means that any server type has to commit
- * so early on which modes it supports.]
- * </p>
- *
- * @param launchMode a mode in which a server can be launched,
- * one of the mode constants defined by
- * {@link org.eclipse.debug.core.ILaunchManager}
- * @return whether this type of server supports the given mode
- */
- public boolean supportsLaunchMode(String launchMode);
-
- /**
- * Returns whether this type of server requires a server
- * configuration.
- * <p>
- * [issue: It's not clear how this method differs from
- * this.getServerConfigurationType() != null]
- * </p>
- *
- * @return <code>true</code> if this type of server requires
- * a server configuration, and <code>false</code> if it does not
- */
- public boolean hasServerConfiguration();
-
- /**
- * Returns <code>true</code> if this type of server can run on a remote host.
- * Returns <code>false</code> if the server type can only be run on "localhost"
- * (the local machine).
- *
- * @return <code>true</code> if this type of server can run on
- * a remote host, and <code>false</code> if it cannot
- */
- public boolean supportsRemoteHosts();
-
- /**
- * Creates an working copy instance of this server type.
- * After setting various properties of the working copy,
- * the client should call {@link IServerWorkingCopy#save(boolean, IProgressMonitor)}
- * to bring the server instance into existence.
- * <p>
- * [issue: Why is a runtime passed in?
- * IServerWorkingCopy.setRuntime(runtime) could be called on
- * the result to accomplish the same thing.]
- * </p>
- * <p>
- * [issue: The implementation of this method never creates a server
- * config working copy, whereas the other one does!?]
- * Consider combining the method with the other.]
- * </p>
- * <p>
- * The server returned from this method will have it's host set to
- * "localhost". Other defaults will be set by calling the server
- * delegate's setDefaults() method.
- * </p>
- *
- * @param id the id to assign to the server instance; a generated
- * id is used if id is <code>null</code> or an empty string
- * @param file the file in the workspace where the server instance
- * is to be serialized, or <code>null</code> if the information is
- * instead to be persisted with the workspace but not with any
- * particular workspace resource
- * @param runtime the runtime to associate with the server instance,
- * or <code>null</code> if none
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a new server working copy with the given id
- * @throws CoreException if an exception occurs while creating this runtime
- * or setting it's default values
- */
- public IServerWorkingCopy createServer(String id, IFile file, IRuntime runtime, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Creates a working copy instance of this server type.
- * After setting various properties of the working copy,
- * the client should call {@link IServerWorkingCopy#save(boolean, IProgressMonitor)}
- * to bring the server instance into existence.
- * <p>
- * [issue: Since this method just creates a working copy,
- * it's not clear the operation is long-running and in need
- * of a progress monitor.]
- * </p>
- * <p>
- * The server returned from this method will have it's host set to
- * "localhost". Other defaults will be set by calling the server
- * delegate's setDefaults() method.
- * </p>
- * <p>
- * [issue: The implementation of this method creates a server
- * config working copy, whereas the other one does not!?
- * Consider combining the method with the other.]
- * </p>
- *
- * @param id the id to assign to the server instance; a generated
- * id is used if id is <code>null</code> or an empty string
- * @param file the file in the workspace where the server instance
- * is to be serialized, or <code>null</code> if the information is
- * instead to be persisted with the workspace but not with any
- * particular workspace resource
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a new server working copy with the given id
- * @throws CoreException if an exception occurs while creating this runtime
- * or setting it's default values
- */
- public IServerWorkingCopy createServer(String id, IFile file, IProgressMonitor monitor) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerWorkingCopy.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerWorkingCopy.java
deleted file mode 100644
index ce686723f..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServerWorkingCopy.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2004, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core;
-
-import java.beans.PropertyChangeListener;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-/**
- * A working copy server object used for formulating changes
- * to a server instance ({@link IServer}).
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- *
- * @since 1.0
- */
-public interface IServerWorkingCopy extends IServerAttributes {
- /**
- * Status code (value 1) returned from the save() method when the save
- * failed with force set to <code>false</code> because the runtime has
- * been modified and saved since this working copy was created.
- *
- * @see #save(boolean, IProgressMonitor)
- */
- public static final int SAVE_CONFLICT = 1;
-
- /**
- * Sets the displayable name for this server.
- * <p>
- * The name should be appropriate for the current locale.
- * </p>
- *
- * @param name a displayable name
- * @see IServerAttributes#getName()
- */
- public void setName(String name);
-
- /**
- * Sets or unsets whether this server is marked as read only.
- * When a server is read only, working copies can be created but
- * they cannot be saved.
- *
- * @param readOnly <code>true</code> to set this server to be marked
- * read only, and <code>false</code> to unset
- */
- public void setReadOnly(boolean readOnly);
-
- /**
- * Returns whether this working copy has unsaved changes.
- *
- * @return <code>true</code> if this working copy has unsaved
- * changes, and <code>false</code> otherwise
- */
- public boolean isDirty();
-
- /**
- * Adds a property change listener to this server.
- * <p>
- * Once registered, a listener starts receiving notification of
- * property changes to this server. The listener continues to receive
- * notifications until it is removed.
- * Has no effect if an identical listener is already registered.
- * </p>
- *
- * @param listener a property change listener
- * @see #removePropertyChangeListener(PropertyChangeListener)
- */
- public void addPropertyChangeListener(PropertyChangeListener listener);
-
- /**
- * Removes a property change listener from this server.
- * Has no effect if the listener is not registered.
- *
- * @param listener a property change listener
- * @see #addPropertyChangeListener(PropertyChangeListener)
- */
- public void removePropertyChangeListener(PropertyChangeListener listener);
-
- /**
- * Sets the server configuration associated with this server working copy.
- * <p>
- * Note: The server configuration of a server working copy may
- * or may not be a working copy.
- * </p>
- * <p>
- * [issue: According to serverType extension point,
- * configurationTypeId is an optional attribute. What happens if the
- * server configuration passed is null but the server must have a
- * server configuration? What happens of the server configuration
- * has the wrong type? Do the errors get detected and reported now, or
- * upon save()?]
- * </p>
- *
- * @param configuration the server configuration, or <code>null</code> if none
- */
- public void setServerConfiguration(IFolder configuration);
-
- /**
- * Returns the server instance that this working copy is
- * associated with.
- * <p>
- * For a server working copy created by a call to
- * {@link IServer#createWorkingCopy()},
- * <code>this.getOriginal()</code> returns the original
- * server object. For a server working copy just created by
- * a call to {@link IServerType#createServer(String, org.eclipse.core.resources.IFile, IProgressMonitor)},
- * <code>this.getOriginal()</code> returns <code>null</code>.
- * </p>
- *
- * @return the associated server instance, or <code>null</code> if none
- */
- public IServer getOriginal();
-
- /**
- * Commits the changes made in this working copy. If there is
- * no extant server instance with a matching id and server
- * type, this will create a server instance with attributes
- * taken from this working copy. If there an existing server
- * instance with a matching id and server type, this will
- * change the server instance accordingly.
- * <p>
- * If there an existing server instance with a matching id and
- * server type, this will change the server instance accordingly.
- * The returned server will be the same server this is returned
- * from getOriginal(), after the changes have been applied.
- * Otherwise, this method will return a newly created server.
- * </p>
- * <p>
- * Servers can be saved even when they have invalid properties. It
- * is the clients responsibility to validate or check the
- * properties before saving.
- * </p>
- * <p>
- * This method does not apply changes to the server. A publish()
- * must be completed to push out after the save to push out any
- * changes to the server.
- * </p>
- * <p>
- * [issue: What is lifecycle for ServerWorkingCopyDelegate
- * associated with this working copy?]
- * </p>
- * <p>
- * [issue: Since it does not make sense to commit a server
- * working copy without first committing any associated
- * runtime and server config working copies, the semantics
- * of saveAll should be part and parcel of the
- * normal save, and the saveAll method eliminated.]
- * </p>
- *
- * @param force <code>true</code> to force the save, or <code>false</code>
- * otherwise
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a new server instance
- * @throws CoreException [missing]
- * @see #SAVE_CONFLICT
- */
- public IServer save(boolean force, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Commits the changes made in this server working copy after
- * first committing any associated server configuration or
- * server runtime working copies.
- * <p>
- * This convenience method is equivalent to:
- * <pre>
- * IRuntime rt = this.getRuntime();
- * if (rt != null && rt.isWorkingCopy()) {
- * ((IRuntimeWorkingCopy) rt).save(monitor);
- * }
- * IServerConfiguration cf = this.getServerConfiguration();
- * if (cf != null && cf.isWorkingCopy()) {
- * ((IServerConfigurationWorkingCopy) cf).save(monitor);
- * }
- * return save(monitor);
- * </pre>
- * </p>
- * <p>
- * [issue: Since it does not make sense to commit a server
- * working copy without first committing any associated
- * runtime and server config working copies, the semantics
- * of this operation should be part and parcel of the
- * normal save, and the saveAll method eliminated.]
- * </p>
- *
- * @param force <code>true</code> to force the save, or <code>false</code>
- * otherwise
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return a new server instance
- * @throws CoreException [missing]
- * @see #SAVE_CONFLICT
- */
- public IServer saveAll(boolean force, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Sets the runtime associated with this server working copy.
- * <p>
- * Note: The runtime of a server working copy may
- * or may not be a working copy.
- * </p>
- * <p>
- * [issue: According to serverType extension point,
- * runtimeTypeId is a mandatory attribute. But IServer.getRuntime()
- * is allowed to return null, suggesting that it is optional for instances.
- * What happens if the runtime passed is null but the server must
- * have a runtime? What happens if the runtime has the wrong
- * type? Do the errors get detected and reported now, or upon save()?]
- * </p>
- *
- * @param runtime the runtime, or <code>null</code> if none
- */
- public void setRuntime(IRuntime runtime);
-
- /**
- * Changes the host for the server.
- * The format of the host can be either a qualified or unqualified hostname,
- * or an IP address and must conform to RFC 2732.
- *
- * <p>
- * [issue: This is a questionable operation if there is a running
- * server associated with the original. When a host name
- * change is committed, the server instance loses contact with
- * the running server because of the host name change.]
- * </p>
- *
- * @param host a host string conforming to RFC 2732
- * @see IServer#getHost()
- * @see java.net.URL#getHost()
- */
- public void setHost(String host);
-
- /**
- * Modifies the list of modules associated with the server.
- * The modules included in the <code>add</code> list
- * must exist in the workspace and must not already be associated
- * with the server.
- * The modules included in the <code>remove</code> list
- * must be associated with the server, but may or may not exist
- * in the workspace.
- * <p>
- * This method will not communicate with the server. After saving,
- * publish() can be used to sync up with the server.
- * </p>
- * <p>
- * [issue: How to formulate what it means
- * to say "the module must exist in the workspace"?]
- * </p>
- * <p>
- * [issue: The spec should be more lax. Attempting to add
- * a module that's already include should be quietly ignore;
- * ditto removing a module that's not on this list. This
- * simplifies the handling of various other wacko cases
- * such as duplication within and between the add and remove
- * lists.]
- * </p>
- * <p>
- * [issue: The spec had also said: "...canModifyModules()
- * should have returned true. The configuration must assume
- * any default settings and add the module without any UI."]
- * </p>
- * <p>
- * [issue: What error checking should be performed by this
- * operation, and what needs to be performed by save() if
- * the client tries to commit these hypothetisized changes?]
- * </p>
- *
- * @param add a possibly-empty list of modules to add
- * @param remove a possibly-empty list of modules to remove
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException [missing]
- */
- public void modifyModules(IModule[] add, IModule[] remove, IProgressMonitor monitor) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerCore.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerCore.java
deleted file mode 100644
index b1c2c9d28..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerCore.java
+++ /dev/null
@@ -1,512 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.server.core.internal.*;
-/**
- * Main class for server core API.
- * <p>
- * This class provides API to access most of the types in the server
- * framework, including server runtimes and servers. Methods **
- * The methods on this class are thread safe.
- * </p>
- * <p>
- * This class provides all its functionality through static members.
- * It is not intended to be subclassed or instantiated.
- * </p>
- *
- * @since 1.0
- */
-public class ServerCore {
- private static final String EXTENSION_SERVER_TYPE = "serverTypes";
- private static final String EXTENSION_RUNTIME_TYPE = "runtimeTypes";
-
- // cached copy of all runtime types
- private static List runtimeTypes;
-
- // cached copy of all server and configuration types
- private static List serverTypes;
-
- private static IRegistryChangeListener registryListener;
-
- static {
- executeStartups();
- }
-
- private static class RegistryChangeListener implements IRegistryChangeListener {
- public void registryChanged(IRegistryChangeEvent event) {
- IExtensionDelta[] deltas = event.getExtensionDeltas(ServerPlugin.PLUGIN_ID, EXTENSION_RUNTIME_TYPE);
- if (deltas != null) {
- for (int i = 0; i < deltas.length; i++) {
- handleRuntimeTypeDelta(deltas[i]);
- }
- }
-
- deltas = event.getExtensionDeltas(ServerPlugin.PLUGIN_ID, EXTENSION_SERVER_TYPE);
- if (deltas != null) {
- for (int i = 0; i < deltas.length; i++) {
- handleServerTypeDelta(deltas[i]);
- }
- }
- }
- }
-
- /**
- * Cannot create ServerCore - use static methods.
- */
- private ServerCore() {
- // can't create
- }
-
- /**
- * Returns the resource manager.
- *
- * @return org.eclipse.wst.server.core.internal.ResourceManager
- */
- private final static ResourceManager getResourceManager() {
- return ResourceManager.getInstance();
- }
-
- /**
- * Returns the preference information for the project. The project may not
- * be null.
- *
- * @param project a project
- * @return the properties of the project
- * @deprecated Project facet support should now be used instead of this API. @see
- * org.eclipse.wst.common.project.facet.core.IFacetedProject#getRuntime()
- */
- public static IProjectProperties getProjectProperties(IProject project) {
- if (project == null)
- throw new IllegalArgumentException();
- return new IProjectProperties() {
- public IRuntime getRuntimeTarget() {
- return null;
- }
- };
- }
-
- /**
- * Returns an array of all known runtime types.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return the array of runtime types {@link IRuntimeType}
- */
- public static IRuntimeType[] getRuntimeTypes() {
- if (runtimeTypes == null)
- loadRuntimeTypes();
-
- IRuntimeType[] rt = new IRuntimeType[runtimeTypes.size()];
- runtimeTypes.toArray(rt);
- return rt;
- }
-
- /**
- * Returns the runtime type with the given id, or <code>null</code>
- * if none. This convenience method searches the list of known
- * runtime types ({@link #getRuntimeTypes()}) for the one with a matching
- * runtime type id ({@link IRuntimeType#getId()}). The id may not be null.
- *
- * @param id the runtime type id
- * @return the runtime type, or <code>null</code> if there is no runtime type
- * with the given id
- */
- public static IRuntimeType findRuntimeType(String id) {
- if (id == null)
- throw new IllegalArgumentException();
-
- if (runtimeTypes == null)
- loadRuntimeTypes();
-
- Iterator iterator = runtimeTypes.iterator();
- while (iterator.hasNext()) {
- IRuntimeType runtimeType = (IRuntimeType) iterator.next();
- if (id.equals(runtimeType.getId()))
- return runtimeType;
- }
- return null;
- }
-
- /**
- * Returns an array of all known runtime target handler instances.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return a possibly-empty array of runtime target handler instances
- * {@link IRuntimeTargetHandler}
- */
- public static IRuntimeTargetHandler[] getRuntimeTargetHandlers() {
- throw new RuntimeException("Attempt to use deprecated code");
- }
-
- /**
- * Returns the runtime target handler with the given id, or <code>null</code>
- * if none. This convenience method searches the list of known runtime
- * target handlers ({@link #getRuntimeTargetHandlers()}) for the one with
- * a matching runtime target handler id ({@link IRuntimeTargetHandler#getId()}).
- * The id may not be null.
- *
- * @param id the runtime target handler id
- * @return the runtime target handler instance, or <code>null</code> if
- * there is no runtime target handler with the given id
- */
- public static IRuntimeTargetHandler findRuntimeTargetHandler(String id) {
- throw new RuntimeException("Attempt to use deprecated code");
- }
-
- /**
- * Returns an array of all known server types.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return the array of server types {@link IServerType}
- */
- public static IServerType[] getServerTypes() {
- if (serverTypes == null)
- loadServerTypes();
-
- IServerType[] st = new IServerType[serverTypes.size()];
- serverTypes.toArray(st);
- return st;
- }
-
- /**
- * Returns the server type with the given id, or <code>null</code>
- * if none. This convenience method searches the list of known
- * server types ({@link #getServerTypes()}) for the one with a matching
- * server type id ({@link IServerType#getId()}). The id may not be null.
- *
- * @param id the server type id
- * @return the server type, or <code>null</code> if there is no server type
- * with the given id
- */
- public static IServerType findServerType(String id) {
- if (id == null)
- throw new IllegalArgumentException();
-
- if (serverTypes == null)
- loadServerTypes();
-
- Iterator iterator = serverTypes.iterator();
- while (iterator.hasNext()) {
- IServerType serverType = (IServerType) iterator.next();
- if (id.equals(serverType.getId()))
- return serverType;
- }
- return null;
- }
-
- /**
- * Execute the server startup extension points.
- */
- private static synchronized void executeStartups() {
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .startup extension point ->-");
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "internalStartup");
-
- int size = cf.length;
- for (int i = 0; i < size; i++) {
- try {
- IStartup startup = (IStartup) cf[i].createExecutableExtension("class");
- try {
- startup.startup();
- } catch (Exception ex) {
- Trace.trace(Trace.SEVERE, "Startup failed" + startup.toString(), ex);
- }
- Trace.trace(Trace.EXTENSION_POINT, " Loaded startup: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load startup: " + cf[i].getAttribute("id"), t);
- }
- }
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .startup extension point -<-");
- }
-
- /**
- * Load the runtime types.
- */
- private static synchronized void loadRuntimeTypes() {
- if (runtimeTypes != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .runtimeTypes extension point ->-");
-
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, EXTENSION_RUNTIME_TYPE);
- List list = new ArrayList(cf.length);
- addRuntimeTypes(cf, list);
- addRegistryListener();
- runtimeTypes = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .runtimeTypes extension point -<-");
- }
-
- /**
- * Load the runtime types.
- */
- private static synchronized void addRuntimeTypes(IConfigurationElement[] cf, List list) {
- for (int i = 0; i < cf.length; i++) {
- try {
- list.add(new RuntimeType(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded runtimeType: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load runtimeType: " + cf[i].getAttribute("id"), t);
- }
- }
- }
-
- /**
- * Load the server types.
- */
- private static synchronized void loadServerTypes() {
- if (serverTypes != null)
- return;
-
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .serverTypes extension point ->-");
-
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, EXTENSION_SERVER_TYPE);
- List list = new ArrayList(cf.length);
- addServerTypes(cf, list);
- addRegistryListener();
- serverTypes = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .serverTypes extension point -<-");
- }
-
- /**
- * Load the server types.
- */
- private static synchronized void addServerTypes(IConfigurationElement[] cf, List list) {
- for (int i = 0; i < cf.length; i++) {
- try {
- list.add(new ServerType(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded serverType: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load serverType: " + cf[i].getAttribute("id"), t);
- }
- }
- }
-
- /**
- * Returns the runtime with the given id, or <code>null</code>
- * if none. This convenience method searches the list of known
- * runtimes ({@link #getRuntimes()}) for the one with a matching
- * runtime id ({@link IRuntime#getId()}). The id may not be null.
- *
- * @param id the runtime id
- * @return the runtime instance, or <code>null</code> if there is no runtime
- * with the given id
- */
- public static IRuntime findRuntime(String id) {
- return getResourceManager().getRuntime(id);
- }
-
- /**
- * Returns an array of all known runtime instances. The list will not contain any
- * working copies.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return a possibly-empty array of runtime instances {@link IRuntime}
- */
- public static IRuntime[] getRuntimes() {
- return getResourceManager().getRuntimes();
- }
-
- /**
- * Returns the server with the given id, or <code>null</code>
- * if none. This convenience method searches the list of known
- * servers ({@link #getServers()}) for the one with a matching
- * server id ({@link IServer#getId()}). The id must not be null.
- *
- * @param id the server id
- * @return the server instance, or <code>null</code> if there is no server
- * with the given id
- */
- public static IServer findServer(String id) {
- return getResourceManager().getServer(id);
- }
-
- /**
- * Returns an array of all known server instances. The array will not include any
- * working copies.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return a possibly-empty array of server instances {@link IServer}
- */
- public static IServer[] getServers() {
- return getResourceManager().getServers();
- }
-
- /**
- * Adds a new runtime lifecycle listener.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener a runtime lifecycle listener
- * @see #removeRuntimeLifecycleListener(IRuntimeLifecycleListener)
- */
- public static void addRuntimeLifecycleListener(IRuntimeLifecycleListener listener) {
- getResourceManager().addRuntimeLifecycleListener(listener);
- }
-
- /**
- * Removes a runtime lifecycle listener.
- * Has no effect if the listener is not registered.
- *
- * @param listener a runtime lifecycle listener
- * @see #addRuntimeLifecycleListener(IRuntimeLifecycleListener)
- */
- public static void removeRuntimeLifecycleListener(IRuntimeLifecycleListener listener) {
- getResourceManager().removeRuntimeLifecycleListener(listener);
- }
-
- /**
- * Adds a new server lifecycle listener.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener a server lifecycle listener
- * @see #removeServerLifecycleListener(IServerLifecycleListener)
- */
- public static void addServerLifecycleListener(IServerLifecycleListener listener) {
- getResourceManager().addServerLifecycleListener(listener);
- }
-
- /**
- * Removes a server lifecycle listener.
- * Has no effect if the listener is not registered.
- *
- * @param listener a server lifecycle listener
- * #addServerLifecycleListener(IServerLifecycleListener)
- */
- public static void removeServerLifecycleListener(IServerLifecycleListener listener) {
- getResourceManager().removeServerLifecycleListener(listener);
- }
-
- /**
- * Returns the preferred runtime server for the given module. This method
- * returns null if the server was never chosen or does not currently exist. (if the
- * server is recreated or was in a closed project, etc. this method will return
- * the original value if it becomes available again)
- *
- * @param module a module
- * @return the current default server, or <code>null</code> if there is no
- * default server
- */
- public static IServer getDefaultServer(IModule module) {
- return ModuleProperties.getInstance().getDefaultServer(module);
- }
-
- /**
- * Sets the preferred runtime server for the given module. Set the server to
- * null to clear the setting. If there is a problem saving the file, a CoreException
- * will be thrown.
- *
- * @param module the module to set the default for
- * @param server the server to set the default server, or <code>null</code>
- * to unset the default
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there is a problem setting the default server
- */
- public static void setDefaultServer(IModule module, IServer server, IProgressMonitor monitor) throws CoreException {
- ModuleProperties.getInstance().setDefaultServer(module, server, monitor);
- }
-
- /**
- * Handles a change to the server type extension point due to bundles getting added
- * or removed dynamically at runtime.
- *
- * @param delta an extension delta
- */
- protected static void handleServerTypeDelta(IExtensionDelta delta) {
- if (serverTypes == null) // not loaded yet
- return;
-
- IConfigurationElement[] cf = delta.getExtension().getConfigurationElements();
-
- List list = new ArrayList(serverTypes);
- if (delta.getKind() == IExtensionDelta.ADDED) {
- addServerTypes(cf, list);
- } else {
- int size = list.size();
- ServerType[] st = new ServerType[size];
- list.toArray(st);
- int size2 = cf.length;
-
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size2; j++) {
- if (st[i].getId().equals(cf[j].getAttribute("id"))) {
- st[i].dispose();
- list.remove(st[i]);
- }
- }
- }
- }
- serverTypes = list;
- getResourceManager().resolveServers();
- }
-
- /**
- * Handles a change to the runtime type extension point due to bundles getting added
- * or removed dynamically at runtime.
- *
- * @param delta an extension delta
- */
- protected static void handleRuntimeTypeDelta(IExtensionDelta delta) {
- if (runtimeTypes == null) // not loaded yet
- return;
-
- IConfigurationElement[] cf = delta.getExtension().getConfigurationElements();
-
- List list = new ArrayList(runtimeTypes);
- if (delta.getKind() == IExtensionDelta.ADDED) {
- addRuntimeTypes(cf, list);
- } else {
- int size = list.size();
- RuntimeType[] rt = new RuntimeType[size];
- list.toArray(rt);
- int size2 = cf.length;
-
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size2; j++) {
- if (rt[i].getId().equals(cf[j].getAttribute("id"))) {
- rt[i].dispose();
- list.remove(rt[i]);
- }
- }
- }
- }
- runtimeTypes = list;
- getResourceManager().resolveRuntimes();
- getResourceManager().resolveServers();
- }
-
- private static void addRegistryListener() {
- if (registryListener != null)
- return;
-
- registryListener = new RegistryChangeListener();
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- registry.addRegistryChangeListener(registryListener, ServerPlugin.PLUGIN_ID);
- ServerPlugin.setRegistryListener(registryListener);
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerEvent.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerEvent.java
deleted file mode 100644
index d17e2c603..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerEvent.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core;
-/**
- * An event fired when a server change or module changes.
- *
- * @since 1.0
- */
-public class ServerEvent {
- private IServer server;
- private int kind;
- private IModule[] moduleTree;
- private int state;
- private int publishState;
- private boolean restartState;
-
- /**
- * For notification when the state has changed.
- * <p>
- * This kind is mutually exclusive with <code>PUBLISH_STATE_CHANGE</code> and
- * <code>RESTART_STATE_CHANGE</code>.
- * </p>
- *
- * @see #getKind()
- */
- public static final int STATE_CHANGE = 0x0001;
-
- /**
- * Fired when published is needed or no longer needs to be published,
- * or it's state has changed.
- * <p>
- * This kind is mutually exclusive with <code>STATE_CHANGE</code> and
- * <code>RESTART_STATE_CHANGE</code>.
- * </p>
- *
- * @see #getKind()
- */
- public static final int PUBLISH_STATE_CHANGE = 0x0002;
-
- /**
- * For notification when the server isRestartNeeded() property changes.
- * <p>
- * This kind is mutually exclusive with <code>STATE_CHANGE</code> and
- * <code>PUBLISH_STATE_CHANGE</code>.
- * </p>
- *
- * @see #getKind()
- */
- public static final int RESTART_STATE_CHANGE = 0x0004;
-
- /**
- * For event on server changes. This kind is mutually exclusive with <code>MODULE_CHANGE</code>.
- *
- * @see #getKind()
- */
- public static final int SERVER_CHANGE = 0x0010;
-
- /**
- * For event on module changes. This kind is mutually exclusive with <code>SERVER_CHANGE</code>.
- *
- * @see #getKind()
- */
- public static final int MODULE_CHANGE = 0x0020;
-
- /**
- * Create a new server event for server change events.
- *
- * @param kind the kind of the change. (<code>XXX_CHANGE</code>). If the kind does not
- * include the <code>SERVER_CHANGE</code> kind, the SERVER_CHANGE will be added automatically.
- * constants declared on {@link ServerEvent}
- * @param server the server that the server event takes place
- * @param state the server state after the change (<code>STATE_XXX</code>)
- * constants declared on {@link IServer}
- * @param publishingState the server publishing state after the
- * change (<code>PUBLISH_STATE_XXX</code>)
- * constants declared on {@link IServer}
- * @param restartState get the server restart state after the server is restart
- * needed property change event
- */
- public ServerEvent(int kind, IServer server, int state, int publishingState, boolean restartState) {
- this.kind = kind |= SERVER_CHANGE;
- this.server = server;
- this.state = state;
- this.publishState = publishingState;
- this.restartState = restartState;
-
- if (server == null)
- throw new IllegalArgumentException("Server parameter must not be null");
- if ((kind & MODULE_CHANGE) != 0)
- throw new IllegalArgumentException("Kind parameter invalid");
-
- checkKind();
- }
-
- /**
- * Create a new ServerEvent for module change events.
- *
- * @param kind the kind of the change. (<code>XXX_CHANGE</code>). If the kind does not
- * include the <code>MODULE_CHANGE</code> kind, the MODULE_CHANGE will be added automatically.
- * constants declared on {@link ServerEvent}
- * @param server the server that the module event takes place
- * @param module the module that has changed
- * @param state the module state after the change (<code>STATE_XXX</code>)
- * constants declared on {@link IServer}
- * @param publishingState the module publishing state after the
- * change (<code>PUBLISH_STATE_XXX</code>)
- * constants declared on {@link IServer}
- * @param restartState get the module restart state after the module is restart
- * needed property change event.
- */
- public ServerEvent(int kind, IServer server, IModule[] module, int state, int publishingState, boolean restartState) {
- this.kind = kind |= MODULE_CHANGE;
- this.server = server;
- this.moduleTree = module;
- this.state = state;
- this.publishState = publishingState;
- this.restartState = restartState;
-
- if (moduleTree == null || moduleTree.length == 0)
- throw new IllegalArgumentException("Module parameter invalid");
- if ((kind & SERVER_CHANGE) != 0)
- throw new IllegalArgumentException("Kind parameter invalid");
-
- checkKind();
- }
-
- private void checkKind() {
- int i = 0;
- if ((kind & STATE_CHANGE) != 0)
- i++;
- if ((kind & RESTART_STATE_CHANGE) != 0)
- i++;
- if ((kind & PUBLISH_STATE_CHANGE) != 0)
- i++;
-
- if (i != 1)
- throw new IllegalArgumentException("Kind parameter invalid");
- }
-
- /**
- * Returns the kind of the server event.
- * <p>
- * This kind can be used to test whether this event is a server event or module event by using
- * the following code (the example is checking for the server event):
- * ((getKind() | SERVER_CHANGE) != 0)
- * the following code (the example is checking for the module event):
- * ((getKind() | MODULE_CHANGE) != 0)
- *
- * @return the kind of the change (<code>XXX_CHANGE</code>
- * constants declared on {@link ServerEvent}
- */
- public int getKind() {
- return kind;
- }
-
- /**
- * Returns the module tree of the module involved in the module change event,
- * or <code>null</code> if the event is not a module event, i.e. isModuleEvent() is false.
- *
- * @return the module tree of the module involved in the module change event,
- * or <code>null</code> if the event is not a module event, i.e.
- * isModuleEvent() is false.
- */
- public IModule[] getModule() {
- return moduleTree;
- }
-
- /**
- * Get the publish state after the change that triggers this server event. If this event
- * is of the SERVER_CHANGE kind, then the publishing state is the server publishing state.
- * If this event is of the MODULE_CHANGE kind, then the publishing state is the module
- * publishing state.
- *
- * @return the publishing state after the change (<code>PUBLISH_STATE_XXX</code>)
- * constants declared on {@link IServer}
- */
- public int getPublishState() {
- return publishState;
- }
-
- /**
- * Get the restart state after isRestartNeeded() property change event.
- * If this event is of the SERVER_CHANGE kind, then the restart state is the server
- * restart state. If this event is of the MODULE_CHANGE kind, then the restart state
- * is the module restart state.
- *
- * @return <code>true</code> if restart is needed, and
- * <code>false</code> otherwise
- */
- public boolean getRestartState() {
- return restartState;
- }
-
- /**
- * Get the state after the change that triggers this server event. If this event
- * is of the SERVER_CHANGE kind, then the state is the server state.
- * If this event is of the MODULE_CHANGE kind, then the state is the module
- * state.
- *
- * @return the server state after the change (<code>STATE_XXX</code>)
- * constants declared on {@link IServer}
- */
- public int getState() {
- return state;
- }
-
- /**
- * Returns the server involved in the change event.
- *
- * @return the server involved in the change event.
- */
- public IServer getServer() {
- return server;
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerPort.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerPort.java
deleted file mode 100644
index 9914bf84c..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerPort.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-/**
- * This class represents a port on a server.
- *
- * @since 1.0
- */
-public class ServerPort {
- private String id;
- private String name;
- private int port;
- private String protocol;
- private String[] contentTypes;
- private boolean advanced;
-
- /**
- * Create a new server port.
- *
- * @param id a server-specific port id
- * @param name a human-readable name for the port
- * @param port the number number
- * @param protocol the port's protocol
- */
- public ServerPort(String id, String name, int port, String protocol) {
- this(id, name, port, protocol, null, true);
- }
-
- /**
- * Create a new server port.
- *
- * @param id a server-specific port id
- * @param name a human-readable name for the port
- * @param port the number number
- * @param protocol the port's protocol
- * @param contentTypes the content types that the port supports
- * @param advanced <code>true</code> if the port is "advanced" and should only
- * be shown to advanced users, <code>false</code> otherwise
- */
- public ServerPort(String id, String name, int port, String protocol, String[] contentTypes, boolean advanced) {
- super();
- this.id = id;
- this.name = name;
- this.port = port;
- this.protocol = protocol;
- this.contentTypes = contentTypes;
- this.advanced = advanced;
- }
-
- /**
- * Return an optional internal id used to identify this port.
- *
- * @return an internal id
- */
- public String getId() {
- return id;
- }
-
- /**
- * Return the name of the port.
- *
- * @return the name of the port
- */
- public String getName() {
- return name;
- }
-
- /**
- * Return the actual port number.
- *
- * @return the port number
- */
- public int getPort() {
- return port;
- }
-
- /**
- * Returns the protocol, e.g. HTTP of this port. Returns null
- * if the protocol is unknown.
- *
- * @return the procotol
- */
- public String getProtocol() {
- return protocol;
- }
-
- /**
- * Returns the content types that this port would normally serve, or null
- * if the content is unknown.
- *
- * @return a possibly empty array of content types
- */
- public String[] getContentTypes() {
- return contentTypes;
- }
-
- /**
- * Returns true if this port is an "advanced" port and should not be shown
- * to novice users.
- *
- * @return <code>true</code> if the port is advanced, or <code>false</code>
- * otherwise
- */
- public boolean isAdvanced() {
- return advanced;
- }
-
- /**
- * @see Object#equals(Object)
- */
- public boolean equals(Object obj) {
- if (!(obj instanceof ServerPort))
- return false;
- ServerPort sp = (ServerPort) obj;
- return (sp.port == port);
- }
-
- /**
- * @see Object#hashCode()
- */
- public int hashCode() {
- return port;
- }
-
- /**
- * @see Object#toString()
- */
- public String toString() {
- return "ServerPort [" + getName() + ", " + getId() + ", " + getPort() + ", " + getProtocol() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/TaskModel.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/TaskModel.java
deleted file mode 100644
index 816dbb495..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/TaskModel.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core;
-
-import java.util.HashMap;
-import java.util.Map;
-/**
- * A task model represents a model that can be shared between multiple
- * tasks in a common workflow.
- * <p>
- * The task model contains information about the overall task flow and allows
- * tasks to store and retreive data. Its usage allows mutliple tasks to be
- * chained together and share data from the output of one task to the input
- * of another.
- * </p>
- *
- * @since 1.0
- */
-public class TaskModel {
- /**
- * Task model id for an IRuntime.
- *
- * @see #getObject(String)
- * @see #putObject(String, Object)
- */
- public static final String TASK_RUNTIME = "runtime";
-
- /**
- * Task model id for an IServer.
- *
- * @see #getObject(String)
- * @see #putObject(String, Object)
- */
- public static final String TASK_SERVER = "server";
-
- /**
- * Task model id for an array of modules.
- * The value is a List containing IModule[] arrays.
- *
- * @see #getObject(String)
- * @see TaskModel#putObject(String, Object)
- */
- public static final String TASK_MODULES = "modules";
-
- /**
- * Task model id for a launch mode.
- *
- * @see #getObject(String)
- * @see #putObject(String, Object)
- */
- public static final String TASK_LAUNCH_MODE = "launch-mode";
-
- private Map map = new HashMap();
-
- /**
- * Returns the object in the task model with the given id.
- * <p>
- * The id can be any of the predefined ids within TaskModel, or
- * any other key to retreive task-specific data.
- * </p>
- *
- * @param id an id for the object
- * @return the object with the given id, or <code>null</code>
- * if no object could be found with that id
- */
- public Object getObject(String id) {
- try {
- return map.get(id);
- } catch (Exception e) {
- return null;
- }
- }
-
- /**
- * Put an object into the task model with the given id.
- * <p>
- * The id can be any of the predefined ids within TaskModel, or
- * any other key to store task-specific data.
- * </p>
- *
- * @param id the id to associate the object with
- * @param obj an object, or <code>null</code> to reset (clear) the id
- */
- public void putObject(String id, Object obj) {
- map.put(id, obj);
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Base.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Base.java
deleted file mode 100644
index 8eacedb20..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Base.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-/**
- * Helper class for storing runtime and server attributes.
- */
-public abstract class Base {
- protected static final String PROP_LOCKED = "locked";
- protected static final String PROP_PRIVATE = "private";
- protected static final String PROP_NAME = "name";
- protected static final String PROP_ID = "id";
- protected static final String PROP_TIMESTAMP = "timestamp";
-
- protected Map map = new HashMap();
-
- // file loaded from, or null if it is saved in metadata
- protected IFile file;
-
- /**
- * Create a new object.
- *
- * @param file
- */
- public Base(IFile file) {
- this.file = file;
- }
-
- /**
- * Create a new object.
- *
- * @param file
- * @param id
- */
- public Base(IFile file, String id) {
- this.file = file;
- //this.map = map;
- map.put(PROP_ID, id);
- }
-
- /**
- * Returns the timestamp of this object.
- * Timestamps are monotonically increased each time the object is saved
- * and can be used to determine if any changes have been made on disk
- * since the object was loaded.
- *
- * @return the object's timestamp
- */
- public int getTimestamp() {
- return getAttribute(PROP_TIMESTAMP, -1);
- }
-
- /**
- * Returns the file where this server instance is serialized.
- *
- * @return the file in the workspace where the server instance
- * is serialized, or <code>null</code> if the information is
- * instead to be persisted with the workspace but not with any
- * particular workspace resource
- */
- public IFile getFile() {
- return file;
- }
-
- public String getAttribute(String attributeName, String defaultValue) {
- try {
- Object obj = map.get(attributeName);
- if (obj == null)
- return defaultValue;
- return (String) obj;
- } catch (Exception e) {
- // ignore
- }
- return defaultValue;
- }
-
- public int getAttribute(String attributeName, int defaultValue) {
- try {
- Object obj = map.get(attributeName);
- if (obj == null)
- return defaultValue;
- return Integer.parseInt((String) obj);
- } catch (Exception e) {
- // ignore
- }
- return defaultValue;
- }
-
- public boolean getAttribute(String attributeName, boolean defaultValue) {
- try {
- Object obj = map.get(attributeName);
- if (obj == null)
- return defaultValue;
- return Boolean.valueOf((String) obj).booleanValue();
- } catch (Exception e) {
- // ignore
- }
- return defaultValue;
- }
-
- public List getAttribute(String attributeName, List defaultValue) {
- try {
- Object obj = map.get(attributeName);
- if (obj == null)
- return defaultValue;
- List list = (List) obj;
- if (list != null)
- return list;
- } catch (Exception e) {
- // ignore
- }
- return defaultValue;
- }
-
- public Map getAttribute(String attributeName, Map defaultValue) {
- try {
- Object obj = map.get(attributeName);
- if (obj == null)
- return defaultValue;
- Map map2 = (Map) obj;
- if (map2 != null)
- return map2;
- } catch (Exception e) {
- // ignore
- }
- return defaultValue;
- }
-
- public String getId() {
- return getAttribute(PROP_ID, "");
- }
-
- public String getName() {
- return getAttribute(PROP_NAME, "");
- }
-
- public boolean isReadOnly() {
- return getAttribute(PROP_LOCKED, false);
- }
-
- /**
- * Returns <code>true</code> if this runtime is private (not shown
- * in the UI to the users), and <code>false</code> otherwise.
- *
- * @return <code>true</code> if this runtime is private,
- * and <code>false</code> otherwise
- */
- public boolean isPrivate() {
- return getAttribute(PROP_PRIVATE, false);
- }
-
- public boolean isWorkingCopy() {
- return false;
- }
-
- protected abstract String getXMLRoot();
-
- protected void save(IMemento memento) {
- //IMemento child = memento.createChild("properties");
- IMemento child = memento;
- Iterator iterator = map.keySet().iterator();
- while (iterator.hasNext()) {
- String key = (String) iterator.next();
- Object obj = map.get(key);
- if (obj instanceof String)
- child.putString(key, (String) obj);
- else if (obj instanceof Integer) {
- Integer in = (Integer) obj;
- child.putInteger(key, in.intValue());
- } else if (obj instanceof Boolean) {
- Boolean bool = (Boolean) obj;
- child.putBoolean(key, bool.booleanValue());
- } else if (obj instanceof List) {
- List list = (List) obj;
- saveList(child, key, list);
- } else if (obj instanceof Map) {
- Map map2 = (Map) obj;
- saveMap(child, key, map2);
-
- }
- }
- saveState(child);
- }
- protected void saveMap(IMemento memento, String key, Map map2) {
- IMemento child = memento.createChild("map");
- child.putString("key", key);
- Iterator iterator = map2.keySet().iterator();
- while (iterator.hasNext()) {
- String s = (String) iterator.next();
- child.putString(s, (String)map2.get(s));
- }
- }
-
- protected void saveList(IMemento memento, String key, List list) {
- IMemento child = memento.createChild("list");
- child.putString("key", key);
- int i = 0;
- Iterator iterator = list.iterator();
- while (iterator.hasNext()) {
- String s = (String) iterator.next();
- child.putString("value" + (i++), s);
- }
- }
-
- protected void saveToFile(IProgressMonitor monitor) throws CoreException {
- try {
- XMLMemento memento = XMLMemento.createWriteRoot(getXMLRoot());
- save(memento);
-
- InputStream in = memento.getInputStream();
- if (file.exists())
- file.setContents(in, true, true, ProgressUtil.getSubMonitorFor(monitor, 1000));
- else
- file.create(in, true, ProgressUtil.getSubMonitorFor(monitor, 1000));
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not save " + getXMLRoot(), e);
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorSaving, getFile().toString()), e));
- }
- }
-
- protected void doSave(IProgressMonitor monitor) throws CoreException {
- if (file != null)
- saveToFile(monitor);
- else
- saveToMetadata(monitor);
- ResourceManager.getInstance().resolveServers();
- }
-
- protected void saveToMetadata(IProgressMonitor monitor) {
- // do nothing
- }
-
- protected abstract void saveState(IMemento memento);
-
- protected void load(IMemento memento) {
- map = new HashMap();
-
- Iterator iterator = memento.getNames().iterator();
- while (iterator.hasNext()) {
- String key = (String) iterator.next();
- map.put(key, memento.getString(key));
- }
- IMemento[] children = memento.getChildren("list");
- if (children != null) {
- int size = children.length;
- for (int i = 0; i < size; i++) {
- loadList(children[i]);
- }
- }
- IMemento[] maps = memento.getChildren("map");
- if (maps != null) {
- for (int i = 0; i <maps.length ; i++) {
- loadMap(maps[i]);
- }
- }
-
- loadState(memento);
- }
-
-
- protected void loadMap(IMemento memento) {
- String key = memento.getString("key");
- Map vMap = new HashMap();
- List keys = memento.getNames();
- Iterator iterator = keys.iterator();
- while(iterator.hasNext()) {
- String s = (String)iterator.next();
- String v = memento.getString(s);
- vMap.put(s,v);
- }
- map.put(key, vMap);
- }
-
-
- protected void loadList(IMemento memento) {
- String key = memento.getString("key");
- List list = new ArrayList();
- int i = 0;
- String key2 = memento.getString("value" + (i++));
- while (key2 != null) {
- list.add(key2);
- key2 = memento.getString("value" + (i++));
- }
- map.put(key, list);
- }
-
- protected abstract void loadState(IMemento memento);
-
- protected void resolve() {
- // do nothing
- }
-
- public void delete() throws CoreException {
- if (isWorkingCopy())
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, "Cannot delete a working copy", null));
-
- if (file != null)
- file.delete(true, true, new NullProgressMonitor());
- else
- deleteFromMetadata();
- }
-
- protected void deleteFromMetadata() {
- // do nothing
- }
-
- public boolean equals(Object obj) {
- if (!(obj instanceof Base))
- return false;
-
- Base base = (Base) obj;
- if (getId() == null)
- return false;
- return getId().equals(base.getId());
- }
-
- /**
- *
- */
- protected void loadFromFile(IProgressMonitor monitor) throws CoreException {
- InputStream in = null;
- try {
- in = file.getContents();
- IMemento memento = XMLMemento.loadMemento(in);
- load(memento);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not load from file" + e.getMessage(), e);
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorLoading, getFile().toString()), e));
- } finally {
- try {
- in.close();
- } catch (Exception e) {
- // ignore
- }
- }
- }
-
- protected void loadFromMemento(IMemento memento, IProgressMonitor monitor) {
- load(memento);
- }
-
- /**
- *
- */
- protected void loadFromPath(IPath path, IProgressMonitor monitor) throws CoreException {
- FileInputStream fin = null;
- try {
- fin = new FileInputStream(path.toFile());
- IMemento memento = XMLMemento.loadMemento(fin);
- load(memento);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not load from path: " + e.getMessage(), e);
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorLoading, path.toString()), e));
- } finally {
- try {
- fin.close();
- } catch (Exception e) {
- // ignore
- }
- }
- }
-
- public IStatus validateEdit(Object context) {
- if (file == null)
- return null;
-
- return file.getWorkspace().validateEdit(new IFile[] { file }, context);
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ChainedJob.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ChainedJob.java
deleted file mode 100644
index 93763b834..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ChainedJob.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.wst.server.core.IServer;
-/**
- * A Job that can start another job upon successful completion.
- */
-public abstract class ChainedJob extends Job {
- private IServer server;
- private Job nextJob;
- private IJobChangeListener listener;
-
- /**
- * Create a new dependant job.
- *
- * @param name the name of the job
- * @param server the server to publish to
- */
- public ChainedJob(String name, IServer server) {
- super(name);
- this.server = server;
- }
-
- /**
- * @see Job#belongsTo(java.lang.Object)
- */
- public boolean belongsTo(Object family) {
- return ServerPlugin.PLUGIN_ID.equals(family);
- }
-
- /**
- * Returns the server that this job was created with.
- *
- * @return a server
- */
- public IServer getServer() {
- return server;
- }
-
- /**
- * Create a listener for when this job finishes.
- */
- protected void createListener() {
- if (listener != null)
- return;
-
- listener = new JobChangeAdapter() {
- public void done(IJobChangeEvent event) {
- jobDone(event.getResult());
- }
- };
-
- addJobChangeListener(listener);
- }
-
- /**
- * Called when this job is complete.
- *
- * @param status the result of the current job
- */
- protected void jobDone(IStatus status) {
- if (listener == null)
- return;
-
- removeJobChangeListener(listener);
- listener = null;
-
- if (nextJob != null && status != null && status.getSeverity() != IStatus.ERROR
- && status.getSeverity() != IStatus.CANCEL)
- nextJob.schedule();
- }
-
- /**
- * Set the next job, which should be scheduled if and only if this job completes
- * successfully. The next job will be run as long as the result of this job is
- * not an ERROR or CANCEL status.
- * This method is not thread-safe. However, the next job can be changed anytime
- * up until the current job completes.
- *
- * @param job the next job that should be scheduled
- */
- public void setNextJob(Job job) {
- nextJob = job;
- createListener();
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Client.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Client.java
deleted file mode 100644
index ececf5bfa..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Client.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.debug.core.ILaunch;
-
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.model.ClientDelegate;
-/**
- *
- */
-public class Client implements IClient {
- private IConfigurationElement element;
- private ClientDelegate delegate;
-
- /**
- * Create a new client.
- *
- * @param element a configuration element
- */
- public Client(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /**
- * @see IClient#getId()
- */
- public String getId() {
- return element.getAttribute("id");
- }
-
- /**
- * Returns the relative priority of this adapter.
- *
- * @return a priority
- */
- public int getPriority() {
- try {
- return Integer.parseInt(element.getAttribute("priority"));
- } catch (Exception e) {
- return 0;
- }
- }
-
- /**
- * @see IClient#getDescription()
- */
- public String getDescription() {
- return element.getAttribute("description");
- }
-
- protected String getLaunchable() {
- return element.getAttribute("launchable");
- }
-
- /**
- * @see IClient#getName()
- */
- public String getName() {
- String label = element.getAttribute("name");
- if (label == null)
- return "n/a";
- return label;
- }
-
- /**
- * Return the delegate.
- *
- * @return the delegate, or <code>null</code> if it couldn't be loaded
- */
- public ClientDelegate getDelegate() {
- if (delegate == null) {
- try {
- delegate = (ClientDelegate) element.createExecutableExtension("class");
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not create delegate" + toString() + ": " + e.getMessage());
- }
- }
- return delegate;
- }
-
- /**
- * @see IClient#supports(IServer, Object, String)
- */
- public boolean supports(IServer server, Object launchable, String launchMode) {
- if (launchable == null)
- return false;
- //if (!launchable.getClass().getName().equals(getLaunchable()))
- // return false;
- try {
- return getDelegate().supports(server, launchable, launchMode);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
- return false;
- }
- }
-
- /**
- * @see IClient#launch(IServer, Object, String, ILaunch)
- */
- public IStatus launch(IServer server, Object launchable, String launchMode, ILaunch launch) {
- try {
- return getDelegate().launch(server, launchable, launchMode, launch);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
- }
- return null;
- }
-
- /**
- * Return a string representation of this object.
- *
- * @return String
- */
- public String toString() {
- return "Client[" + getId() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/DeletedModule.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/DeletedModule.java
deleted file mode 100644
index a33d5d548..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/DeletedModule.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IModuleType;
-/**
- *
- */
-public class DeletedModule implements IModule {
- protected String id;
- protected String name;
- protected IModuleType moduleType2;
-
- public DeletedModule(String id, String name, IModuleType moduleType) {
- this.id = id;
- this.name = name;
- this.moduleType2 = moduleType;
- }
-
- public String getId() {
- return id;
- }
-
- public IStatus validate(IProgressMonitor monitor) {
- return null;
- }
-
- public String getName() {
- return name;
- }
-
- public IModuleType getModuleType() {
- return moduleType2;
- }
-
- public IProject getProject() {
- return null;
- }
-
- public void addModuleListener(IModuleListener listener) {
- // ignore
- }
-
- public void removeModuleListener(IModuleListener listener) {
- // ignore
- }
-
- public IModule[] getChildModules(IProgressMonitor monitor) {
- return null;
- }
-
- public Object getAdapter(Class adapter) {
- return null;
- }
-
- public Object loadAdapter(Class adapter, IProgressMonitor monitor) {
- return null;
- }
-
- public boolean equals(Object obj) {
- if (!(obj instanceof IModule))
- return false;
-
- IModule m = (IModule) obj;
- if (!getId().equals(m.getId()))
- return false;
-
- return true;
- }
-
- public String toString() {
- return "DeletedModule[" + name + "," + id + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IClient.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IClient.java
deleted file mode 100644
index 6d92c66fe..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IClient.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.wst.server.core.IServer;
-/**
- * A launchable client is a client side application or test
- * harness that can be launched (run) against a resource
- * running on a server.
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- */
-public interface IClient {
- /**
- * Returns the id of this client. Each known client has a distinct id.
- * Ids are intended to be used internally as keys; they are not
- * intended to be shown to end users.
- *
- * @return the client id
- */
- public String getId();
-
- /**
- * Returns the displayable name for this client.
- * <p>
- * Note that this name is appropriate for the current locale.
- * </p>
- *
- * @return a displayable name for this client
- */
- public String getName();
-
- /**
- * Returns the displayable description for this client.
- * <p>
- * Note that this description is appropriate for the current locale.
- * </p>
- *
- * @return a displayable description for this client
- */
- public String getDescription();
-
- /**
- * Returns true if this launchable can be run by this client.
- *
- * @param server the server
- * @param launchable the launchable object
- * @param launchMode the mode
- * @return boolean
- */
- public boolean supports(IServer server, Object launchable, String launchMode);
-
- /**
- * Launches the client.
- *
- * @param server the server
- * @param launchable the launchable object
- * @param launchMode the mode
- * @param launch the launch
- * @return a status object with code <code>IStatus.OK</code> if the launch was
- * successful, otherwise a status object indicating what went wrong
- */
- public IStatus launch(IServer server, Object launchable, String launchMode, ILaunch launch);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableRuntime.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableRuntime.java
deleted file mode 100644
index 20bfa99e9..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableRuntime.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-/**
- * Represents an installable runtime.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- */
-public interface IInstallableRuntime {
- /**
- * Returns the id of this runtime type.
- * Each known server runtime type has a distinct id.
- * Ids are intended to be used internally as keys; they are not
- * intended to be shown to end users.
- *
- * @return the runtime type id
- */
- public String getId();
-
- /**
- * Downloads the license from the update site.
- *
- * @param monitor a progress monitor
- * @return the license
- * @throws CoreException
- */
- public String getLicense(IProgressMonitor monitor) throws CoreException;
-
- /**
- * Kicks off a background job to install the runtime.
- *
- * @param path the path to install the runtime at
- */
- public void install(IPath path);
-
- /**
- * Install this runtime.
- *
- * @param path the path to install the runtime at
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if an exception occurs while creating this runtime
- * or setting it's default values
- */
- public void install(IPath path, IProgressMonitor monitor) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableServer.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableServer.java
deleted file mode 100644
index c87a31cbb..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableServer.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-/**
- * Represents an installable server adapter.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- */
-public interface IInstallableServer {
- /**
- * Returns the id of this runtime type.
- * Each known server runtime type has a distinct id.
- * Ids are intended to be used internally as keys; they are not
- * intended to be shown to end users.
- *
- * @return the runtime type id
- */
- public String getId();
-
- /**
- * Returns the displayable name for this runtime type.
- * <p>
- * Note that this name is appropriate for the current locale.
- * </p>
- *
- * @return a displayable name for this runtime type
- */
- public String getName();
-
- /**
- * Returns the displayable description for this runtime type.
- * <p>
- * Note that this description is appropriate for the current locale.
- * </p>
- *
- * @return a displayable description for this runtime type
- */
- public String getDescription();
-
- /**
- * Returns the displayable vendor name for this runtime type. If the
- * runtime type did not specific a vendor, an empty string is returned.
- * <p>
- * Note that this description is appropriate for the current locale.
- * </p>
- *
- * @return a displayable vendor name for this runtime type
- */
- public String getVendor();
-
- /**
- * Returns the displayable version name for this runtime type. If the
- * runtime type did not specific a vendor, an empty string is returned.
- * <p>
- * Note that this description is appropriate for the current locale.
- * </p>
- *
- * @return a displayable version name for this runtime type
- */
- public String getVersion();
-
- /**
- * Downloads the license from the update site.
- *
- * @param monitor a progress monitor
- * @return the license
- * @throws CoreException
- */
- public String getLicense(IProgressMonitor monitor) throws CoreException;
-
- /**
- * Install this server.
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if an exception occurs while creating this runtime
- * or setting it's default values
- */
- public void install(IProgressMonitor monitor) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ILaunchableAdapter.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ILaunchableAdapter.java
deleted file mode 100644
index d907a6d53..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ILaunchableAdapter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.server.core.IModuleArtifact;
-import org.eclipse.wst.server.core.IServer;
-/**
- * This interface, typically implemented by the server
- * code, converts from an IModuleArtifact to an
- * ILaunchable.
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- */
-public interface ILaunchableAdapter {
- /**
- * Returns the id of this adapter. Each known adapter has a distinct id.
- * Ids are intended to be used internally as keys; they are not
- * intended to be shown to end users.
- *
- * @return the adapter id
- */
- public String getId();
-
- /**
- * Returns a launchable object from this module object.
- *
- * @param server the server
- * @param moduleArtifact an artifact in the module
- * @return a launchable object
- * @exception CoreException thrown if there is a problem returning the launchable
- */
- public Object getLaunchable(IServer server, IModuleArtifact moduleArtifact) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IMemento.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IMemento.java
deleted file mode 100644
index fdfdddd0e..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IMemento.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.List;
-/**
- * Interface to a memento used for saving the important state of an object
- * in a form that can be persisted in the file system.
- * <p>
- * Mementos were designed with the following requirements in mind:
- * <ol>
- * <li>Certain objects need to be saved and restored across platform sessions.
- * </li>
- * <li>When an object is restored, an appropriate class for an object might not
- * be available. It must be possible to skip an object in this case.</li>
- * <li>When an object is restored, the appropriate class for the object may be
- * different from the one when the object was originally saved. If so, the
- * new class should still be able to read the old form of the data.</li>
- * </ol>
- * </p>
- * <p>
- * Mementos meet these requirements by providing support for storing a
- * mapping of arbitrary string keys to primitive values, and by allowing
- * mementos to have other mementos as children (arranged into a tree).
- * A robust external storage format based on XML is used.
- * </p><p>
- * The key for an attribute may be any alpha numeric value. However, the
- * value of <code>TAG_ID</code> is reserved for internal use.
- * </p><p>
- * This interface is not intended to be implemented by clients.
- * </p>
- */
-public interface IMemento {
- /**
- * Special reserved key used to store the memento id
- * (value <code>"org.eclipse.ui.id"</code>).
- *
- * @see #getId
- */
- public static final String TAG_ID = "IMemento.internal.id"; //$NON-NLS-1$
-
- /**
- * Creates a new child of this memento with the given type.
- * <p>
- * The <code>getChild</code> and <code>getChildren</code> methods
- * are used to retrieve children of a given type.
- * </p>
- *
- * @param type the type
- * @return a new child memento
- * @see #getChild
- * @see #getChildren
- */
- public IMemento createChild(String type);
-
- /**
- * Creates a new child of this memento with the given type and id.
- * The id is stored in the child memento (using a special reserved
- * key, <code>TAG_ID</code>) and can be retrieved using <code>getId</code>.
- * <p>
- * The <code>getChild</code> and <code>getChildren</code> methods
- * are used to retrieve children of a given type.
- * </p>
- *
- * @param type the type
- * @param id the child id
- * @return a new child memento with the given type and id
- * @see #getId
- */
- public IMemento createChild(String type, String id);
-
- /**
- * Returns the first child with the given type id.
- *
- * @param type the type id
- * @return the first child with the given type
- */
- public IMemento getChild(String type);
-
- /**
- * Returns all children with the given type id.
- *
- * @param type the type id
- * @return the list of children with the given type
- */
- public IMemento[] getChildren(String type);
-
- /**
- * Returns the floating point value of the given key.
- *
- * @param key the key
- * @return the value, or <code>null</code> if the key was not found or was found
- * but was not a floating point number
- */
- public Float getFloat(String key);
-
- /**
- * Returns the id for this memento.
- *
- * @return the memento id, or <code>null</code> if none
- * @see #createChild(java.lang.String,java.lang.String)
- */
- public String getId();
-
- /**
- * Returns the name for this memento.
- *
- * @return the memento name, or <code>null</code> if none
- * @see #createChild(java.lang.String,java.lang.String)
- */
- public String getName();
-
- /**
- * Returns the integer value of the given key.
- *
- * @param key the key
- * @return the value, or <code>null</code> if the key was not found or was found
- * but was not an integer
- */
- public Integer getInteger(String key);
-
- /**
- * Returns the string value of the given key.
- *
- * @param key the key
- * @return the value, or <code>null</code> if the key was not found or was found
- * but was not an integer
- */
- public String getString(String key);
-
- /**
- * Returns the boolean value of the given key.
- *
- * @param key the key
- * @return the value, or <code>null</code> if the key was not found or was found
- * but was not a boolean
- */
- public Boolean getBoolean(String key);
-
- public List getNames();
-
- /**
- * Sets the value of the given key to the given floating point number.
- *
- * @param key the key
- * @param value the value
- */
- public void putFloat(String key, float value);
-
- /**
- * Sets the value of the given key to the given integer.
- *
- * @param key the key
- * @param value the value
- */
- public void putInteger(String key, int value);
-
- /**
- * Sets the value of the given key to the given boolean value.
- *
- * @param key the key
- * @param value the value
- */
- public void putBoolean(String key, boolean value);
-
- /**
- * Copy the attributes and children from <code>memento</code>
- * to the receiver.
- *
- * @param memento the IMemento to be copied.
- */
- public void putMemento(IMemento memento);
-
- /**
- * Sets the value of the given key to the given string.
- *
- * @param key the key
- * @param value the value
- */
- public void putString(String key, String value);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleListener.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleListener.java
deleted file mode 100644
index ad0329240..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-/**
- *
- */
-public interface IModuleListener {
- /**
- * A module has been changed as specified in the event.
- *
- * @param event org.eclipse.wst.server.core.model.ModuleEvent
- */
- public void moduleChanged(ModuleEvent event);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModulePublishHelper.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModulePublishHelper.java
deleted file mode 100644
index ea6dfad35..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModulePublishHelper.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.server.core.IModule;
-/**
- * Temporary interface to help the web services team.
- */
-public interface IModulePublishHelper {
- /**
- * Returns the path that the module is published to, or null if the module is not
- * published to the server or the location is unknown.
- *
- * @param module a module on the server
- * @return the path that the module is published to, or <code>null</code> if not
- * a valid module or the location is unknown
- */
- public IPath getPublishDirectory(IModule[] module);
-}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleResourceDeltaVisitor.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleResourceDeltaVisitor.java
deleted file mode 100644
index 45e73252b..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleResourceDeltaVisitor.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.server.core.model.IModuleResourceDelta;
-/**
- * An objects that visits module resource deltas.
- * <p>
- * Usage:
- * <pre>
- * class Visitor implements IModuleResourceDeltaVisitor {
- * public boolean visit(IModuleResourceDelta delta) {
- * switch (delta.getKind()) {
- * case IModuleResourceDelta.ADDED :
- * // handle added resource
- * break;
- * case IModuleResourceDelta.REMOVED :
- * // handle removed resource
- * break;
- * case IModuleResourceDelta.CHANGED :
- * // handle changed resource
- * break;
- * }
- * return true;
- * }
- * }
- * IModuleResourceDelta rootDelta = ...;
- * rootDelta.accept(new Visitor());
- * </pre>
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- *
- * [issue: @see IModuleResourceDelta#accept(IModuleResourceVisitor)]
- */
-public interface IModuleResourceDeltaVisitor {
- /**
- * Visits the given module resource delta.
- *
- * @param delta the resource delta
- * @return <code>true</code> if the resource delta's children should
- * be visited; <code>false</code> if they should be skipped.
- * @throws CoreException if the visit fails for some reason.
- */
- public boolean visit(IModuleResourceDelta delta) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleVisitor.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleVisitor.java
deleted file mode 100644
index 00e362b77..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IModuleVisitor.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.wst.server.core.IModule;
-/**
- * A visitor on a server's modules.
- */
-public interface IModuleVisitor {
- /**
- * Visit a single module. Returns true to keep visiting, and
- * false if it should stop visiting the module.
- *
- * @param module a module on the server
- * @return boolean <code>true</code> to visit the next module, or
- * <code>false</code> to stop visiting
- */
- public boolean visit(IModule[] module);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IMonitoredServerPort.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IMonitoredServerPort.java
deleted file mode 100644
index 69ae23b79..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IMonitoredServerPort.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerPort;
-
-/**
- * An monitored port on a server.
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- */
-public interface IMonitoredServerPort {
- /**
- * Returns the server that it being monitored.
- *
- * @return org.eclipse.wst.server.core.IServer
- */
- public IServer getServer();
-
- /**
- * Returns the server port.
- *
- * @return org.eclipse.wst.server.model.IServerPort
- */
- public ServerPort getServerPort();
-
- /**
- * Return the port that is being used to monitor.
- *
- * @return int
- */
- public int getMonitorPort();
-
- /**
- * Returns the content types that are being monitored, or null for all content.
- *
- * @return java.lang.String[]
- */
- public String[] getContentTypes();
-
- /**
- * Returns true if the monitor is currently running/active.
- *
- * @return boolean
- */
- public boolean isStarted();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IOrdered.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IOrdered.java
deleted file mode 100644
index e0f30076e..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IOrdered.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-/**
- * An object that has an absolute ordering, and can be ordered against other objects.
- *
- * <p>
- * [issue: It is notoriously difficult to place any kind of
- * useful order on objects that are contributed independently by
- * non-collaborating parties. The IOrdered mechanism is weak, and
- * can't really solve the problem. Issues of presentation are usually
- * best left to the UI, which can sort objects based on arbitrary
- * properties.]
- * </p>
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- */
-public interface IOrdered {
- /**
- * Returns the order (index/priority).
- *
- * @return int
- */
- public int getOrder();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IPublishTask.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IPublishTask.java
deleted file mode 100644
index 50915e3cf..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IPublishTask.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.List;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.model.PublishOperation;
-/**
- * A task for a server.
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- */
-public interface IPublishTask {
- /**
- * Returns the id of the adapter.
- *
- * @return java.lang.String
- */
- public String getId();
-
- /**
- * 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);
-
- /**
- * Lets the task know that it is about to be used. This method should
- * be used to clean out any previously cached information, or start to
- * create a new cache.
- *
- * @param server the server
- * @param modules a list containing IModule arrays
- * @return a possibly empty array of optional tasks
- */
- public PublishOperation[] getTasks(IServer server, List modules);
-
- /**
- * Returns the tasks that should be performed during publishing.
- *
- * @param server the server
- * @param modules a list containing IModule arrays
- * @param kind one of the IServer.PUBLISH_XX constants
- * @param kindList one of the IServer publish change constants
- * @return the tasks that should be performed on the server
- */
- public PublishOperation[] getTasks(IServer server, int kind, List modules, List kindList);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IRuntimeLocator.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IRuntimeLocator.java
deleted file mode 100644
index d5bf9ecba..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IRuntimeLocator.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
-/**
- * A runtime locator provides the ability to locate or search for additional
- * runtimes of a particular type.
- * <p>
- * Runtime locators are found via ServerCore.getRuntimeLocators().
- * </p>
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- */
-public interface IRuntimeLocator {
- /**
- * A callback listener interface.
- */
- public interface IRuntimeSearchListener {
- /**
- * Called when a new runtime is found by the locator.
- * The runtime must never be null.
- *
- * @param runtime the runtime that was found.
- */
- public void runtimeFound(IRuntimeWorkingCopy runtime);
- }
-
- /**
- * Returns the id of this runtime locator.
- * Each known runtime locator has a distinct id.
- * Ids are intended to be used internally as keys; they are not
- * intended to be shown to end users.
- *
- * @return the runtime locator id
- */
- public String getId();
-
- /**
- * Returns true if the runtime locator can find runtimes of the given type.
- * The id should never be null.
- *
- * @param runtimeTypeId the id of a runtime type
- * @return boolean
- */
- public boolean supportsType(String runtimeTypeId);
-
- /**
- * Searches for local runtimes.
- * It uses the callback listener to report runtimes that are found.
- * The path contains the absolute path of the folder to search in,
- * or <code>null</code> to search the entire machine.
- *
- * @param path the path to search for runtimes in
- * @param listener a listener to report status to
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException
- */
- public void searchForRuntimes(IPath path, IRuntimeSearchListener listener, IProgressMonitor monitor) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerLocator.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerLocator.java
deleted file mode 100644
index 242cafb97..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerLocator.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.IServerWorkingCopy;
-/**
- * A server locator provides the ability to locate or search for additional
- * servers of a particular type, on a particular host.
- * <p>
- * Server locators are found via ServerCore.getServerLocators().
- * </p>
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- */
-public interface IServerLocator {
- /**
- * A callback listener interface.
- */
- public interface IServerSearchListener {
- /**
- * Called when a new server is found by the locator.
- * The server must never be null.
- *
- * @param server the runtime that was found.
- */
- public void serverFound(IServerWorkingCopy server);
- }
-
- /**
- * Returns the id of this server locator.
- * Each known server locator has a distinct id.
- * Ids are intended to be used internally as keys; they are not
- * intended to be shown to end users.
- *
- * @return the server locator id
- */
- public String getId();
-
- /**
- * Returns true if the server locator can find servers of the given type.
- * The id should never be null.
- *
- * @param serverTypeId the id of a server type
- * @return boolean
- */
- public boolean supportsType(String serverTypeId);
-
- /**
- * Returns <code>true</code> if this type of server can run on a remote host.
- * Returns <code>false</code> if the server type can only be run on "localhost"
- * (the local machine).
- *
- * @return <code>true</code> if this type of server can run on
- * a remote host, and <code>false</code> if it cannot
- */
- public boolean supportsRemoteHosts();
-
- /**
- * Searches for servers.
- * It uses the callback listener to report servers that are found.
- *
- * @param host a host string conforming to RFC 2732
- * @param listener a listener to report status to
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException
- */
- public void searchForServers(String host, IServerSearchListener listener, IProgressMonitor monitor) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitor.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitor.java
deleted file mode 100644
index 780d186b0..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-/**
- * An interface to a TCP/IP monitor.
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- */
-public interface IServerMonitor {
- /**
- * Returns the id of the monitor.
- *
- * @return java.lang.String
- */
- public String getId();
-
- /**
- * Returns the label (name) of this monitor.
- *
- * @return java.lang.String
- */
- public String getName();
-
- /**
- * Returns the description of this monitor.
- *
- * @return java.lang.String
- */
- public String getDescription();
-
- /**
- * Start monitoring the given port, and return the port number to
- * tunnel requests through. The monitorPort is the new port to use, or
- * -1 to pick a random port.
- *
- * @param port
- * @return
- */
- //public int startMonitoring(IServer server, ServerPort port, int monitorPort) throws CoreException;
-
- /**
- * Stop monitoring the given port.
- *
- * @param port
- */
- //public void stopMonitoring(IServer server, ServerPort port);
-} \ No newline at end of file
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
deleted file mode 100644
index 7d1faf750..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IServerMonitorManager.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerPort;
-/**
- *
- * <p>This interface is not intended to be implemented by clients.</p>
- */
-public interface IServerMonitorManager {
- /**
- * 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);
-
- /**
- * Starts monitoring the given port, and returns the new port # to use that will
- * route to the monitored port.
- *
- * @param server
- * @param port
- * @param monitorPort - the new port number to use for monitoring, or -1 to pick a new port
- * @param content
- * @return monitor port number
- */
- public IMonitoredServerPort createMonitor(IServer server, ServerPort port, int monitorPort, String[] content);
-
- /**
- * Stop monitoring the given port. Throws a CoreException if there was a problem
- * stopping the monitoring
- *
- * @param msp the monitored port
- */
- public void removeMonitor(IMonitoredServerPort msp);
-
- /**
- * Start the monitor. If the msp port is -1, it will be updated to the port that is actually in use.
- *
- * @param msp the monitored port
- * @throws CoreException
- */
- public void startMonitor(IMonitoredServerPort msp) throws CoreException;
-
- /**
- * Stop monitoring.
- *
- * @param msp the monitored port
- */
- public void stopMonitor(IMonitoredServerPort msp);
-
- /**
- * Returns the monitored port to use when making requests to the given server, port number,
- * and content. Returns the existing port number if the port is not being monitored.
- *
- * @param server
- * @param port
- * @param contentType
- * @return the monitored port number
- */
- public int getMonitoredPort(IServer server, int port, String contentType);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IStartup.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IStartup.java
deleted file mode 100644
index c8654daae..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IStartup.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-/**
- * An interface for the startup extension point.
- * Plug-ins that register a startup extension will be activated when the server
- * core plug-in initializes and have an opportunity to run code that can't be
- * implemented using the normal contribution mechanisms.
- */
-public interface IStartup {
- /**
- * Will be called on server core startup.
- */
- public void startup();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableRuntime.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableRuntime.java
deleted file mode 100644
index 36ec2a70d..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableRuntime.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.update.core.*;
-import org.eclipse.update.standalone.InstallCommand;
-import org.osgi.framework.Bundle;
-/**
- *
- */
-public class InstallableRuntime implements IInstallableRuntime {
- private IConfigurationElement element;
-
- public InstallableRuntime(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /**
- *
- * @return the id
- */
- public String getId() {
- try {
- return element.getAttribute("id");
- } catch (Exception e) {
- return null;
- }
- }
-
- public String getFeatureVersion() {
- try {
- return element.getAttribute("featureVersion");
- } catch (Exception e) {
- // ignore
- }
- return null;
- }
-
- public String getFeatureId() {
- try {
- return element.getAttribute("featureId");
- } catch (Exception e) {
- // ignore
- }
- return null;
- }
-
- public String getBundleId() {
- try {
- return element.getAttribute("bundleId");
- } catch (Exception e) {
- // ignore
- }
- return null;
- }
-
- public String getBundleVersion() {
- try {
- return element.getAttribute("bundleVersion");
- } catch (Exception e) {
- // ignore
- }
- return null;
- }
-
- public String getPath() {
- try {
- return element.getAttribute("path");
- } catch (Exception e) {
- // ignore
- }
- return null;
- }
-
- public String getFromSite() {
- try {
- return element.getAttribute("featureSite");
- } catch (Exception e) {
- // ignore
- }
- return null;
- }
-
- /*
- * @see IInstallableRuntime#getLicense(IProgressMonitor)
- */
- public String getLicense(IProgressMonitor monitor) throws CoreException {
- String featureId = getFeatureId();
- String featureVersion = getFeatureVersion();
- String fromSite = getFromSite();
-
- if (featureId == null || featureVersion == null || fromSite == null)
- return null;
-
- ISite site = InstallableRuntime.getSite(fromSite, monitor);
- ISiteFeatureReference[] featureRefs = site.getFeatureReferences();
- for (int i = 0; i < featureRefs.length; i++) {
- if (featureId.equals(featureRefs[i].getName()) && featureVersion.equals(featureRefs[i].getVersionedIdentifier().getVersion().toString())) {
- IFeature feature = featureRefs[i].getFeature(monitor);
- IURLEntry license = feature.getLicense();
- if (license != null)
- return license.getAnnotation();
- return null;
- }
- }
- return null;
- }
-
- protected Bundle getBundleVersion(Bundle[] bundles, String version) {
- if (bundles == null)
- return null;
-
- int size = bundles.length;
- return bundles[size - 1];
- }
-
- /*
- * @see IInstallableRuntime#install(IPath)
- */
- public void install(final IPath path) {
- Job installRuntimeJob = new Job(Messages.jobInstallingRuntime) {
- public boolean belongsTo(Object family) {
- return ServerPlugin.PLUGIN_ID.equals(family);
- }
-
- protected IStatus run(IProgressMonitor monitor) {
- try {
- install(path, monitor);
- } catch (CoreException ce) {
- return ce.getStatus();
- }
-
- return Status.OK_STATUS;
- }
- };
-
- installRuntimeJob.schedule();
- }
-
- public static ISite getSite(String fromSite, IProgressMonitor monitor) {
- try {
- URL siteURL = new URL(fromSite);
- return SiteManager.getSite(siteURL, monitor);
- } catch (MalformedURLException e) {
- Trace.trace(Trace.WARNING, "Could not parse site", e);
- } catch (CoreException e) {
- Trace.trace(Trace.WARNING, "Could not parse site", e);
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Could not parse site", e);
- }
- return null;
- }
-
- public static String getMirror(String fromSite, ISite site) {
- if (site != null) {
- String mirrorSite = getMirror(site);
- if (mirrorSite != null)
- return mirrorSite;
- }
- return fromSite;
- }
-
- public static String getMirror(ISite site) {
- // if the site is a site containing mirrors, set the fromSite to the
- // first mirror site since many mirror list generators will sort the mirrors
- // to closest geographic location
- if (site != null && site instanceof ISiteWithMirrors) {
- try {
- IURLEntry[] urlEntries = ((ISiteWithMirrors) site).getMirrorSiteEntries();
- if (urlEntries.length > 0)
- return urlEntries[0].getURL().toExternalForm();
- } catch (CoreException e) {
- Trace.trace(Trace.WARNING, "Could not find mirror site", e);
- }
- }
- return null;
- }
-
- /*
- * @see IInstallableRuntime#install(IPath, IProgressMonitor)
- */
- public void install(IPath path, IProgressMonitor monitor) throws CoreException {
- String featureId = getFeatureId();
- String featureVersion = getFeatureVersion();
- String fromSite = getFromSite();
-
- if (featureId == null || featureVersion == null || fromSite == null)
- return;
-
- ISite site = getSite(fromSite, monitor);
- fromSite = getMirror(fromSite, site);
-
- boolean install = false;
- if (getBundleId() != null) {
- install = Platform.getBundles(getBundleId(), getBundleVersion()) == null;
- } else if (getPath() != null) {
- install = !new File(getFeatureArchivePath()).exists();
- }
-
- // download and install plugins
- if (install) {
- try {
- monitor.setTaskName("Installing feature");
- InstallCommand command = new InstallCommand(featureId, featureVersion, fromSite, null, "false");
- boolean b = command.run(monitor);
- if (!b)
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0,
- Messages.errorInstallingServerFeature, null));
- command.applyChangesNow();
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error installing feature", e);
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0,
- NLS.bind(Messages.errorInstallingServer, e.getLocalizedMessage()), e));
- }
- }
-
- try {
- URL url = null;
- if (getBundleId() != null) {
- Bundle[] bundles = Platform.getBundles(getBundleId(), getBundleVersion());
- Bundle bundle = getBundleVersion(bundles, getBundleVersion());
- url = bundle.getEntry(getPath());
- url = FileLocator.resolve(url);
- } else {
- // data archive used so get the url of the runtime archive from inside the feature
- url = new File(getFeatureArchivePath()).toURL();
- }
-
- // unzip from bundle into path
- InputStream in = url.openStream();
- BufferedInputStream bin = new BufferedInputStream(in);
- ZipInputStream zin = new ZipInputStream(bin);
- ZipEntry entry = zin.getNextEntry();
- byte[] buf = new byte[8192];
- while (entry != null) {
- String name = entry.getName();
- monitor.setTaskName("Unzipping: " + name);
-
- if (entry.isDirectory()) {
- path.append(name).toFile().mkdirs();
- } else {
- FileOutputStream fout = new FileOutputStream(path.append(name).toFile());
- int r = zin.read(buf);
- while (r >= 0) {
- fout.write(buf, 0, r);
- r = zin.read(buf);
- }
- }
- zin.closeEntry();
- entry = zin.getNextEntry();
- }
- zin.close();
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error unzipping runtime", e);
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0,
- NLS.bind(Messages.errorInstallingServer, e.getLocalizedMessage()), e));
- }
- }
-
- private String getFeatureArchivePath() {
- String feature = getFeatureId() + "_" + getFeatureVersion();
- String platformLoc = Platform.getInstallLocation().getURL().getFile();
- return platformLoc.concat(File.separator + Site.DEFAULT_INSTALLED_FEATURE_PATH + feature + File.separator + getPath());
- }
-
- public String toString() {
- return "InstallableRuntime[" + getId() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java
deleted file mode 100644
index 04c0b4111..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.update.core.IFeature;
-import org.eclipse.update.core.ISite;
-import org.eclipse.update.core.ISiteFeatureReference;
-import org.eclipse.update.core.IURLEntry;
-import org.eclipse.update.standalone.InstallCommand;
-import org.osgi.framework.Version;
-/**
- *
- */
-public class InstallableServer implements IInstallableServer {
- private IConfigurationElement element;
-
- public InstallableServer(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /**
- *
- * @return the id
- */
- public String getId() {
- try {
- return element.getAttribute("id");
- } catch (Exception e) {
- return null;
- }
- }
-
- /**
- *
- * @return the name
- */
- public String getName() {
- try {
- return element.getAttribute("name");
- } catch (Exception e) {
- return null;
- }
- }
-
- /**
- *
- * @return the description
- */
- public String getDescription() {
- try {
- return element.getAttribute("description");
- } catch (Exception e) {
- return null;
- }
- }
-
- public String getVendor() {
- try {
- String vendor = element.getAttribute("vendor");
- if (vendor != null)
- return vendor;
- } catch (Exception e) {
- // ignore
- }
- return Messages.defaultVendor;
- }
-
- public String getVersion() {
- try {
- String version = element.getAttribute("version");
- if (version != null)
- return version;
- } catch (Exception e) {
- // ignore
- }
- return Messages.defaultVersion;
- }
-
- public String getFeatureVersion() {
- try {
- return element.getAttribute("featureVersion");
- } catch (Exception e) {
- // ignore
- }
- return null;
- }
-
- public String getFeatureId() {
- try {
- return element.getAttribute("featureId");
- } catch (Exception e) {
- // ignore
- }
- return null;
- }
-
- public String getFromSite() {
- try {
- return element.getAttribute("featureSite");
- } catch (Exception e) {
- // ignore
- }
- return null;
- }
-
- /*
- * @see IInstallableServer#getLicense(IProgressMonitor)
- */
- public String getLicense(IProgressMonitor monitor) throws CoreException {
- String featureId = getFeatureId();
- String featureVersion = getFeatureVersion();
- String fromSite = getFromSite();
-
- if (featureId == null || featureVersion == null || fromSite == null)
- return null;
-
- ISite site = InstallableRuntime.getSite(fromSite, monitor);
- ISiteFeatureReference[] featureRefs = site.getFeatureReferences();
- for (int i = 0; i < featureRefs.length; i++) {
- if (featureId.equals(featureRefs[i].getVersionedIdentifier().getIdentifier()) && featureVersion.equals(featureRefs[i].getVersionedIdentifier().getVersion().toString())) {
- IFeature feature = featureRefs[i].getFeature(monitor);
- IURLEntry license = feature.getLicense();
- if (license != null)
- return license.getAnnotation();
- return null;
- }
- }
- return null;
- }
-
- /*
- * @see IInstallableServer#install(IProgressMonitor)
- */
- public void install(IProgressMonitor monitor) throws CoreException {
- String featureId = getFeatureId();
- String featureVersion = getFeatureVersion();
- String fromSite = getFromSite();
-
- if (featureId == null || featureVersion == null || fromSite == null)
- return;
-
- ISite site = InstallableRuntime.getSite(fromSite, monitor);
- fromSite = InstallableRuntime.getMirror(fromSite, site);
- featureVersion = getLatestVersion(site, featureVersion, featureId);
-
- try {
- InstallCommand command = new InstallCommand(featureId, featureVersion, fromSite, null, "false");
- boolean b = command.run(monitor);
- if (!b)
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0,
- Messages.errorInstallingServerFeature, null));
- //command.applyChangesNow();
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error installing feature", e);
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0,
- NLS.bind(Messages.errorInstallingServer, e.getLocalizedMessage()), e));
- }
-
- try {
- Thread.sleep(1000);
- } catch (Exception e) {
- // ignore
- }
- }
-
- public static String getLatestVersion(ISite site, String version, String featureId) {
- Version latestVersion = new Version(version);
- try {
- ISiteFeatureReference[] features = site.getFeatureReferences();
- for (int i = 0; i < features.length; i++) {
- if (features[i].getName().equals(featureId)) {
- Version nextCand = new Version(features[i].getVersionedIdentifier().getVersion().toString());
- if (nextCand.compareTo(latestVersion) > 0) {
- latestVersion = nextCand;
- }
- }
- }
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error searching for latest feature version", e);
- }
-
- return latestVersion.toString();
- }
-
- public String toString() {
- return "InstallableServer[" + getId() + ", " + getName() + "]";
- }
-} \ 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
deleted file mode 100644
index 6af7ca137..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/LaunchableAdapter.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-import org.eclipse.wst.server.core.IModuleArtifact;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.model.*;
-/**
- *
- */
-public class LaunchableAdapter implements ILaunchableAdapter {
- private IConfigurationElement element;
- private LaunchableAdapterDelegate delegate;
-
- /**
- * LaunchableAdapter constructor comment.
- *
- * @param element a configuration element
- */
- public LaunchableAdapter(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /**
- * Returns the id of this LaunchableAdapter.
- *
- * @return java.lang.String
- */
- public String getId() {
- return element.getAttribute("id");
- }
-
- public LaunchableAdapterDelegate getDelegate() {
- if (delegate == null) {
- try {
- delegate = (LaunchableAdapterDelegate) element.createExecutableExtension("class");
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, "Could not create delegate" + toString() + ": " + t.getMessage());
- }
- }
- return delegate;
- }
-
- /**
- * @see ILaunchableAdapter#getLaunchable(IServer, IModuleArtifact)
- */
- public Object getLaunchable(IServer server, IModuleArtifact object) {
- try {
- return getDelegate().getLaunchable(server, object);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
- return null;
- }
- }
-
- /**
- * Return a string representation of this object.
- *
- * @return java.lang.String
- */
- public String toString() {
- return "LaunchableAdapter[" + getId() + "]";
- }
-}
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
deleted file mode 100644
index 8e4efffa8..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleArtifactAdapter.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.expressions.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.server.core.IModuleArtifact;
-import org.eclipse.wst.server.core.model.ModuleArtifactAdapterDelegate;
-import org.osgi.framework.Bundle;
-/**
- *
- */
-public class ModuleArtifactAdapter {
- private IConfigurationElement element;
- private Expression fContextualLaunchExpr = null;
- private ModuleArtifactAdapterDelegate delegate;
-
- /**
- * ModuleArtifactAdapter constructor comment.
- *
- * @param element a configuration element
- */
- public ModuleArtifactAdapter(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /**
- * Returns the id of this ModuleArtifactAdapter.
- *
- * @return java.lang.String
- */
- public String getId() {
- return element.getAttribute("id");
- }
-
- /**
- * Returns the relative priority of this adapter.
- *
- * @return a priority
- */
- public int getPriority() {
- try {
- return Integer.parseInt(element.getAttribute("priority"));
- } catch (Exception e) {
- return 0;
- }
- }
-
- /**
- * Returns true if the plugin that loaded this class has been loaded.
- *
- * @return boolean
- */
- public boolean isPluginActivated() {
- String name = element.getDeclaringExtension().getContributor().getName();
- return Platform.getBundle(name).getState() == Bundle.ACTIVE;
- }
-
- /**
- * Returns an expression that represents the enablement logic for the
- * contextual launch element of this launch shortcut description or
- * <code>null</code> if none.
- * @return an evaluatable expression or <code>null</code>
- * @throws CoreException if the configuration element can't be
- * converted. Reasons include: (a) no handler is available to
- * cope with a certain configuration element or (b) the XML
- * expression tree is malformed.
- */
- public Expression getContextualLaunchEnablementExpression() throws CoreException {
- if (fContextualLaunchExpr == null) {
- IConfigurationElement[] elements = element.getChildren(ExpressionTagNames.ENABLEMENT);
- IConfigurationElement enablement = elements.length > 0 ? elements[0] : null;
-
- if (enablement != null)
- fContextualLaunchExpr = ExpressionConverter.getDefault().perform(enablement);
- }
- return fContextualLaunchExpr;
- }
-
- /**
- * Evaluate the given expression within the given context and return
- * the result. Returns <code>true</code> iff result is either TRUE or NOT_LOADED.
- * This allows optimistic inclusion of shortcuts before plugins are loaded.
- * Returns <code>false</code> if exp is <code>null</code>.
- *
- * @param exp the enablement expression to evaluate or <code>null</code>
- * @param context the context of the evaluation. Usually, the
- * user's selection.
- * @return the result of evaluating the expression
- * @throws CoreException
- */
- protected boolean evalEnablementExpression(IEvaluationContext context, Expression exp) throws CoreException {
- return (exp != null) ? ((exp.evaluate(context)) != EvaluationResult.FALSE) : false;
- }
-
- /**
- * @return an Evaluation context with default variable = selection
- */
- /*protected IEvaluationContext createContext(Object obj) {
- List list = null;
- IWorkbenchWindow window = DebugUIPlugin.getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage page = window.getActivePage();
- if (page != null) {
- IWorkbenchPart activePart = page.getActivePart();
- if (activePart instanceof IEditorPart) {
- list = new ArrayList();
- list.add(((IEditorPart)activePart).getEditorInput());
- } else if (activePart != null) {
- IWorkbenchPartSite site = activePart.getSite();
- if (site != null) {
- ISelectionProvider selectionProvider = site.getSelectionProvider();
- if (selectionProvider != null) {
- ISelection selection = selectionProvider.getSelection();
- if (selection instanceof IStructuredSelection) {
- list = ((IStructuredSelection)selection).toList();
- }
- }
- }
- }
- }
- }
- // create a default evaluation context with default variable
- // of the user selection or editor input
- if (list == null) {
- list = Collections.EMPTY_LIST;
- }
- IEvaluationContext context = new EvaluationContext(null, list);
- context.addVariable("selection", list); //$NON-NLS-1$
-
- 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);
- return evalEnablementExpression(context, getContextualLaunchEnablementExpression());
- }
-
- public ModuleArtifactAdapterDelegate getDelegate() {
- if (delegate == null) {
- try {
- delegate = (ModuleArtifactAdapterDelegate) element.createExecutableExtension("class");
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, "Could not create delegate" + toString() + ": " + t.getMessage());
- }
- }
- return delegate;
- }
-
- public boolean isDelegateLoaded() {
- return (delegate != null);
- }
-
- /**
- * Returns the module artifact.
- *
- * @param obj an object
- * @return the module artifact, or <code>null</code>
- */
- public IModuleArtifact getModuleArtifact(Object obj) {
- try {
- return getDelegate().getModuleArtifact(obj);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
- return null;
- }
- }
-
- /**
- * Return a string representation of this object.
- *
- * @return java.lang.String
- */
- public String toString() {
- return "ModuleArtifactAdapter[" + getId() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleEvent.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleEvent.java
deleted file mode 100644
index a39dd4fe8..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleEvent.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.server.core.IModule;
-/**
- * An event fired when a module changes.
- */
-public class ModuleEvent {
- private IModule module;
- private boolean isChanged;
- private IModule[] added;
- private IModule[] changed;
- private IModule[] removed;
-
- class IModuleArtifact {
- IPath path;
- long timestamp;
- }
-
- /**
- * Create a new module event.
- *
- * @param module the module that has been changed
- * @param isChanged true if the module has changed
- * @param added added child modules
- * @param changed changed child modules
- * @param removed removed child modules
- */
- public ModuleEvent(IModule module, boolean isChanged, IModule[] added, IModule[] changed, IModule[] removed) {
- this.module = module;
- this.isChanged = isChanged;
- this.added = added;
- this.changed = changed;
- this.removed = removed;
- }
-
- /**
- * Returns the module that has been changed.
- *
- * @return the module
- */
- public IModule getModule() {
- return module;
- }
-
- /**
- * Returns true if this module's settings have changed.
- *
- * @return <code>true</code> if the contents have changed
- */
- public boolean isChanged() {
- return isChanged;
- }
-
- /**
- * Returns any child modules that have been added.
- *
- * @return the added child modules, or null if no modules have been added
- */
- public IModule[] getAddedChildModules() {
- return added;
- }
-
- /**
- * Returns any child modules that have been changed.
- *
- * @return the changed child modules, or null if no modules have been changed
- */
- public IModule[] getChangedChildModules() {
- return changed;
- }
-
- /**
- * Returns any child modules that have been removed.
- *
- * @return the removed child modules, or null if no modules have been removed
- */
- public IModule[] getRemovedChildModules() {
- return removed;
- }
-
- /**
- * Returns the module artifacts that have changed.
- *
- * @return the changed module artifacts
- */
- public IModuleArtifact[] getChangedArtifacts() {
- return null;
- }
-} \ No newline at end of file
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
deleted file mode 100644
index 8eaaf8394..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactory.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IModuleType;
-import org.eclipse.wst.server.core.model.InternalInitializer;
-import org.eclipse.wst.server.core.model.ModuleFactoryDelegate;
-/**
- *
- */
-public class ModuleFactory implements IOrdered {
- private IConfigurationElement element;
- public ModuleFactoryDelegate delegate;
- private List moduleTypes;
-
- private List modules;
-
- /**
- * ModuleFactory constructor comment.
- *
- * @param element a configuration element
- */
- public ModuleFactory(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /**
- * Returns the id of this factory.
- *
- * @return java.lang.String
- */
- public String getId() {
- return element.getAttribute("id");
- }
-
- /**
- * Returns the index (ordering) of this task.
- *
- * @return int
- */
- public int getOrder() {
- try {
- return Integer.parseInt(element.getAttribute("order"));
- } catch (NumberFormatException e) {
- return -1;
- }
- }
-
- /**
- * Return the supported module types.
- *
- * @return an array of module types
- */
- public IModuleType[] getModuleTypes() {
- if (moduleTypes == null)
- moduleTypes = ServerPlugin.getModuleTypes(element.getChildren("moduleType"));
-
- IModuleType[] mt = new IModuleType[moduleTypes.size()];
- moduleTypes.toArray(mt);
- return mt;
- }
-
- /**
- * Returns true if this modules factory produces project modules.
- *
- * @return boolean
- */
- public boolean isProjectModuleFactory() {
- return "true".equalsIgnoreCase(element.getAttribute("projects"));
- }
-
- /*
- * @see IModuleFactoryDelegate#getDelegate()
- */
- public ModuleFactoryDelegate getDelegate(IProgressMonitor monitor) {
- if (delegate == null) {
- try {
- delegate = (ModuleFactoryDelegate) element.createExecutableExtension("class");
- //delegate.initialize(this);
- InternalInitializer.initializeModuleFactoryDelegate(delegate, this, monitor);
- //ResourceManager.getInstance().addModuleFactoryListener(delegate);
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, "Could not create delegate " + toString() + ": " + t.getMessage());
- }
- }
- return delegate;
- }
-
- /*
- * @see
- */
- public IModule getModule(String id) {
- IModule[] modules2 = getModules();
- if (modules2 != null) {
- int size = modules2.length;
- for (int i = 0; i < size; i++) {
- Module module = (Module) modules2[i];
- if (id.equals(module.getInternalId()))
- return module;
- }
- }
- return null;
- }
-
- public void clearModuleCache() {
- modules = null;
- }
-
- /*
- * @see
- */
- public IModule[] getModules() {
- //Trace.trace(Trace.FINER, "getModules() > " + this);
- if (modules == null) {
- try {
- modules = new ArrayList();
- IModule[] modules2 = getDelegate(null).getModules();
- if (modules2 != null) {
- int size = modules2.length;
- for (int i = 0; i < size; i++)
- modules.add(modules2[i]);
- }
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + t.getMessage());
- return null;
- }
- }
-
- //Trace.trace(Trace.FINER, "getModules() < " + this);
-
- IModule[] m = new IModule[modules.size()];
- modules.toArray(m);
- return m;
- }
-
- /**
- * Return a string representation of this object.
- *
- * @return java.lang.String
- */
- public String toString() {
- return "ModuleFactory[" + getId() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactoryEvent.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactoryEvent.java
deleted file mode 100644
index 0f2877a49..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFactoryEvent.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.wst.server.core.IModule;
-/**
- * An event fired when a module factory changes.
- */
-public class ModuleFactoryEvent {
- protected IModule[] added;
- protected IModule[] removed;
-
- /**
- * Create a new event.
- *
- * @param added added modules
- * @param removed removed modules
- */
- public ModuleFactoryEvent(IModule[] added, IModule[] removed) {
- this.added = added;
- this.removed = removed;
- }
-
- /**
- * Returns any modules that have been added.
- *
- * @return org.eclipse.wst.server.core.model.IModule[]
- */
- public IModule[] getAddedModules() {
- return added;
- }
-
- /**
- * Returns any modules that have been removed.
- *
- * @return org.eclipse.wst.server.core.model.IModule[]
- */
- public IModule[] getRemovedModules() {
- return removed;
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFile.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFile.java
deleted file mode 100644
index 177c0d8f9..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFile.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.server.core.model.IModuleFile;
-/**
- *
- */
-public class ModuleFile implements IModuleFile {
- protected IFile file;
- protected File file2;
- protected String name;
- protected IPath path;
- protected long stamp = -1;
-
- /**
- * Creates a workspace module file with the current modification stamp.
- *
- * @param file
- * @param name
- * @param path
- */
- public ModuleFile(IFile file, String name, IPath path) {
- this.file = file;
- this.name = name;
- this.path = path;
- if (file != null)
- stamp = file.getModificationStamp() + file.getLocalTimeStamp();
- }
-
- /**
- * Creates an external module file with the current modification stamp.
- *
- * @param file
- * @param name
- * @param path
- */
- public ModuleFile(File file, String name, IPath path) {
- this.file2 = file;
- this.name = name;
- this.path = path;
- if (file != null)
- stamp = file2.lastModified();
- }
-
- /**
- * Creates a workspace module file with a specific modification stamp.
- *
- * @param file
- * @param name
- * @param path
- * @param stamp
- * @deprecated use one of the top two constructors instead
- */
- public ModuleFile(IFile file, String name, IPath path, long stamp) {
- this.file = file;
- this.name = name;
- this.path = path;
- this.stamp = stamp;
- }
-
- /**
- * Creates a module file with a specific modification stamp and no
- * file reference.
- *
- * @param name
- * @param path
- * @param stamp
- */
- public ModuleFile(String name, IPath path, long stamp) {
- this.name = name;
- this.path = path;
- this.stamp = stamp;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.model.IModuleFile#getModificationStamp()
- */
- public long getModificationStamp() {
- return stamp;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.model.IModuleResource#getModuleRelativePath()
- */
- public IPath getModuleRelativePath() {
- return path;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.model.IModuleResource#getName()
- */
- public String getName() {
- return name;
- }
-
- public boolean equals(Object obj) {
- if (!(obj instanceof IModuleFile))
- return false;
-
- IModuleFile mf = (IModuleFile) obj;
- if (!name.equals(mf.getName()))
- return false;
- if (!path.equals(mf.getModuleRelativePath()))
- return false;
- return true;
- }
-
- public int hashCode() {
- return name.hashCode() * 37 + path.hashCode();
- }
-
- public Object getAdapter(Class cl) {
- if (IFile.class.equals(cl))
- return file;
- if (File.class.equals(cl))
- return file2;
- return null;
- }
-
- public String toString() {
- return "ModuleFile [" + name + ", " + path + ", " + stamp + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleKind.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleKind.java
deleted file mode 100644
index 7bd8184c8..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleKind.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-/**
- *
- */
-public class ModuleKind {
- protected String id;
- protected String name;
-
- public ModuleKind(IConfigurationElement ce) {
- super();
- this.id = ce.getAttribute("id");
- this.name = ce.getAttribute("name");
- }
-
- public ModuleKind(String id, String name) {
- super();
- this.id = id;
- this.name = name;
- }
-
- public String getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public String toString() {
- return "ModuleType[" + id + ", " + name + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleProperties.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleProperties.java
deleted file mode 100644
index 555563506..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleProperties.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.wst.server.core.*;
-/**
- * Helper class that stores preference information for the server tools.
- */
-public class ModuleProperties {
- private static final String MODULE_DATA_FILE = "modules.xml";
-
- protected static ModuleProperties instance;
- protected Map modules;
-
- /**
- * ModuleProperties constructor.
- */
- protected ModuleProperties() {
- super();
- load();
- instance = this;
- }
-
- /**
- * Return a static instance.
- *
- * @return a static instance
- */
- public static ModuleProperties getInstance() {
- if (instance == null)
- new ModuleProperties();
- return instance;
- }
-
- /**
- * Load the data.
- */
- private void load() {
- Trace.trace(Trace.FINEST, "Loading module info");
- String filename = ServerPlugin.getInstance().getStateLocation().append(MODULE_DATA_FILE).toOSString();
- modules = new HashMap();
-
- try {
- IMemento memento = XMLMemento.loadMemento(filename);
-
- IMemento[] children = memento.getChildren("module");
- int size = children.length;
-
- for (int i = 0; i < size; i++) {
- String moduleId = children[i].getString("moduleId");
- String serverId = children[i].getString("serverId");
- modules.put(moduleId, serverId);
- }
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Could not load servers: " + e.getMessage());
- }
- }
-
- private void save(IProgressMonitor monitor) throws CoreException {
- String filename = ServerPlugin.getInstance().getStateLocation().append(MODULE_DATA_FILE).toOSString();
-
- try {
- XMLMemento memento = XMLMemento.createWriteRoot("modules");
-
- Iterator iterator = modules.keySet().iterator();
- while (iterator.hasNext()) {
- String moduleId = (String) iterator.next();
- String serverId = (String) modules.get(moduleId);
-
- IMemento child = memento.createChild("module");
- child.putString("moduleId", moduleId);
- child.putString("serverId", serverId);
- }
-
- memento.saveToFile(filename);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not save servers", e);
- }
- }
-
- /*
- * @see ServerCore#getDefaultServer(IModule)
- */
- public IServer getDefaultServer(IModule module) {
- if (module == null)
- throw new IllegalArgumentException();
-
- String serverId = (String) modules.get(module.getId());
- if (serverId == null || serverId.length() == 0)
- return null;
-
- return ServerCore.findServer(serverId);
- }
-
- /*
- * @see ServerCore#setDefaultServer(IModule, IServer, IProgressMonitor)
- */
- public void setDefaultServer(IModule module, IServer server, IProgressMonitor monitor) throws CoreException {
- if (module == null)
- throw new IllegalArgumentException();
-
- String newServerId = null;
- if (server != null)
- newServerId = server.getId();
-
- String serverId = (String) modules.get(module.getId());
- if (serverId == null && newServerId == null)
- return;
- if (serverId != null && serverId.equals(newServerId))
- return;
-
- modules.put(module.getId(), newServerId);
- save(monitor);
- }
-
- public String toString() {
- return "ModuleProperties[]";
- }
-} \ No newline at end of file
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
deleted file mode 100644
index c47d79b68..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IModuleType;
-import org.eclipse.wst.server.core.model.IModuleFile;
-import org.eclipse.wst.server.core.model.IModuleFolder;
-import org.eclipse.wst.server.core.model.IModuleResource;
-import org.eclipse.wst.server.core.model.IModuleResourceDelta;
-import org.eclipse.wst.server.core.model.ModuleDelegate;
-/**
- * Publish information for a specific module on a specific server.
- */
-public class ModulePublishInfo {
- private static final String MODULE_ID = "module-ids";
- private static final String NAME = "name";
- private static final String MODULE_TYPE_ID = "module-type-id";
- private static final String MODULE_TYPE_VERSION = "module-type-version";
- private static final String PATH = "path";
- private static final String STAMP = "stamp";
- private static final String FILE = "file";
- private static final String FOLDER = "folder";
-
- private String moduleId;
- private String name;
- private IModuleResource[] resources = new IModuleResource[0];
- private IModuleType moduleType;
-
- private boolean useCache;
- private IModuleResource[] currentResources = null;
- private IModuleResourceDelta[] delta = null;
- private boolean hasDelta;
-
- /**
- * ModulePublishInfo constructor.
- *
- * @param moduleId a module id
- * @param name the module's name
- * @param moduleType the module type
- */
- public ModulePublishInfo(String moduleId, String name, IModuleType moduleType) {
- super();
-
- this.moduleId = moduleId;
- this.name = name;
- this.moduleType = moduleType;
- }
-
- /**
- * ModulePublishInfo constructor.
- *
- * @param memento a memento
- */
- public ModulePublishInfo(IMemento memento) {
- super();
-
- load(memento);
- }
-
- public String getModuleId() {
- return moduleId;
- }
-
- public String getName() {
- return name;
- }
-
- public IModuleType getModuleType() {
- return moduleType;
- }
-
- public IModuleResource[] getResources() {
- return resources;
- }
-
- public void setResources(IModuleResource[] res) {
- resources = res;
- }
-
- /**
- *
- */
- protected void load(IMemento memento) {
- Trace.trace(Trace.FINEST, "Loading module publish info for: " + memento);
-
- try {
- moduleId = memento.getString(MODULE_ID);
- name = memento.getString(NAME);
- String mt = memento.getString(MODULE_TYPE_ID);
- String mv = memento.getString(MODULE_TYPE_VERSION);
- if (mt != null && mt.length() > 0)
- moduleType = new ModuleType(mt, mv);
-
- resources = loadResource(memento);
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Could not load module publish info information: " + e.getMessage());
- }
- }
-
- protected IModuleResource[] loadResource(IMemento memento) {
- if (memento == null)
- return new IModuleResource[0];
-
- List list = new ArrayList(5);
-
- // load files
- IMemento[] children = memento.getChildren(FILE);
- if (children != null) {
- int size = children.length;
- for (int i = 0; i < size; i++) {
- String name2 = children[i].getString(NAME);
- IPath path = new Path(children[i].getString(PATH));
- long stamp = Long.parseLong(children[i].getString(STAMP));
- ModuleFile file = new ModuleFile(name2, path, stamp);
- list.add(file);
- }
- }
-
- // load folders
- children = memento.getChildren(FOLDER);
- if (children != null) {
- int size = children.length;
- for (int i = 0; i < size; i++) {
- String name2 = children[i].getString(NAME);
- IPath path = new Path(children[i].getString(PATH));
- ModuleFolder folder = new ModuleFolder(null, name2, path);
- folder.setMembers(loadResource(children[i]));
- list.add(folder);
- }
- }
-
- IModuleResource[] resources2 = new IModuleResource[list.size()];
- list.toArray(resources2);
- return resources2;
- }
-
- /**
- *
- */
- protected void save(IMemento memento) {
- try {
- memento.putString(MODULE_ID, moduleId);
- if (name != null)
- memento.putString(NAME, name);
-
- if (moduleType != null) {
- memento.putString(MODULE_TYPE_ID, moduleType.getId());
- memento.putString(MODULE_TYPE_VERSION, moduleType.getVersion());
- }
-
- saveResource(memento, resources);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not save module publish info", e);
- }
- }
-
- protected void saveResource(IMemento memento, IModuleResource[] resources2) {
- if (resources2 == null)
- return;
- int size = resources2.length;
- for (int i = 0; i < size; i++) {
- if (resources2[i] instanceof IModuleFile) {
- IModuleFile file = (IModuleFile) resources2[i];
- IMemento child = memento.createChild(FILE);
- child.putString(NAME, file.getName());
- child.putString(PATH, file.getModuleRelativePath().toPortableString());
- child.putString(STAMP, "" + file.getModificationStamp());
- } else {
- IModuleFolder folder = (IModuleFolder) resources2[i];
- IMemento child = memento.createChild(FOLDER);
- child.putString(NAME, folder.getName());
- child.putString(PATH, folder.getModuleRelativePath().toPortableString());
- IModuleResource[] resources3 = folder.members();
- saveResource(child, resources3);
- }
- }
- }
-
- /**
- * Start using the module cache.
- */
- protected void startCaching() {
- useCache = true;
- currentResources = null;
- }
-
- /**
- * Fill the module cache.
- *
- * @param module
- */
- private void fillCache(IModule[] module) {
- if (currentResources != null)
- return;
-
- try {
- long time = System.currentTimeMillis();
- int size = module.length;
- ModuleDelegate pm = (ModuleDelegate) module[size - 1].loadAdapter(ModuleDelegate.class, null);
- if (pm != null)
- currentResources = pm.members();
- else
- currentResources = new IModuleResource[0];
-
- delta = ServerPublishInfo.getDelta(resources, currentResources);
- hasDelta = (delta != null && delta.length > 0);
- Trace.trace(Trace.PERFORMANCE, "Filling publish cache for " + module[size-1].getName() + ": " + (System.currentTimeMillis() - time));
- } catch (CoreException ce) {
- Trace.trace(Trace.WARNING, "Couldn't fill publish cache for " + module);
- }
- if (delta == null)
- delta = new IModuleResourceDelta[0];
- }
-
- protected void clearCache() {
- useCache = false;
- currentResources = null;
- delta = null;
- }
-
- protected IModuleResource[] getModuleResources(IModule[] module) {
- if (module == null)
- return new IModuleResource[0];
-
- if (useCache) {
- fillCache(module);
- return currentResources;
- }
-
- long time = System.currentTimeMillis();
-
- int size = module.length;
- ModuleDelegate pm = (ModuleDelegate) module[size - 1].loadAdapter(ModuleDelegate.class, null);
- IModuleResource[] x = new IModuleResource[0];
- try {
- if (pm != null)
- x = pm.members();
- } catch (CoreException ce) {
- // ignore
- }
- Trace.trace(Trace.PERFORMANCE, "Time to get members() for " + module[size - 1].getName() + ": " + (System.currentTimeMillis() - time));
- return x;
- }
-
- protected IModuleResourceDelta[] getDelta(IModule[] module) {
- if (module == null)
- return new IModuleResourceDelta[0];
-
- if (useCache) {
- fillCache(module);
- return delta;
- }
-
- int size = module.length;
- ModuleDelegate pm = (ModuleDelegate) module[size - 1].loadAdapter(ModuleDelegate.class, null);
- IModuleResource[] resources2 = null;
- try {
- if (pm != null)
- resources2 = pm.members();
- } catch (CoreException ce) {
- // ignore
- }
- if (resources2 == null)
- resources2 = new IModuleResource[0];
- return ServerPublishInfo.getDelta(getResources(), resources2);
- }
-
- protected boolean hasDelta(IModule[] module) {
- if (module == null)
- return false;
-
- if (useCache) {
- fillCache(module);
- return hasDelta;
- }
-
- int size = module.length;
- ModuleDelegate pm = (ModuleDelegate) module[size - 1].loadAdapter(ModuleDelegate.class, null);
- IModuleResource[] resources2 = null;
- try {
- if (pm != null)
- resources2 = pm.members();
- } catch (CoreException ce) {
- // ignore
- }
- if (resources2 == null)
- resources2 = new IModuleResource[0];
- return ServerPublishInfo.hasDelta(getResources(), resources2);
- }
-
- public void fill(IModule[] module) {
- if (module == null)
- return;
-
- if (useCache) {
- fillCache(module);
- setResources(currentResources);
- return;
- }
-
- int size = module.length;
- ModuleDelegate pm = (ModuleDelegate) module[size - 1].loadAdapter(ModuleDelegate.class, null);
- try {
- if (pm != null)
- setResources(pm.members());
- } catch (CoreException ce) {
- // ignore
- }
- }
-
- public String toString() {
- return "ModulePublishInfo [" + moduleId + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleResourceDelta.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleResourceDelta.java
deleted file mode 100644
index d05bdc694..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleResourceDelta.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.server.core.model.IModuleResource;
-import org.eclipse.wst.server.core.model.IModuleResourceDelta;
-/**
- *
- */
-public class ModuleResourceDelta implements IModuleResourceDelta {
- protected IModuleResource resource;
- protected int kind;
-
- protected IModuleResourceDelta[] children;
-
- public ModuleResourceDelta(IModuleResource resource, int kind) {
- this.resource = resource;
- this.kind = kind;
- }
-
- public void setChildren(IModuleResourceDelta[] children) {
- this.children = children;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.model.IModuleResource#getModuleRelativePath()
- */
- public IPath getModuleRelativePath() {
- return resource.getModuleRelativePath();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.model.IModuleResourceDelta#getModuleResource()
- */
- public IModuleResource getModuleResource() {
- return resource;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.model.IModuleResourceDelta#getKind()
- */
- public int getKind() {
- return kind;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.model.IModuleResourceDelta#getAffectedChildren()
- */
- public IModuleResourceDelta[] getAffectedChildren() {
- return children;
- }
-
- public String toString() {
- return "ModuleResourceDelta [" + resource + ", " + kind + "]";
- }
-
- public void trace(String indent) {
- System.out.println(indent + toString());
- if (children != null) {
- int size = children.length;
- for (int i = 0; i < size; i++) {
- ((ModuleResourceDelta)children[i]).trace(indent + " ");
- }
- }
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleType.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleType.java
deleted file mode 100644
index c3f02817e..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleType.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.server.core.IModuleType;
-/**
- *
- */
-public class ModuleType implements IModuleType {
- protected String id;
- protected String version;
-
- // cached copy of all module types
- private static List moduleTypes;
-
- public ModuleType(String id, String version) {
- super();
- this.id = id;
- this.version = version;
- }
-
- public String getId() {
- return id;
- }
-
- public String getName() {
- ModuleKind mt = findModuleType(id);
- if (mt != null)
- return mt.getName();
- return Messages.moduleTypeUnknown;
- }
-
- public String getVersion() {
- return version;
- }
-
- /**
- * Returns an array of all known module types.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return the array of module types {@link IModuleType}
- */
- /*public static IModuleType[] getModuleTypes() {
- if (moduleTypes == null)
- loadModuleTypes();
-
- IModuleType[] mt = new IModuleType[moduleTypes.size()];
- moduleTypes.toArray(mt);
- return mt;
- }*/
-
- /**
- * Returns the module type with the given id, or <code>null</code>
- * if none. This convenience method searches the list of known
- * module types for the one a matching
- * module type id ({@link ModuleType#getId()}). The id may not be null.
- *
- * @param id the module type id
- * @return the module type, or <code>null</code> if there is no module type
- * with the given id
- */
- public static ModuleKind findModuleType(String id) {
- if (id == null)
- throw new IllegalArgumentException();
-
- if (moduleTypes == null)
- loadModuleTypes();
-
- Iterator iterator = moduleTypes.iterator();
- while (iterator.hasNext()) {
- ModuleKind moduleType = (ModuleKind) iterator.next();
- if (id.equals(moduleType.getId()))
- return moduleType;
- }
- return null;
- }
-
- /**
- * Load the module types.
- */
- private static synchronized void loadModuleTypes() {
- if (moduleTypes != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .moduleTypes extension point ->-");
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "moduleTypes");
-
- int size = cf.length;
- moduleTypes = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- ModuleKind moduleType = new ModuleKind(cf[i]);
- moduleTypes.add(moduleType);
- Trace.trace(Trace.EXTENSION_POINT, " Loaded moduleType: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load moduleType: " + cf[i].getAttribute("id"), t);
- }
- }
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .moduleTypes extension point -<-");
- }
-
- public String toString() {
- return "ModuleType[" + id + ", " + version + "]";
- }
-} \ No newline at end of file
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
deleted file mode 100644
index 5210d1a8a..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProgressUtil.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.*;
-/**
- * Progress Monitor utility.
- */
-public class ProgressUtil {
- /**
- * ProgressUtil constructor comment.
- */
- private ProgressUtil() {
- super();
- }
-
- /**
- * Return a valid progress monitor.
- *
- * @param monitor org.eclipse.core.runtime.IProgressMonitor
- * @return org.eclipse.core.runtime.IProgressMonitor
- */
- public static IProgressMonitor getMonitorFor(IProgressMonitor monitor) {
- if (monitor == null)
- return new NullProgressMonitor();
- return monitor;
- }
-
- /**
- * 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
- */
- public static IProgressMonitor getSubMonitorFor(IProgressMonitor monitor, int ticks) {
- if (monitor == null)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new SubProgressMonitor(monitor, ticks);
- }
-
- /**
- * Return a sub-progress monitor with the given amount on the
- * current progress monitor.
- *
- * @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)
- return new NullProgressMonitor();
- if (monitor instanceof NullProgressMonitor)
- return monitor;
- return new SubProgressMonitor(monitor, ticks, style);
- }
-} \ No newline at end of file
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
deleted file mode 100644
index d8310b43f..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ProjectProperties.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.server.core.IRuntime;
-/**
- * Helper class that stores preference information for the server tools.
- *
- * TODO: Currently this class always reads from disk. It should cache the file
- * and have a resource listener.
- */
-public class ProjectProperties {
- private static final String PREFERENCE_FOLDER = ".settings";
- private static final String PREFERENCE_FILE = "org.eclipse.wst.server.core.prefs";
- private static final String SERVER_PROJECT_PREF = "org.eclipse.wst.server.core.isServerProject";
-
- protected IProject project;
-
- protected boolean serverProject = false;
-
- /**
- * ProjectProperties constructor.
- *
- * @param project a project
- */
- public ProjectProperties(IProject project) {
- super();
- this.project = project;
- }
-
- /**
- * Load the preferences.
- */
- private void loadPreferences() {
- Trace.trace(Trace.FINEST, "Loading project preferences: " + project);
-
- if (!project.isAccessible())
- return;
-
- InputStream in = null;
- try {
- IFile file = project.getFolder(PREFERENCE_FOLDER).getFile(PREFERENCE_FILE);
- if (file == null || !file.isAccessible())
- return;
-
- in = file.getContents();
- Properties p = new Properties();
- p.load(in);
-
- String s = p.getProperty(SERVER_PROJECT_PREF);
- if (s != null && "true".equals(s))
- serverProject = true;
- else
- serverProject = false;
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not load preferences: " + e.getMessage());
- } finally {
- try {
- if (in != null)
- in.close();
- } catch (Exception e) {
- // ignore
- }
- }
- }
-
- private void savePreferences(IProgressMonitor monitor) throws CoreException {
- if (project == null || !project.isAccessible())
- return;
-
- IFolder folder = project.getFolder(PREFERENCE_FOLDER);
- if (!folder.exists())
- folder.create(true, true, monitor);
-
- IFile file = project.getFolder(PREFERENCE_FOLDER).getFile(PREFERENCE_FILE);
-
- if (file.exists() && file.isReadOnly()) {
- IStatus status = ResourcesPlugin.getWorkspace().validateEdit(new IFile[] { file }, null);
- if (status.getSeverity() == IStatus.ERROR)
- // didn't work or not under source control
- throw new CoreException(status);
- }
-
- Properties p = new Properties();
- p.put("eclipse.preferences.version", "1");
- if (serverProject)
- p.put(SERVER_PROJECT_PREF, "true");
- else
- p.put(SERVER_PROJECT_PREF, "false");
-
- InputStream in = null;
- try {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- p.store(out, null);
-
- in = new ByteArrayInputStream(out.toByteArray());
-
- if (file.exists())
- file.setContents(in, true, true, monitor);
- else
- file.create(in, true, monitor);
- } catch (Exception e) {
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, "", e));
- } finally {
- try {
- in.close();
- } catch (Exception e) {
- // ignore
- }
- }
- }
-
- /**
- * Returns the current runtime target type for the given project.
- *
- * @return the runtime target
- */
- public IRuntime getRuntimeTarget() {
- return null;
- }
-
- /**
- * Returns <code>true</code> if this project can contain server artifacts, and
- * <code>false</code> otherwise.
- *
- * @return <code>true</code> if this project can contain server artifacts, and
- * <code>false</code> otherwise
- */
- public boolean isServerProject() {
- loadPreferences();
- return serverProject;
- }
-
- /**
- * Sets whether the project can contain server resources.
- *
- * @param b <code>true</code> to allow the project to contain server
- * resources, or <code>false</code> to not allow the project to contain
- * servers
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there is a problem setting the server project
- */
- public void setServerProject(boolean b, IProgressMonitor monitor) throws CoreException {
- loadPreferences();
- serverProject = b;
- savePreferences(monitor);
- }
-
- public String toString() {
- return "ProjectProperties[" + project + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/PublishTask.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/PublishTask.java
deleted file mode 100644
index ec9fbd5af..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/PublishTask.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.model.*;
-/**
- *
- */
-public class PublishTask implements IPublishTask {
- private IConfigurationElement element;
- private PublishTaskDelegate delegate;
-
- /**
- * PublishTask constructor comment.
- *
- * @param element a configuration element
- */
- public PublishTask(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /*
- * @see
- */
- public String getId() {
- return element.getAttribute("id");
- }
-
- /*
- * @see
- */
- protected String[] getTypeIds() {
- try {
- return ServerPlugin.tokenize(element.getAttribute("typeIds"), ",");
- } catch (Exception e) {
- return null;
- }
- }
-
- /*
- * @see
- */
- public boolean supportsType(String id) {
- return ServerPlugin.supportsType(getTypeIds(), id);
- }
-
- /*
- * @see IPublishTask#getDelegate()
- */
- public PublishTaskDelegate getDelegate() {
- if (delegate == null) {
- try {
- delegate = (PublishTaskDelegate) element.createExecutableExtension("class");
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, "Could not create delegate" + toString() + ": " + t.getMessage());
- }
- }
- return delegate;
- }
-
- /*
- * @see
- */
- public PublishOperation[] getTasks(IServer server, List modules) {
- try {
- Trace.trace(Trace.FINEST, "Task.init " + this);
- PublishOperation[] po = getDelegate().getTasks(server, modules);
- if (po != null)
- return po;
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
- }
- return new PublishOperation[0];
- }
-
- /*
- * @see
- */
- public PublishOperation[] getTasks(IServer server, int kind, List modules, List kindList) {
- try {
- Trace.trace(Trace.FINEST, "Task.init " + this);
- PublishOperation[] po = getDelegate().getTasks(server, kind, modules, kindList);
- if (po != null)
- return po;
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
- }
- return new PublishOperation[0];
- }
-
- /**
- * Return a string representation of this object.
- *
- * @return java.lang.String
- */
- public String toString() {
- return "PublishTask[" + getId() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RestartServerJob.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RestartServerJob.java
deleted file mode 100644
index 97faf0f79..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RestartServerJob.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.IServer.IOperationListener;
-import org.eclipse.wst.server.core.internal.ServerSchedulingRule;
-/**
- * A job for restarting a server.
- */
-public class RestartServerJob extends ChainedJob {
- protected String launchMode;
- protected boolean isRestartCompleted = false;
- protected IStatus resultStatus;
-
- public RestartServerJob(IServer server, String launchMode) {
- super(NLS.bind(Messages.jobRestartingServer, server.getName()), server);
- this.launchMode = launchMode;
- setRule(new ServerSchedulingRule(server));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.internal.jobs.InternalJob#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus run(IProgressMonitor monitor) {
- IOperationListener listener2 = new IOperationListener() {
- public void done(IStatus result) {
- isRestartCompleted = true;
- resultStatus = result;
- }
- };
- getServer().restart(launchMode, listener2);
-
- // block util the restart is completed
- while (!isRestartCompleted) {
- if (monitor.isCanceled())
- return Status.CANCEL_STATUS;
-
- try {
- Thread.sleep(250);
- } catch (InterruptedException e) {
- // Do nothing.
- }
- }
-
- if (resultStatus != null)
- return resultStatus;
-
- return Status.OK_STATUS;
- }
-} \ No newline at end of file
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
deleted file mode 100644
index 60d2321d6..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.model.InternalInitializer;
-import org.eclipse.wst.server.core.model.RuntimeDelegate;
-/**
- *
- */
-public class Runtime extends Base implements IRuntime {
- protected static final String PROP_RUNTIME_TYPE_ID = "runtime-type-id";
- protected static final String PROP_LOCATION = "location";
- protected static final String PROP_TEST_ENVIRONMENT = "test-environment";
- protected static final String PROP_STUB = "stub";
-
- 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());
- }
-
- /**
- * @see IRuntime#getRuntimeType()
- */
- public IRuntimeType getRuntimeType() {
- return runtimeType;
- }
-
- /**
- * @see IRuntime#validate(IProgressMonitor)
- */
- public IStatus validate(IProgressMonitor monitor) {
- try {
- return getDelegate(monitor).validate();
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate validate() " + toString(), e);
- return null;
- }
- }
-
- protected RuntimeDelegate getDelegate(IProgressMonitor monitor) {
- if (delegate != null)
- return delegate;
-
- synchronized (this) {
- if (delegate == null) {
- try {
- long time = System.currentTimeMillis();
- delegate = ((RuntimeType) runtimeType).createRuntimeDelegate();
- InternalInitializer.initializeRuntimeDelegate(delegate, this, monitor);
- //delegate.initialize(this);
- Trace.trace(Trace.PERFORMANCE, "Runtime.getDelegate(): <" + (System.currentTimeMillis() - time) + "> " + getRuntimeType().getId());
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, "Could not create delegate " + toString(), t);
- }
- }
- }
- return delegate;
- }
-
- public void dispose() {
- if (delegate != null) {
- delegate.dispose();
- delegate = null;
- }
- }
-
- /**
- * @see IRuntime#createWorkingCopy()
- */
- public IRuntimeWorkingCopy createWorkingCopy() {
- return new RuntimeWorkingCopy(this);
- }
-
- /**
- * @see IRuntime#isWorkingCopy()
- */
- public boolean isWorkingCopy() {
- return false;
- }
-
- /**
- * @see IRuntime#getLocation()
- */
- public IPath getLocation() {
- String temp = getAttribute(PROP_LOCATION, (String)null);
- if (temp == null)
- return null;
- return new Path(temp);
- }
-
- protected void deleteFromMetadata() {
- ResourceManager.getInstance().removeRuntime(this);
- }
-
- protected void saveToMetadata(IProgressMonitor monitor) {
- super.saveToMetadata(monitor);
- ResourceManager.getInstance().addRuntime(this);
- }
-
- protected String getXMLRoot() {
- return "runtime";
- }
-
- public boolean isTestEnvironment() {
- return getAttribute(PROP_TEST_ENVIRONMENT, false);
- }
-
- /**
- * @see IRuntime#isStub()
- */
- public boolean isStub() {
- return getAttribute(PROP_STUB, false);
- }
-
- protected void setInternal(RuntimeWorkingCopy wc) {
- map = wc.map;
- runtimeType = wc.runtimeType;
- file = wc.file;
- delegate = wc.delegate;
- }
-
- protected void loadState(IMemento memento) {
- resolve();
- }
-
- protected void resolve() {
- String runtimeTypeId = getAttribute(PROP_RUNTIME_TYPE_ID, (String) null);
- if (runtimeTypeId != null)
- runtimeType = ServerCore.findRuntimeType(runtimeTypeId);
- else
- runtimeType = null;
- }
-
- protected void saveState(IMemento memento) {
- if (runtimeType != null)
- memento.putString(PROP_RUNTIME_TYPE_ID, runtimeType.getId());
- }
-
- /**
- * @see Object#equals(Object)
- */
- public boolean equals(Object obj) {
- if (!(obj instanceof Runtime))
- return false;
-
- Runtime runtime = (Runtime) obj;
- return runtime.getId().equals(getId());
- }
-
- /**
- * @see IRuntime#getAdapter(Class)
- */
- public Object getAdapter(Class adapter) {
- if (delegate != null) {
- if (adapter.isInstance(delegate))
- return delegate;
- }
- return Platform.getAdapterManager().getAdapter(this, adapter);
- }
-
- /**
- * @see IRuntime#loadAdapter(Class, IProgressMonitor)
- */
- public Object loadAdapter(Class adapter, IProgressMonitor monitor) {
- getDelegate(monitor);
- if (adapter.isInstance(delegate))
- return delegate;
-
- return Platform.getAdapterManager().loadAdapter(this, adapter.getName());
- }
-
- /**
- * @see Object#toString()
- */
- public String toString() {
- return "Runtime[" + getId() + ", " + getName() + ", " + getLocation() + ", " + getRuntimeType() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeLocator.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeLocator.java
deleted file mode 100644
index 0f83e7890..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeLocator.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
-import org.eclipse.wst.server.core.model.RuntimeLocatorDelegate;
-/**
- *
- */
-public class RuntimeLocator implements IRuntimeLocator {
- private IConfigurationElement element;
- private RuntimeLocatorDelegate delegate;
-
- public RuntimeLocator(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- protected IConfigurationElement getElement() {
- return element;
- }
-
- /*
- * @see IRuntimeLocator#getId()
- */
- public String getId() {
- return element.getAttribute("id");
- }
-
- /*
- * @see IRuntimeLocator
- */
- protected String[] getTypeIds() {
- try {
- return ServerPlugin.tokenize(element.getAttribute("typeIds"), ",");
- } catch (Exception e) {
- return null;
- }
- }
-
- /*
- * @see IRuntimeLocator
- */
- public boolean supportsType(String id) {
- return ServerPlugin.supportsType(getTypeIds(), id);
- }
-
- protected RuntimeLocatorDelegate getDelegate() {
- if (delegate == null) {
- try {
- delegate = (RuntimeLocatorDelegate) element.createExecutableExtension("class");
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, "Could not create delegate " + toString() + ": " + t.getMessage());
- }
- }
- return delegate;
- }
-
- /*
- * @see IRuntimeLocator#searchForRuntimes()
- */
- public void searchForRuntimes(IPath path, final IRuntimeSearchListener found, IProgressMonitor monitor) {
- try {
- //getDelegate().searchForRuntimes(path, found, monitor);
- getDelegate().searchForRuntimes(path, new RuntimeLocatorDelegate.IRuntimeSearchListener() {
- public void runtimeFound(IRuntimeWorkingCopy runtime) {
- found.runtimeFound(runtime);
- }
- }, monitor);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
- }
- }
-
- public String toString() {
- return "RuntimeLocator[" + getId() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeType.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeType.java
deleted file mode 100644
index 9cc66719d..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeType.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.model.RuntimeDelegate;
-/**
- *
- */
-public class RuntimeType implements IRuntimeType {
- private IConfigurationElement element;
- private List moduleTypes;
-
- public RuntimeType(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /**
- *
- * @return the id
- */
- public String getId() {
- try {
- return element.getAttribute("id");
- } catch (Exception e) {
- return null;
- }
- }
-
- /**
- *
- * @return the name
- */
- public String getName() {
- try {
- return element.getAttribute("name");
- } catch (Exception e) {
- return null;
- }
- }
-
- /**
- *
- * @return the description
- */
- public String getDescription() {
- try {
- return element.getAttribute("description");
- } catch (Exception e) {
- return null;
- }
- }
-
- public String getVendor() {
- try {
- String vendor = element.getAttribute("vendor");
- if (vendor != null)
- return vendor;
- } catch (Exception e) {
- // ignore
- }
- return Messages.defaultVendor;
- }
-
- public String getVersion() {
- try {
- String version = element.getAttribute("version");
- if (version != null)
- return version;
- } catch (Exception e) {
- // ignore
- }
- return Messages.defaultVersion;
- }
-
- protected RuntimeDelegate createRuntimeDelegate() throws CoreException {
- try {
- return (RuntimeDelegate) element.createExecutableExtension("class");
- } catch (Exception e) {
- return null;
- }
- }
-
- /**
- * Return the supported module types.
- *
- * @return an array of module types
- */
- public IModuleType[] getModuleTypes() {
- try {
- if (moduleTypes == null)
- moduleTypes = ServerPlugin.getModuleTypes(element.getChildren("moduleType"));
-
- IModuleType[] mt = new IModuleType[moduleTypes.size()];
- moduleTypes.toArray(mt);
- return mt;
- } catch (Exception e) {
- return new IModuleType[0];
- }
- }
-
- public boolean canCreate() {
- try {
- String a = element.getAttribute("class");
- return a != null && a.length() > 0;
- } catch (Exception e) {
- return false;
- }
- }
-
- public IRuntimeWorkingCopy createRuntime(String id, IProgressMonitor monitor) {
- if (element == null)
- return null;
-
- RuntimeWorkingCopy rwc = new RuntimeWorkingCopy(null, id, this);
- rwc.setDefaults(monitor);
- return rwc;
- }
-
- public void dispose() {
- element = null;
- }
-
- public String getNamespace() {
- if (element == null)
- return null;
- return element.getDeclaringExtension().getContributor().getName();
- }
-
- public String toString() {
- return "RuntimeType[" + getId() + ", " + getName() + "]";
- }
-} \ No newline at end of file
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
deleted file mode 100644
index 5aa34b0b1..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RuntimeWorkingCopy.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.beans.PropertyChangeListener;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IRuntimeType;
-import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
-import org.eclipse.wst.server.core.model.InternalInitializer;
-import org.eclipse.wst.server.core.model.RuntimeDelegate;
-/**
- *
- */
-public class RuntimeWorkingCopy extends Runtime implements IRuntimeWorkingCopy {
- protected String PROP_ID_SET = "id-set";
- protected Runtime runtime;
- protected WorkingCopyHelper wch;
-
- protected RuntimeDelegate workingCopyDelegate;
-
- /**
- * Create a new runtime working copy from existing runtime.
- *
- * @param runtime
- */
- public RuntimeWorkingCopy(Runtime runtime) {
- super(runtime.getFile());
- this.runtime = runtime;
-
- runtimeType = runtime.getRuntimeType();
-
- map = new HashMap(runtime.map);
- wch = new WorkingCopyHelper(this);
- }
-
- /**
- * 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);
- wch.setDirty(true);
-
- if (id == null || id.length() == 0) {
- id = ServerPlugin.generateId();
- map.put(PROP_ID, id);
- } else
- setAttribute(PROP_ID_SET, true);
-
- // throw CoreException if the id already exists
- }
-
- /**
- * @see IRuntime#isWorkingCopy()
- */
- public boolean isWorkingCopy() {
- return true;
- }
-
- /**
- * @see IRuntime#createWorkingCopy()
- */
- public IRuntimeWorkingCopy createWorkingCopy() {
- return this;
- }
-
- public void setAttribute(String attributeName, int value) {
- wch.setAttribute(attributeName, value);
- }
-
- public void setAttribute(String attributeName, boolean value) {
- wch.setAttribute(attributeName, value);
- }
-
- public void setAttribute(String attributeName, String value) {
- wch.setAttribute(attributeName, value);
- }
-
- public void setAttribute(String attributeName, List value) {
- wch.setAttribute(attributeName, value);
- }
-
- public void setAttribute(String attributeName, Map value) {
- wch.setAttribute(attributeName, value);
- }
-
- /**
- * @see IRuntimeWorkingCopy#setName(String)
- */
- public void setName(String name) {
- wch.setName(name);
- boolean set = getAttribute(PROP_ID_SET, false);
- if (runtime == null && !set)
- setAttribute(PROP_ID, name);
- }
-
- 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);
- }
-
- 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);
- else
- 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()));
-
- if (!force && getOriginal() != null)
- wch.validateTimestamp(((Runtime) getOriginal()).getTimestamp());
-
- int timestamp = getTimestamp();
- map.put(PROP_TIMESTAMP, Integer.toString(timestamp+1));
-
- IRuntime origRuntime = runtime;
- if (runtime == null)
- runtime = new Runtime(file);
-
- String oldId = getId();
- String name = getName();
- boolean set = getAttribute(PROP_ID_SET, false);
- if (!oldId.equals(name) && !set) {
- setAttribute(PROP_ID, name);
- } else
- oldId = null;
-
- runtime.setInternal(this);
- runtime.saveToMetadata(monitor);
- wch.setDirty(false);
-
- if (oldId != null)
- updateRuntimeReferences(oldId, name, origRuntime);
-
- return runtime;
- }
-
- protected void updateRuntimeReferences(final String oldId, final String newId, final IRuntime origRuntime) {
- // TODO fix me
- /*class UpdateRuntimeReferencesJob extends Job {
- public UpdateRuntimeReferencesJob() {
- super(NLS.bind(Messages.savingTask, newId));
- }
-
- public IStatus run(IProgressMonitor monitor) {
- // fix .runtime files
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- if (projects != null) {
- int size = projects.length;
- for (int i = 0; i < size; i++) {
- ProjectProperties props = (ProjectProperties) ServerCore.getProjectProperties(projects[i]);
- if (oldId.equals(props.getRuntimeTargetId())) {
- try {
- props.setRuntimeTargetId(newId, monitor);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error setting runtime target", e);
- }
- }
- }
- }
-
- // save servers
- if (runtime != null) {
- ResourceManager rm = ResourceManager.getInstance();
- IServer[] servers = rm.getServers();
- if (servers != null) {
- int size = servers.length;
- for (int i = 0; i < size; i++) {
- if (oldId.equals(((Server)servers[i]).getRuntimeId())) {
- try {
- ServerWorkingCopy wc = (ServerWorkingCopy) servers[i].createWorkingCopy();
- wc.setRuntimeId(newId);
- wc.save(false, monitor);
- } catch (Exception e) {
- // ignore
- }
- }
- }
- }
- }
-
- return new Status(IStatus.OK, ServerPlugin.PLUGIN_ID, 0, "", null);
- }
- }
- UpdateRuntimeReferencesJob job = new UpdateRuntimeReferencesJob();
- job.schedule();*/
- }
-
- protected RuntimeDelegate getWorkingCopyDelegate(IProgressMonitor monitor) {
- if (workingCopyDelegate != null)
- return workingCopyDelegate;
-
- synchronized (this) {
- if (workingCopyDelegate == null) {
- try {
- long time = System.currentTimeMillis();
- workingCopyDelegate = ((RuntimeType) runtimeType).createRuntimeDelegate();
- InternalInitializer.initializeRuntimeDelegate(workingCopyDelegate, this, monitor);
- Trace.trace(Trace.PERFORMANCE, "RuntimeWorkingCopy.getWorkingCopyDelegate(): <" + (System.currentTimeMillis() - time) + "> " + getRuntimeType().getId());
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not create delegate " + toString(), e);
- }
- }
- }
- return workingCopyDelegate;
- }
-
- public void dispose() {
- super.dispose();
- if (workingCopyDelegate != null)
- workingCopyDelegate.dispose();
- }
-
- /**
- * Add a property change listener to this server.
- *
- * @param listener java.beans.PropertyChangeListener
- */
- public void addPropertyChangeListener(PropertyChangeListener listener) {
- if (listener == null)
- throw new IllegalArgumentException("Listener cannot be null");
- wch.addPropertyChangeListener(listener);
- }
-
- /**
- * Remove a property change listener from this server.
- *
- * @param listener java.beans.PropertyChangeListener
- */
- public void removePropertyChangeListener(PropertyChangeListener listener) {
- if (listener == null)
- throw new IllegalArgumentException("Listener cannot be null");
- wch.removePropertyChangeListener(listener);
- }
-
- /**
- * Fire a property change event.
- *
- * @param propertyName a property name
- * @param oldValue the old value
- * @param newValue the new value
- */
- public void firePropertyChangeEvent(String propertyName, Object oldValue, Object newValue) {
- wch.firePropertyChangeEvent(propertyName, oldValue, newValue);
- }
-
- /**
- * Set the defaults.
- *
- * @param monitor
- */
- protected void setDefaults(IProgressMonitor monitor) {
- try {
- getWorkingCopyDelegate(monitor).setDefaults(monitor);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate setDefaults() " + toString(), e);
- }
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerListener.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerListener.java
deleted file mode 100644
index c1e48d1ec..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerListener.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.util.ServerLifecycleAdapter;
-/**
- * Listens for messages from the servers. This class keeps
- * track of server instances current state and any clients
- * that are waiting to run on the server.
- */
-public class ServerListener extends ServerLifecycleAdapter implements IServerListener {
- // static instance
- protected static ServerListener listener;
-
- /**
- * ServerListener constructor comment.
- */
- private ServerListener() {
- super();
- }
-
- /**
- * Get the static instance.
- *
- * @return org.eclipse.wst.server.core.internal.plugin.ServerListener
- */
- public static ServerListener getInstance() {
- if (listener == null)
- listener = new ServerListener();
- return listener;
- }
-
- /**
- * Called when the server configuration's sync state changes.
- *
- * @param server org.eclipse.wst.server.model.IServer
- */
- public void configurationSyncStateChange(IServer server) {
- // do nothing
- }
-
- /**
- * A new resource has been added.
- *
- * @param server org.eclipse.wst.server.core.IServer
- */
- public void serverAdded(IServer server) {
- server.addServerListener(this);
- }
-
- /**
- * A existing resource has been removed.
- *
- * @param server org.eclipse.wst.server.core.IServer
- */
- public void serverRemoved(IServer server) {
- server.removeServerListener(this);
- }
-
- public void serverChanged(ServerEvent event) {
- // do nothing
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitor.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitor.java
deleted file mode 100644
index 23a009a7b..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitor.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerPort;
-/**
- *
- */
-public class ServerMonitor implements IServerMonitor {
- private IConfigurationElement element;
- private ServerMonitorDelegate delegate;
-
- /**
- * Monitor constructor comment.
- *
- * @param element a configuration element
- */
- public ServerMonitor(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /**
- * Returns the id of this default server.
- *
- * @return java.lang.String
- */
- public String getId() {
- return element.getAttribute("id");
- }
-
- /*
- * @see IMonitor#getDescription()
- */
- public String getDescription() {
- return element.getAttribute("description");
- }
-
- /*
- * @see IMonitor#getLabel()
- */
- public String getName() {
- String label = element.getAttribute("name");
- if (label == null)
- return "n/a";
- return label;
- }
-
- /*
- * @see IMonitor#getDelegate()
- */
- public ServerMonitorDelegate getDelegate() {
- if (delegate == null) {
- try {
- delegate = (ServerMonitorDelegate) element.createExecutableExtension("class");
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, "Could not create delegate" + toString() + ": " + t.getMessage());
- }
- }
- return delegate;
- }
-
- /**
- * Start monitoring the given port, and return the port number to
- * tunnel requests through.
- *
- * @param server a server
- * @param port a port
- * @param monitorPort the port used for monitoring
- * @return the port used for monitoring
- * @throws CoreException if anything goes wrong
- */
- public int startMonitoring(IServer server, ServerPort port, int monitorPort) throws CoreException {
- try {
- return getDelegate().startMonitoring(server, port, monitorPort);
- } catch (CoreException ce) {
- throw ce;
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
- return -1;
- }
- }
-
- /**
- * Stop monitoring the given port.
- *
- * @param server a server
- * @param port a port
- */
- public void stopMonitoring(IServer server, ServerPort port) {
- try {
- getDelegate().stopMonitoring(server, port);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
- }
- }
-
- /**
- * Return a string representation of this object.
- *
- * @return java.lang.String
- */
- public String toString() {
- return "Monitor[" + getId() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitorDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitorDelegate.java
deleted file mode 100644
index 0cc3d6742..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitorDelegate.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerPort;
-/**
- * An interface to a TCP/IP monitor.
- */
-public abstract class ServerMonitorDelegate {
- /**
- * Start monitoring the given port, and return the port number to
- * tunnel requests through. The monitorPort is the new port to use, or
- * -1 to pick a random port.
- *
- * @param server a server
- * @param port a port
- * @param monitorPort the port used for monitoring
- * @return the port used for monitoring
- * @throws CoreException if anything goes wrong
- */
- public abstract int startMonitoring(IServer server, ServerPort port, int monitorPort) throws CoreException;
-
- /**
- * Stop monitoring the given port.
- *
- * @param server a server
- * @param port a port
- */
- public abstract void stopMonitoring(IServer server, ServerPort port);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitorManager.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitorManager.java
deleted file mode 100644
index 996b78e98..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerMonitorManager.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.server.core.*;
-/**
- *
- */
-public class ServerMonitorManager implements IServerMonitorManager {
- private static final String MONITOR_DATA_FILE = "monitors.xml";
-
- protected static ServerMonitorManager instance;
-
- protected List ports = new ArrayList();
- protected ServerMonitor monitor;
-
- class MonitoredPort implements IMonitoredServerPort {
- protected IServer server;
- protected ServerPort port;
- protected int newPort = -1;
- protected String[] content;
- public boolean started;
-
- public MonitoredPort(IServer server, ServerPort port, int newPort, String[] content) {
- this.server = server;
- this.port = port;
- this.newPort = newPort;
- this.content = content;
- }
-
- public MonitoredPort(IMemento memento, IProgressMonitor monitor) {
- load(memento, monitor);
- }
-
- public IServer getServer() {
- return server;
- }
-
- public ServerPort getServerPort() {
- return port;
- }
-
- public int getMonitorPort() {
- return newPort;
- }
-
- public void setMonitorPort(int p) {
- newPort = p;
- }
-
- public String[] getContentTypes() {
- if (content == null)
- return new String[0];
- return content;
- }
-
- public boolean isStarted() {
- return started;
- }
-
- protected void setStarted(boolean s) {
- started = s;
- }
-
- public boolean equals(Object obj) {
- if (!(obj instanceof MonitoredPort))
- return false;
- MonitoredPort mp = (MonitoredPort) obj;
- if (!mp.server.equals(server))
- return false;
- if (!mp.port.equals(port))
- return false;
- if (newPort != mp.newPort)
- return false;
- if (content == null && mp.content != null)
- return false;
- if (content != null && mp.content == null)
- return false;
- if (content != null) {
- int size = content.length;
- if (size != mp.content.length)
- return false;
- for (int i = 0; i < size; i++)
- if (!content[i].equals(mp.content[i]))
- return false;
- }
- return true;
- }
-
- protected boolean canSave() {
- return (port.getId() != null);
- }
-
- protected void save(IMemento memento) {
- memento.putString("serverId", server.getId());
- if (newPort != -1)
- memento.putString("port", newPort + "");
- memento.putString("portId", port.getId());
- memento.putBoolean("started", started);
-
- if (content != null) {
- StringBuffer sb = new StringBuffer();
- int size = content.length;
- for (int i = 0; i < size; i++) {
- if (i > 0)
- sb.append(",");
- sb.append(content[i]);
- }
- memento.putString("contentTypes", sb.toString());
- }
- }
-
- protected void load(IMemento memento, IProgressMonitor monitor2) {
- String serverId = memento.getString("serverId");
- server = null;
- if (serverId != null)
- server = ServerCore.findServer(serverId);
- if (server == null)
- throw new RuntimeException("Server could not be found: " + serverId + " " + server);
- String newPortStr = memento.getString("port");
- if (newPortStr != null && newPortStr.length() > 0)
- newPort = Integer.parseInt(newPortStr);
- String portId = memento.getString("portId");
-
- ServerPort[] ports2 = server.getServerPorts(monitor2);
- if (ports2 != null) {
- int size = ports2.length;
- for (int i = 0; port == null && i < size; i++) {
- ServerPort sp = ports2[i];
- if (sp.getId() != null && sp.getId().equals(portId))
- port = sp;
- }
- }
- if (port == null)
- throw new RuntimeException("Could not relocate port: " + serverId + " " + server + " " + portId);
-
- String s = memento.getString("contentTypes");
- if (s != null)
- content = ServerPlugin.tokenize(s, ",");
-
- Boolean b = memento.getBoolean("started");
- if (b != null && b.booleanValue()) {
- try {
- newPort = monitor.startMonitoring(server, port, newPort);
- started = true;
- } catch (CoreException e) {
- Trace.trace(Trace.WARNING, "Could not restart server monitor", e);
- }
- }
- }
- }
-
- public ServerMonitorManager() {
- IServerMonitor[] monitors = ServerPlugin.getServerMonitors();
- if (monitors != null && monitors.length > 0)
- monitor = (ServerMonitor) monitors[0];
-
- instance = this;
- loadMonitors();
- }
-
- public static ServerMonitorManager getInstance() {
- if (instance == null)
- new ServerMonitorManager();
- return instance;
- }
-
- public static void shutdown() {
- if (instance == null)
- return;
- instance.saveMonitors();
- }
-
- /**
- * Returns the monitor that is currently being used.
- *
- * @return the current server monitor
- */
- public IServerMonitor getCurrentServerMonitor() {
- return monitor;
- }
-
- /**
- * Switch to use a different server monitor. All existing monitors will be
- * removed from the current monitor and added to the new monitor.
- *
- * @param newMonitor
- * @throws org.eclipse.core.runtime.CoreException
- */
- public void setServerMonitor(IServerMonitor newMonitor) throws CoreException {
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, "Not implemented yet", null));
- }
-
- /**
- * Returns the list of ports that are currently being monitored.
- *
- * @param server a server
- * @return a possibly empty array of monitored server ports
- */
- public IMonitoredServerPort[] getMonitoredPorts(IServer server) {
- List list = new ArrayList();
- Iterator iterator = ports.iterator();
- while (iterator.hasNext()) {
- MonitoredPort mp = (MonitoredPort) iterator.next();
- if (mp.server.equals(server))
- list.add(mp);
- }
-
- IMonitoredServerPort[] msp = new IMonitoredServerPort[list.size()];
- list.toArray(msp);
- return msp;
- }
-
- /**
- * Starts monitoring the given port, and returns the new port # to use that will
- * route to the monitored port.
- *
- * @param server a server
- * @param port a port
- * @param monitorPort the port used for monitoring
- * @param content the content
- * @return a monitored server port
- */
- public IMonitoredServerPort createMonitor(IServer server, ServerPort port, int monitorPort, String[] content) {
- if (port == null || monitor == null)
- return null;
-
- MonitoredPort mp = new MonitoredPort(server, port, monitorPort, content);
- ports.add(mp);
- return mp;
- }
-
- /**
- * Stop monitoring the given port. Throws a CoreException if there was a problem
- * stopping the monitoring
- *
- * @param port
- */
- public void removeMonitor(IMonitoredServerPort port) {
- if (port == null)
- return;
-
- try {
- ports.remove(port);
- if (port.isStarted())
- monitor.stopMonitoring(port.getServer(), port.getServerPort());
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not remove monitor", e);
- }
- }
-
- /**
- * Start the monitor. If the msp port is -1, it will be updated to the port that is actually in use.
- *
- * @param msp
- * @throws CoreException
- */
- public void startMonitor(IMonitoredServerPort msp) throws CoreException {
- if (msp == null || msp.isStarted())
- return;
-
- MonitoredPort port = (MonitoredPort) msp;
- port.setMonitorPort(monitor.startMonitoring(msp.getServer(), msp.getServerPort(), msp.getMonitorPort()));
- port.setStarted(true);
- }
-
- /**
- * Stop monitoring.
- *
- * @param msp
- */
- public void stopMonitor(IMonitoredServerPort msp) {
- if (msp == null || !msp.isStarted())
- return;
- MonitoredPort port = (MonitoredPort) msp;
- monitor.stopMonitoring(msp.getServer(), msp.getServerPort());
- port.setStarted(false);
- }
-
- /**
- * Returns the mapped port to use when making requests to the given server
- * and port number. Returns the existing port number if the port is not being
- * monitored.
- *
- * @param server a server
- * @param port a port number
- * @param content the content
- * @return the port used for monitoring
- */
- public int getMonitoredPort(IServer server, int port, String content) {
- try {
- Iterator iterator = ports.iterator();
- while (iterator.hasNext()) {
- MonitoredPort mp = (MonitoredPort) iterator.next();
- if (mp.isStarted() && mp.server.equals(server) && mp.port.getPort() == port) {
- String[] contentTypes = mp.getContentTypes();
- boolean found = false;
- if (content != null && contentTypes != null && contentTypes.length > 0) {
- int size = contentTypes.length;
- for (int i = 0; i < size; i++)
- if (content.equals(contentTypes[i]))
- found = true;
- } else
- found = true;
- if (found && mp.newPort != -1)
- return mp.newPort;
- }
- }
- } catch (Exception e) {
- // ignore
- }
- return port;
- }
-
- protected void saveMonitors() {
- String filename = ServerPlugin.getInstance().getStateLocation().append(MONITOR_DATA_FILE).toOSString();
- try {
- XMLMemento memento = XMLMemento.createWriteRoot("monitors");
-
- Iterator iterator = ports.iterator();
- while (iterator.hasNext()) {
- MonitoredPort mp = (MonitoredPort) iterator.next();
- if (mp.canSave()) {
- IMemento child = memento.createChild("monitor");
- mp.save(child);
- }
- }
-
- memento.saveToFile(filename);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error saving monitor info", e);
- }
- }
-
- protected void loadMonitors() {
- Trace.trace(Trace.FINEST, "Loading monitor info");
- String filename = ServerPlugin.getInstance().getStateLocation().append(MONITOR_DATA_FILE).toOSString();
-
- try {
- IMemento memento = XMLMemento.loadMemento(filename);
-
- IMemento[] children = memento.getChildren("monitor");
- int size = children.length;
-
- for (int i = 0; i < size; i++) {
- try {
- MonitoredPort mp = new MonitoredPort(children[i], null);
- ports.add(mp);
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Could not load monitor: " + e);
- }
- }
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Could not load monitor info: " + e.getMessage());
- }
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerNotificationManager.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerNotificationManager.java
deleted file mode 100644
index e2456cd06..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerNotificationManager.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.server.core.IServerListener;
-import org.eclipse.wst.server.core.ServerEvent;
-/**
- * Notification manager for server.
- */
-public class ServerNotificationManager {
- private List listenerList = new ArrayList();
-
- /**
- * For masking event on all changes.
- */
- public static final int ALL_EVENTS = 0xFFFF;
-
- private class ListenerEntry {
- private IServerListener listener;
- private int eventMask;
-
- private ListenerEntry(IServerListener curListener, int curEventMask) {
- listener = curListener;
- eventMask = curEventMask;
- }
-
- protected IServerListener getListener() {
- return listener;
- }
-
- protected int getEventMask() {
- return eventMask;
- }
- }
-
- /**
- * Create a new notification manager.
- */
- public ServerNotificationManager() {
- super();
- }
-
- /**
- * Add listener for all events.
- *
- * @param curListener
- */
- public void addListener(IServerListener curListener) {
- addListener(curListener, ALL_EVENTS);
- }
-
- /**
- * Add listener for the events specified by the mask.
- *
- * @param curListener
- * @param eventMask
- */
- public void addListener(IServerListener curListener, int eventMask) {
- Trace.trace(Trace.FINEST, "->- Adding server listener to notification manager: " + curListener + " " + eventMask + " ->-");
- if (curListener == null) {
- return;
- }
-
- synchronized (listenerList) {
- listenerList.add(new ListenerEntry(curListener, eventMask));
- }
- }
-
- protected void broadcastChange(ServerEvent event) {
- Trace.trace(Trace.FINEST, "->- Broadcasting server event: " + event + " ->-");
- if (event == null) {
- return;
- }
- int eventKind = event.getKind();
- Trace.trace(Trace.FINEST, " Server event kind: " + eventKind + " ->-");
-
- // only notify listeners that listen to module event
- int size;
- ListenerEntry[] listeners;
- synchronized (listenerList) {
- size = listenerList.size();
- listeners = (ListenerEntry[]) listenerList.toArray(new ListenerEntry[size]);
- }
- for (int i = 0; i < size; i++) {
- ListenerEntry curEntry = listeners[i];
- int mask = curEntry.getEventMask();
-
- // check if the type of the event matches the mask, e.g. server or module change
- boolean isTypeMatch = ((mask & eventKind & ServerEvent.SERVER_CHANGE) != 0)
- || ((mask & eventKind & ServerEvent.MODULE_CHANGE) != 0);
- // check the kind of change
- boolean isKindMatch = (mask & eventKind ^ ServerEvent.SERVER_CHANGE ^ ServerEvent.MODULE_CHANGE) != 0;
-
- if (isTypeMatch && isKindMatch) {
- Trace.trace(Trace.FINEST, "->- Firing server event to listener: " + curEntry.getListener() + " ->-");
- try {
- Trace.trace(Trace.LISTENERS, " Firing server event to listener: " + curEntry.getListener());
- curEntry.getListener().serverChanged(event);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, " Error firing server event: " + curEntry.getListener(), e);
- }
- Trace.trace(Trace.LISTENERS, "-<- Done Firing server event -<-");
- }
- }
- Trace.trace(Trace.FINEST, "-<- Done broadcasting server event -<-");
- }
-
- /**
- * Returns true if the listener list is not empty; otherwise, returns false.
- *
- * @return true if the listener list is not empty; otherwise, returns false
- */
- protected boolean hasListenerEntries() {
- return listenerList.size() == 0;
- }
-
- /**
- * Remove a listener from notification.
- *
- * @param curListener
- */
- public void removeListener(IServerListener curListener) {
- Trace.trace(Trace.FINEST, "->- Removing server listener from notification manager: " + curListener + " ->-");
- if (curListener == null) {
- return;
- }
- ListenerEntry matchedListenerEntry = null;
- Iterator listenerIter = listenerList.iterator();
- while (matchedListenerEntry == null && listenerIter.hasNext()) {
- ListenerEntry curEntry = (ListenerEntry)listenerIter.next();
- if (curListener.equals(curEntry.getListener())) {
- matchedListenerEntry = curEntry;
- }
- }
- if (matchedListenerEntry != null) {
- synchronized (listenerList) {
- listenerList.remove(matchedListenerEntry);
- }
- }
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
deleted file mode 100644
index acab99ca4..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
+++ /dev/null
@@ -1,1016 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.io.*;
-import java.util.*;
-import java.text.DateFormat;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.IModuleArtifact;
-import org.eclipse.wst.server.core.IRuntimeType;
-import org.eclipse.wst.server.core.ServerCore;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleEvent;
-import org.osgi.framework.BundleListener;
-/**
- * The main server plugin class.
- */
-public class ServerPlugin extends Plugin {
- public static final String PROJECT_PREF_FILE = ".serverPreference";
-
- private static final String SHUTDOWN_JOB_FAMILY = "org.eclipse.wst.server.core.family";
- //public static final String REGISTRY_JOB_FAMILY = "org.eclipse.wst.server.registry.family";
-
- protected static final DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
- protected static int num = 0;
-
- // cached copy of all launchable adapters
- private static List launchableAdapters;
-
- // cached copy of all launchable clients
- private static List clients;
-
- // cached copy of all module factories
- private static List moduleFactories;
-
- // singleton instance of this class
- private static ServerPlugin singleton;
-
- // cached copy of all publish tasks
- private static List publishTasks;
-
- // cached copy of all server monitors
- private static List monitors;
-
- // cached copy of all runtime locators
- private static List runtimeLocators;
-
- // cached copy of all module artifact adapters
- private static List moduleArtifactAdapters;
-
- // cached copy of all installable servers
- private static List installableServers;
-
- // cached copy of all installable runtimes
- private static List installableRuntimes;
-
- // registry listener
- private static IRegistryChangeListener registryListener;
-
- public static BundleContext bundleContext;
-
- // bundle listener
- private BundleListener bundleListener;
-
- private static final String TEMP_DATA_FILE = "tmp-data.xml";
-
- class TempDir {
- String path;
- int age;
- }
-
- // temp directories - String key to TempDir
- protected Map tempDirHash;
-
- /**
- * server core plugin id
- */
- public static final String PLUGIN_ID = "org.eclipse.wst.server.core";
-
- /**
- * Create the ServerPlugin.
- */
- public ServerPlugin() {
- super();
- singleton = this;
- }
-
- /**
- * Returns the singleton instance of this plugin.
- *
- * @return org.eclipse.wst.server.core.internal.plugin.ServerPlugin
- */
- public static ServerPlugin getInstance() {
- return singleton;
- }
-
- /**
- * Returns a temporary directory that the requestor can use
- * throughout it's lifecycle. This is primary to be used by
- * server instances for working directories, instance specific
- * files, etc.
- *
- * <p>As long as the same key is used to call this method on
- * each use of the workbench, this method directory will return
- * the same directory. If the directory is not requested over a
- * period of time, the directory may be deleted and a new one
- * will be assigned on the next request. For this reason, a
- * server instance should request the temp directory on startup
- * if it wants to store files there. In all cases, the instance
- * should have a backup plan anyway, as this directory may be
- * deleted accidentally.</p>
- *
- * @param key
- * @return java.io.File
- */
- public IPath getTempDirectory(String key) {
- if (key == null)
- return null;
-
- // first, look through hash of current directories
- IPath statePath = ServerPlugin.getInstance().getStateLocation();
- try {
- TempDir dir = (TempDir) tempDirHash.get(key);
- if (dir != null) {
- dir.age = 0;
- return statePath.append(dir.path);
- }
- } catch (Exception e) {
- // ignore
- }
-
- // otherwise, create a new directory
-
- // find first free directory
- String path = null;
- File dir = null;
- int count = 0;
- while (dir == null || dir.exists()) {
- path = "tmp" + count;
- dir = statePath.append(path).toFile();
- count ++;
- }
-
- dir.mkdirs();
-
- TempDir d = new TempDir();
- d.path = path;
- tempDirHash.put(key, d);
- saveTempDirInfo();
- return statePath.append(path);
- }
-
- /**
- * Remove a temp directory.
- * @param key
- */
- public void removeTempDirectory(String key) {
- if (key == null)
- return;
-
- IPath statePath = ServerPlugin.getInstance().getStateLocation();
- try {
- TempDir dir = (TempDir) tempDirHash.get(key);
- if (dir != null) {
- tempDirHash.remove(key);
- saveTempDirInfo();
- deleteDirectory(statePath.append(dir.path).toFile(), null);
- }
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Could not remove temp directory", e);
- }
- }
-
- /**
- * Load the temporary directory information.
- */
- private void loadTempDirInfo() {
- Trace.trace(Trace.FINEST, "Loading temporary directory information");
- IPath statePath = ServerPlugin.getInstance().getStateLocation();
- String filename = statePath.append(TEMP_DATA_FILE).toOSString();
-
- tempDirHash = new HashMap();
- try {
- IMemento memento = XMLMemento.loadMemento(filename);
-
- IMemento[] children = memento.getChildren("temp-directory");
- int size = children.length;
- for (int i = 0; i < size; i++) {
- String key = children[i].getString("key");
-
- TempDir d = new TempDir();
- d.path = children[i].getString("path");
- d.age = children[i].getInteger("age").intValue();
- d.age++;
-
- tempDirHash.put(key, d);
- }
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Could not load temporary directory information: " + e.getMessage());
- }
- }
-
- /**
- * Convenience method for logging.
- *
- * @param status org.eclipse.core.runtime.IStatus
- */
- public static void log(IStatus status) {
- getInstance().getLog().log(status);
- }
-
- /**
- * Save the temporary directory information.
- */
- private void saveTempDirInfo() {
- // save remaining directories
- IPath statePath = ServerPlugin.getInstance().getStateLocation();
- String filename = statePath.append(TEMP_DATA_FILE).toOSString();
-
- try {
- XMLMemento memento = XMLMemento.createWriteRoot("temp-directories");
-
- Iterator iterator = tempDirHash.keySet().iterator();
- while (iterator.hasNext()) {
- String key = (String) iterator.next();
- TempDir d = (TempDir) tempDirHash.get(key);
-
- if (d.age < 5) {
- IMemento child = memento.createChild("temp-directory");
- child.putString("key", key);
- child.putString("path", d.path);
- child.putInteger("age", d.age);
- } else
- deleteDirectory(statePath.append(d.path).toFile(), null);
- }
-
- memento.saveToFile(filename);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not save temporary directory information", e);
- }
- }
-
- protected void initializeDefaultPluginPreferences() {
- ServerPreferences.getInstance().setDefaults();
- }
-
- /**
- * @see Plugin#start(org.osgi.framework.BundleContext)
- */
- public void start(BundleContext context) throws Exception {
- Trace.trace(Trace.CONFIG, "----->----- Server Core plugin startup ----->-----");
- super.start(context);
- bundleContext = context;
-
- initializeDefaultPluginPreferences();
-
- // load temp directory information
- loadTempDirInfo();
-
- bundleListener = new BundleListener() {
- public void bundleChanged(BundleEvent event) {
- String bundleId = event.getBundle().getSymbolicName();
- //Trace.trace(Trace.INFO, event.getType() + " " + bundleId);
- // TODO should also look for UNINSTALLED and UNRESOLVED
- if (BundleEvent.STOPPED == event.getType() && ResourceManager.getInstance().isActiveBundle(bundleId))
- stopBundle(bundleId);
- }
- };
- context.addBundleListener(bundleListener);
- }
-
- protected void stopBundle(final String bundleId) {
- class StopJob extends Job {
- public StopJob() {
- super("Disposing servers");
- }
-
- public boolean belongsTo(Object family) {
- return SHUTDOWN_JOB_FAMILY.equals(family);
- }
-
- public IStatus run(IProgressMonitor monitor2) {
- ResourceManager.getInstance().shutdownBundle(bundleId);
- return Status.OK_STATUS;
- }
- }
-
- StopJob job = new StopJob();
- job.setUser(false);
- job.schedule();
- }
-
- /**
- * @see Plugin#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- Trace.trace(Trace.CONFIG, "-----<----- Server Core plugin shutdown -----<-----");
- super.stop(context);
-
- if (registryListener != null)
- Platform.getExtensionRegistry().removeRegistryChangeListener(registryListener);
-
- ResourceManager.shutdown();
- ServerMonitorManager.shutdown();
-
- try {
- Platform.getJobManager().join(SHUTDOWN_JOB_FAMILY, null);
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Error waiting for shutdown job", e);
- }
- context.removeBundleListener(bundleListener);
- }
-
- public static String[] tokenize(String param, String delim) {
- if (param == null)
- return new String[0];
-
- List list = new ArrayList();
-
- StringTokenizer st = new StringTokenizer(param, delim);
- while (st.hasMoreTokens()) {
- String str = st.nextToken();
- if (str != null && str.length() > 0)
- list.add(str.trim());
- }
-
- String[] s = new String[list.size()];
- list.toArray(s);
- return s;
- }
-
- protected static List getModuleTypes(IConfigurationElement[] elements) {
- List list = new ArrayList();
- if (elements == null)
- return list;
-
- int size = elements.length;
- for (int i = 0; i < size; i++) {
- String[] types = tokenize(elements[i].getAttribute("types"), ",");
- String[] versions = tokenize(elements[i].getAttribute("versions"), ",");
- int sizeT = types.length;
- int sizeV = versions.length;
- for (int j = 0; j < sizeT; j++) {
- for (int k = 0; k < sizeV; k++) {
- ModuleType module = new ModuleType(types[j], versions[k]);
- list.add(module);
- }
- }
- }
- return list;
- }
-
- public static String generateId() {
- String s = df.format(new Date()).toString() + num++;
- s = s.replace(' ', '_');
- s = s.replace(':', '_');
- s = s.replace('/', '_');
- s = s.replace('\\', '_');
- return s;
- }
-
- /**
- * Returns true if ids contains id.
- *
- * @param ids
- * @param id
- * @return true if the id is supported
- */
- public static boolean supportsType(String[] ids, String id) {
- if (id == null || id.length() == 0)
- return false;
-
- if (ids == null)
- return true;
-
- int size = ids.length;
- for (int i = 0; i < size; i++) {
- if (ids[i].endsWith("*")) {
- if (id.length() >= ids[i].length() && id.startsWith(ids[i].substring(0, ids[i].length() - 1)))
- return true;
- } else if (id.equals(ids[i]))
- return true;
- }
- return false;
- }
-
- /**
- * Recursively delete a directory.
- *
- * @param dir java.io.File
- * @param monitor a progress monitor, or <code>null</code> if no progress
- * reporting is required
- */
- public static void deleteDirectory(File dir, IProgressMonitor monitor) {
- try {
- if (!dir.exists() || !dir.isDirectory())
- return;
-
- File[] files = dir.listFiles();
- int size = files.length;
- monitor = ProgressUtil.getMonitorFor(monitor);
- monitor.beginTask(NLS.bind(Messages.deletingTask, new String[] {dir.getAbsolutePath()}), size * 10);
-
- // cycle through files
- for (int i = 0; i < size; i++) {
- File current = files[i];
- if (current.isFile()) {
- current.delete();
- monitor.worked(10);
- } else if (current.isDirectory()) {
- monitor.subTask(NLS.bind(Messages.deletingTask, new String[] {current.getAbsolutePath()}));
- deleteDirectory(current, ProgressUtil.getSubMonitorFor(monitor, 10));
- }
- }
- dir.delete();
- monitor.done();
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error deleting directory " + dir.getAbsolutePath(), e);
- }
- }
-
- /**
- * Returns an array of all known launchable adapters.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return a possibly-empty array of launchable adapters {@link ILaunchableAdapter}
- */
- public static ILaunchableAdapter[] getLaunchableAdapters() {
- if (launchableAdapters == null)
- loadLaunchableAdapters();
- ILaunchableAdapter[] la = new ILaunchableAdapter[launchableAdapters.size()];
- launchableAdapters.toArray(la);
- return la;
- }
-
- /**
- * Returns an array of all known client instances.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return a possibly-empty array of client instances {@link IClient}
- */
- public static IClient[] getClients() {
- if (clients == null)
- loadClients();
- IClient[] c = new IClient[clients.size()];
- clients.toArray(c);
- return c;
- }
-
- /**
- * Load the launchable adapters extension point.
- */
- private static synchronized void loadLaunchableAdapters() {
- if (launchableAdapters != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .launchableAdapters extension point ->-");
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "launchableAdapters");
-
- int size = cf.length;
- List list = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- list.add(new LaunchableAdapter(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded launchableAdapter: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load launchableAdapter: " + cf[i].getAttribute("id"), t);
- }
- }
- launchableAdapters = list;
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .launchableAdapters extension point -<-");
- }
-
- /**
- * Load the client extension point.
- */
- private static synchronized void loadClients() {
- if (clients != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .clients extension point ->-");
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "clients");
-
- int size = cf.length;
- List list = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- list.add(new Client(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded clients: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load clients: " + cf[i].getAttribute("id"), t);
- }
- }
-
- // sort by index to put lower numbers first in order
- size = list.size();
- for (int i = 0; i < size-1; i++) {
- for (int j = i+1; j < size; j++) {
- Client a = (Client) list.get(i);
- Client b = (Client) list.get(j);
- if (a.getPriority() < b.getPriority()) {
- list.set(i, b);
- list.set(j, a);
- }
- }
- }
- clients = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .clients extension point -<-");
- }
-
- /**
- * Returns an array of all known publish tasks.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return a possibly-empty array of publish tasks instances {@link IPublishTask}
- */
- public static IPublishTask[] getPublishTasks() {
- if (publishTasks == null)
- loadPublishTasks();
- IPublishTask[] st = new IPublishTask[publishTasks.size()];
- publishTasks.toArray(st);
- return st;
- }
-
- /**
- * Load the publish task extension point.
- */
- private static synchronized void loadPublishTasks() {
- if (publishTasks != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .publishTasks extension point ->-");
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "publishTasks");
-
- int size = cf.length;
- List list = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- list.add(new PublishTask(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded publishTask: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load publishTask: " + cf[i].getAttribute("id"), t);
- }
- }
- publishTasks = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .publishTasks extension point -<-");
- }
-
- /**
- * Returns an array of all known module module factories.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return the array of module factories {@link ModuleFactory}
- */
- public static ModuleFactory[] getModuleFactories() {
- if (moduleFactories == null)
- loadModuleFactories();
-
- ModuleFactory[] mf = new ModuleFactory[moduleFactories.size()];
- moduleFactories.toArray(mf);
- return mf;
- }
-
- /**
- * Returns the module factory with the given id, or <code>null</code>
- * if none. This convenience method searches the list of known
- * module factories ({@link #getModuleFactories()}) for the one a matching
- * module factory id ({@link ModuleFactory#getId()}). The id may not be null.
- *
- * @param id the module factory id
- * @return the module factory, or <code>null</code> if there is no module factory
- * with the given id
- */
- public static ModuleFactory findModuleFactory(String id) {
- if (id == null)
- throw new IllegalArgumentException();
-
- if (moduleFactories == null)
- loadModuleFactories();
-
- Iterator iterator = moduleFactories.iterator();
- while (iterator.hasNext()) {
- ModuleFactory factory = (ModuleFactory) iterator.next();
- if (id.equals(factory.getId()))
- return factory;
- }
- return null;
- }
-
- /**
- * Load the module factories extension point.
- */
- private static synchronized void loadModuleFactories() {
- if (moduleFactories != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .moduleFactories extension point ->-");
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "moduleFactories");
-
- int size = cf.length;
- List list = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- list.add(new ModuleFactory(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded moduleFactories: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load moduleFactories: " + cf[i].getAttribute("id"), t);
- }
- }
-
- size = list.size();
- for (int i = 0; i < size - 1; i++) {
- for (int j = i + 1; j < size; j++) {
- ModuleFactory a = (ModuleFactory) list.get(i);
- ModuleFactory b = (ModuleFactory) list.get(j);
- if (a.getOrder() > b.getOrder()) {
- list.set(i, b);
- list.set(j, a);
- }
- }
- }
- moduleFactories = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .moduleFactories extension point -<-");
- }
-
- /**
- * Returns an array of all known server monitor instances.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return a possibly-empty array of server monitor instances {@link IServerMonitor}
- */
- public static IServerMonitor[] getServerMonitors() {
- if (monitors == null)
- loadServerMonitors();
- IServerMonitor[] sm = new IServerMonitor[monitors.size()];
- monitors.toArray(sm);
- return sm;
- }
-
- /**
- * Load the server monitor extension point.
- */
- private static synchronized void loadServerMonitors() {
- if (monitors != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .serverMonitors extension point ->-");
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "internalServerMonitors");
-
- int size = cf.length;
- List list = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- list.add(new ServerMonitor(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded serverMonitor: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load serverMonitor: " + cf[i].getAttribute("id"), t);
- }
- }
- monitors = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .serverMonitors extension point -<-");
- }
-
- /**
- * Returns an array of all known runtime locator instances.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return a possibly-empty array of runtime locator instances {@link IRuntimeLocator}
- */
- public static IRuntimeLocator[] getRuntimeLocators() {
- if (runtimeLocators == null)
- loadRuntimeLocators();
- IRuntimeLocator[] rl = new IRuntimeLocator[runtimeLocators.size()];
- runtimeLocators.toArray(rl);
- return rl;
- }
-
- /**
- * Load the runtime locators.
- */
- private static synchronized void loadRuntimeLocators() {
- if (runtimeLocators != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .runtimeLocators extension point ->-");
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "runtimeLocators");
-
- int size = cf.length;
- List list = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- list.add(new RuntimeLocator(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded runtimeLocator: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load runtimeLocator: " + cf[i].getAttribute("id"), t);
- }
- }
- runtimeLocators = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .runtimeLocators extension point -<-");
- }
-
- /**
- * Returns an array of all module artifact adapters.
- *
- * @return a possibly empty array of module artifact adapters
- */
- protected static ModuleArtifactAdapter[] getModuleArtifactAdapters() {
- if (moduleArtifactAdapters == null)
- loadModuleArtifactAdapters();
-
- ModuleArtifactAdapter[] moa = new ModuleArtifactAdapter[moduleArtifactAdapters.size()];
- moduleArtifactAdapters.toArray(moa);
- return moa;
- }
-
- /**
- * Load the module artifact adapters extension point.
- */
- private static synchronized void loadModuleArtifactAdapters() {
- if (moduleArtifactAdapters != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .moduleArtifactAdapters extension point ->-");
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "moduleArtifactAdapters");
-
- int size = cf.length;
- List list = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- list.add(new ModuleArtifactAdapter(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded moduleArtifactAdapter: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load moduleArtifactAdapter: " + cf[i].getAttribute("id"), t);
- }
- }
-
- // sort by index to put lower numbers first in order
- size = list.size();
- for (int i = 0; i < size-1; i++) {
- for (int j = i+1; j < size; j++) {
- ModuleArtifactAdapter a = (ModuleArtifactAdapter) list.get(i);
- ModuleArtifactAdapter b = (ModuleArtifactAdapter) list.get(j);
- if (a.getPriority() < b.getPriority()) {
- list.set(i, b);
- list.set(j, a);
- }
- }
- }
- moduleArtifactAdapters = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .moduleArtifactAdapters extension point -<-");
- }
-
- /**
- * Returns <code>true</code> if a module artifact may be available for the given object,
- * and <code>false</code> otherwise.
- *
- * @param obj an object
- * @return <code>true</code> if there is a module artifact adapter
- */
- public static boolean hasModuleArtifact(Object obj) {
- Trace.trace(Trace.FINEST, "ServerPlugin.hasModuleArtifact() " + obj);
- ModuleArtifactAdapter[] adapters = getModuleArtifactAdapters();
- if (adapters != null) {
- int size = adapters.length;
- for (int i = 0; i < size; i++) {
- try {
- if (adapters[i].isEnabled(obj)) {
- Trace.trace(Trace.FINER, "Run On Server for " + obj + " is enabled by " + adapters[i].getId());
- return true;
- }
- } catch (CoreException ce) {
- Trace.trace(Trace.WARNING, "Could not use moduleArtifactAdapter", ce);
- }
- }
- }
-
- return false;
- }
-
- /**
- * Returns a module artifact if one can be found without loading plugins.
- *
- * @param obj
- * @return a module artifact, or null
- */
- public static IModuleArtifact getModuleArtifact(Object obj) {
- Trace.trace(Trace.FINEST, "ServerPlugin.getModuleArtifact() " + obj);
- ModuleArtifactAdapter[] adapters = getModuleArtifactAdapters();
- if (adapters != null) {
- int size = adapters.length;
- for (int i = 0; i < size; i++) {
- try {
- if (adapters[i].isEnabled(obj)) {
- IModuleArtifact ma = adapters[i].getModuleArtifact(obj);
- if (ma != null)
- return ma;
- /*if (Platform.getAdapterManager().hasAdapter(obj, MODULE_ARTIFACT_CLASS)) {
- return (IModuleArtifact) Platform.getAdapterManager().getAdapter(obj, MODULE_ARTIFACT_CLASS);
- }*/
- }
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Could not use moduleArtifactAdapter " + adapters[i], e);
- }
- }
- }
-
- return null;
- }
-
- /**
- * Returns a module artifact if possible, loading any plugins required.
- *
- * @param obj
- * @return a module artifact, or null
- */
- public static IModuleArtifact loadModuleArtifact(Object obj) {
- Trace.trace(Trace.FINEST, "ServerPlugin.loadModuleArtifact() " + obj);
- ModuleArtifactAdapter[] adapters = getModuleArtifactAdapters();
- if (adapters != null) {
- int size = adapters.length;
- for (int i = 0; i < size; i++) {
- try {
- if (adapters[i].isEnabled(obj)) {
- IModuleArtifact ma = adapters[i].getModuleArtifact(obj);
- if (ma != null)
- return ma;
- /*if (Platform.getAdapterManager().hasAdapter(obj, MODULE_ARTIFACT_CLASS)) {
- return (IModuleArtifact) Platform.getAdapterManager().loadAdapter(obj, MODULE_ARTIFACT_CLASS);
- }*/
- }
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Could not use moduleArtifactAdapter " + adapters[i], e);
- }
- }
- }
-
- return null;
- }
-
- /**
- * Returns an array of all known installable servers.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return the array of installable servers {@link IInstallableServer}
- */
- public static IInstallableServer[] getInstallableServers() {
- if (installableServers == null)
- loadInstallableServers();
-
- List availableServers = new ArrayList();
- Iterator iterator = installableServers.iterator();
- IRuntimeType[] runtimeTypes = ServerCore.getRuntimeTypes();
- int size = runtimeTypes.length;
- while (iterator.hasNext()) {
- IInstallableServer server = (IInstallableServer) iterator.next();
- boolean found = false;
- for (int i = 0; i < size; i++) {
- if (server.getId().equals(runtimeTypes[i].getId()))
- found = true;
- }
- if (!found)
- availableServers.add(server);
- }
-
- IInstallableServer[] is = new IInstallableServer[availableServers.size()];
- availableServers.toArray(is);
- return is;
- }
-
- /**
- * Returns an array of all known installable runtimes.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return the array of installable runtimes {@link IInstallableRuntime}
- */
- public static IInstallableRuntime[] getInstallableRuntimes() {
- //if (installableRuntimes == null)
- loadInstallableRuntimes();
-
- IInstallableRuntime[] ir = new IInstallableRuntime[installableRuntimes.size()];
- installableRuntimes.toArray(ir);
- return ir;
- }
-
- /**
- * Returns the installable runtime for the given runtime type, or <code>null</code>
- * if none exists.
- *
- * @param runtimeTypeId a runtime type id
- * @return the installable runtime for the given runtime type, or <code>null</code>
- * if none exists {@link IInstallableRuntime}
- */
- public static IInstallableRuntime findInstallableRuntime(String runtimeTypeId) {
- if (runtimeTypeId == null)
- throw new IllegalArgumentException();
-
- //if (installableRuntimes == null)
- loadInstallableRuntimes();
-
- Iterator iterator = installableRuntimes.iterator();
- IRuntimeType[] runtimeTypes = ServerCore.getRuntimeTypes();
- int size = runtimeTypes.length;
- while (iterator.hasNext()) {
- IInstallableRuntime runtime = (IInstallableRuntime) iterator.next();
- for (int i = 0; i < size; i++) {
- if (runtime.getId().equals(runtimeTypeId))
- return runtime;
- }
- }
-
- return null;
- }
-
- /**
- * Load the installable servers.
- */
- private static synchronized void loadInstallableServers() {
- if (installableServers != null)
- return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .installableServers extension point ->-");
-
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "installableServers");
-
- int size = cf.length;
- List list = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- list.add(new InstallableServer(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded installableServer: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load installableServer: " + cf[i].getAttribute("id"), t);
- }
- }
- installableServers = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .installableServers extension point -<-");
- }
-
- /**
- * Load the installable runtimes.
- */
- private static synchronized void loadInstallableRuntimes() {
- //if (installableRuntimes != null)
- // return;
- Trace.trace(Trace.EXTENSION_POINT, "->- Loading .installableRuntimes extension point ->-");
-
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "installableRuntimes");
-
- int size = cf.length;
- List list = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- try {
- list.add(new InstallableRuntime(cf[i]));
- Trace.trace(Trace.EXTENSION_POINT, " Loaded installableRuntime: " + cf[i].getAttribute("id"));
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, " Could not load installableRuntime: " + cf[i].getAttribute("id"), t);
- }
- }
- installableRuntimes = list;
-
- Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .installableRuntimes extension point -<-");
- }
-
- public static void setRegistryListener(IRegistryChangeListener listener) {
- registryListener = listener;
- }
-
- /**
- * Returns the preference information for the project. The project may not
- * be null.
- *
- * @param project a project
- * @return the properties of the project
- */
- public static ProjectProperties getProjectProperties(IProject project) {
- if (project == null)
- throw new IllegalArgumentException();
- return new ProjectProperties(project);
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPreferences.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPreferences.java
deleted file mode 100644
index ba8e1e1cc..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPreferences.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.*;
-/**
- * Helper class that stores preference information for server tools.
- */
-public class ServerPreferences {
- private static final String PREF_AUTO_RESTART = "auto-restart";
- private static final String PREF_AUTO_PUBLISH = "auto-publish";
- private static final String PREF_MODULE_START_TIMEOUT = "module-start-timeout";
-
- private static final String PREF_AUTO_PUBLISH_LOCAL = "auto-publish-local";
- private static final String PREF_AUTO_PUBLISH_LOCAL_TIME = "auto-publish-local-time";
- private static final String PREF_AUTO_PUBLISH_REMOTE = "auto-publish-remote";
- private static final String PREF_AUTO_PUBLISH_REMOTE_TIME = "auto-publish-remote-time";
-
- private static final String PREF_MACHINE_SPEED = "machine-speed";
-
- private static final String PREF_SYNC_ON_STARTUP = "sync-on-startup";
-
- private Preferences preferences;
-
- protected static ServerPreferences instance;
-
- /**
- * ServerPreference constructor comment.
- */
- private ServerPreferences() {
- super();
- preferences = ServerPlugin.getInstance().getPluginPreferences();
- }
-
- /**
- * Returns the static instance.
- *
- * @return the static instance
- */
- public static ServerPreferences getInstance() {
- if (instance == null)
- instance = new ServerPreferences();
- return instance;
- }
-
- /**
- * Returns whether servers will be automatically restarted when
- * required.
- *
- * @return boolean
- */
- public boolean isAutoRestarting() {
- return preferences.getBoolean(PREF_AUTO_RESTART);
- }
-
- /**
- * Returns whether servers will be automatically restarted when
- * required.
- *
- * @return boolean
- */
- public boolean isDefaultAutoRestarting() {
- return false;
- }
-
- /**
- * Returns whether publishing should occur before starting the
- * server.
- *
- * @return boolean
- */
- public boolean isAutoPublishing() {
- return preferences.getBoolean(PREF_AUTO_PUBLISH);
- }
-
- /**
- * Returns whether publishing should occur before starting the
- * server.
- *
- * @return boolean
- */
- public boolean isDefaultAutoPublishing() {
- return true;
- }
-
- /**
- * Set whether servers will be automatically restarted when
- * they need a restart.
- *
- * @param value
- */
- public void setAutoRestarting(boolean value) {
- preferences.setValue(PREF_AUTO_RESTART, value);
- ServerPlugin.getInstance().savePluginPreferences();
- }
-
- /**
- * Set whether publishing should happen before the server starts.
- *
- * @param value
- */
- public void setAutoPublishing(boolean value) {
- preferences.setValue(PREF_AUTO_PUBLISH, value);
- ServerPlugin.getInstance().savePluginPreferences();
- }
-
- /**
- * Returns the module start timeout.
- *
- * @return the module start timeout
- */
- public int getModuleStartTimeout() {
- return preferences.getInt(PREF_MODULE_START_TIMEOUT);
- }
-
- /**
- * Return the relative machine speed index, from 1 to 9. A value of -1 means
- * no timeouts, and a value of 5 is an average machine. 1-4 are slower
- * machines and 6-9 are faster machines.
- *
- * @return the relative speed
- */
- public int getMachineSpeed() {
- return preferences.getInt(PREF_MACHINE_SPEED);
- }
-
- /**
- * Return the default relative machine speed index, 5.
- *
- * @return the default speed index
- */
- public int getDefaultMachineSpeed() {
- return 5;
- }
-
- /**
- * Sets the relative machine speed index, from 1 to 9. A value of -1 means
- * no timeouts, and a value of 5 is an average machine. 1-4 are slower
- * machines and 6-9 are faster machines.
- *
- * @param speed the relative speed
- */
- public void setMachineSpeed(int speed) {
- preferences.setValue(PREF_MACHINE_SPEED, speed);
- ServerPlugin.getInstance().savePluginPreferences();
- }
-
- /**
- * Return the sync on startup value.
- *
- * @return the sync on startup value
- */
- public boolean isSyncOnStartup() {
- return preferences.getBoolean(PREF_SYNC_ON_STARTUP);
- }
-
- /**
- * Return the default sync on startup value.
- *
- * @return the default sync on startup value
- */
- public boolean getDefaultSyncOnStartup() {
- return false;
- }
-
- /**
- * Sets the sync on startup value.
- *
- * @param sync the sync on startup value
- */
- public void setSyncOnStartup(boolean sync) {
- preferences.setValue(PREF_SYNC_ON_STARTUP, sync);
- }
-
- /**
- * Returns the default setting for local auto-publishing.
- *
- * @return int
- */
- public boolean getDefaultAutoPublishLocal() {
- return false;
- }
-
- /**
- * Returns the setting for local auto-publishing.
- *
- * @return int
- */
- public boolean getAutoPublishLocal() {
- return preferences.getBoolean(PREF_AUTO_PUBLISH_LOCAL);
- }
-
- /**
- * Sets the value for local auto-publishing.
- *
- * @param auto
- */
- public void setAutoPublishLocal(boolean auto) {
- preferences.setValue(PREF_AUTO_PUBLISH_LOCAL, auto);
- ServerPlugin.getInstance().savePluginPreferences();
- }
-
- /**
- * Returns the default setting for local auto-publishing.
- *
- * @return int
- */
- public int getDefaultAutoPublishLocalTime() {
- return 15;
- }
-
- /**
- * Returns the setting for local auto-publishing.
- *
- * @return int
- */
- public int getAutoPublishLocalTime() {
- return preferences.getInt(PREF_AUTO_PUBLISH_LOCAL_TIME);
- }
-
- /**
- * Sets the value for local auto-publishing.
- *
- * @param auto
- */
- public void setAutoPublishLocalTime(int auto) {
- preferences.setValue(PREF_AUTO_PUBLISH_LOCAL_TIME, auto);
- ServerPlugin.getInstance().savePluginPreferences();
- }
-
- /**
- * Returns the default setting for remote auto-publishing.
- *
- * @return int
- */
- public boolean getDefaultAutoPublishRemote() {
- return false;
- }
-
- /**
- * Returns the setting for remote auto-publishing.
- *
- * @return int
- */
- public boolean getAutoPublishRemote() {
- return preferences.getBoolean(PREF_AUTO_PUBLISH_REMOTE);
- }
-
- /**
- * Sets the value for remote auto-publishing.
- *
- * @param auto
- */
- public void setAutoPublishRemote(boolean auto) {
- preferences.setValue(PREF_AUTO_PUBLISH_REMOTE, auto);
- ServerPlugin.getInstance().savePluginPreferences();
- }
-
- /**
- * Returns the default setting for remote auto-publishing.
- *
- * @return int
- */
- public int getDefaultAutoPublishRemoteTime() {
- return 60;
- }
-
- /**
- * Returns the setting for remote auto-publishing.
- *
- * @return int
- */
- public int getAutoPublishRemoteTime() {
- return preferences.getInt(PREF_AUTO_PUBLISH_REMOTE_TIME);
- }
-
- /**
- * Sets the value for remote auto-publishing.
- *
- * @param auto
- */
- public void setAutoPublishRemoteTime(int auto) {
- preferences.setValue(PREF_AUTO_PUBLISH_REMOTE_TIME, auto);
- ServerPlugin.getInstance().savePluginPreferences();
- }
-
- /**
- * Set the default values.
- */
- public void setDefaults() {
- preferences.setDefault(PREF_AUTO_PUBLISH, isDefaultAutoPublishing());
- preferences.setDefault(PREF_AUTO_RESTART, isDefaultAutoRestarting());
- preferences.setDefault(PREF_MACHINE_SPEED, getDefaultMachineSpeed());
-
- preferences.setDefault(PREF_AUTO_PUBLISH_LOCAL, getDefaultAutoPublishLocal());
- preferences.setDefault(PREF_AUTO_PUBLISH_LOCAL_TIME, getDefaultAutoPublishLocalTime());
- preferences.setDefault(PREF_AUTO_PUBLISH_REMOTE, getDefaultAutoPublishRemote());
- preferences.setDefault(PREF_AUTO_PUBLISH_REMOTE_TIME, getDefaultAutoPublishRemoteTime());
-
- preferences.setDefault(PREF_SYNC_ON_STARTUP, getDefaultSyncOnStartup());
-
- preferences.setDefault(PREF_MODULE_START_TIMEOUT, 300001);
- boolean save = false;
- if (preferences.isDefault(PREF_MODULE_START_TIMEOUT)) {
- preferences.setValue(PREF_MODULE_START_TIMEOUT, 300000);
- save = true;
- }
- if (save)
- ServerPlugin.getInstance().savePluginPreferences();
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerSchedulingRule.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerSchedulingRule.java
deleted file mode 100644
index f4a953f94..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerSchedulingRule.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.wst.server.core.IServer;
-/**
- * Simple job scheduling rule that stops a server from starting,
- * publishing, or stopping at the same time.
- */
-public class ServerSchedulingRule implements ISchedulingRule {
- protected IServer server;
-
- public ServerSchedulingRule(IServer server) {
- this.server = server;
- }
-
- public boolean contains(ISchedulingRule rule) {
- if (!(rule instanceof ServerSchedulingRule))
- return false;
-
- return true;
- }
-
- public boolean isConflicting(ISchedulingRule rule) {
- if (!(rule instanceof ServerSchedulingRule))
- return false;
-
- ServerSchedulingRule ssrule = (ServerSchedulingRule) rule;
- return ssrule.server.equals(server);
- }
-
- public String toString() {
- return "Server scheduling rule for " + server;
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerType.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerType.java
deleted file mode 100644
index 7edbdee0b..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerType.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchManager;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
-import org.eclipse.wst.server.core.model.ServerDelegate;
-/**
- *
- */
-public class ServerType implements IServerType {
- private static final int DEFAULT_TIMEOUT = 1000 * 60 * 4; // 4 minutes
- private static final float[] SERVER_TIMEOUTS =
- new float[] { 4f, 3f, 2f, 1.5f, 1f, 0.75f, 0.5f, 0.35f, 0.25f };
- private IConfigurationElement element;
-
- /**
- * ServerType constructor comment.
- *
- * @param element a configuration element
- */
- public ServerType(IConfigurationElement element) {
- super();
- this.element = element;
- }
-
- /**
- * Returns the id of this factory.
- *
- * @return java.lang.String
- */
- public String getId() {
- try {
- return element.getAttribute("id");
- } catch (Exception e) {
- return null;
- }
- }
-
- public String getName() {
- try {
- return element.getAttribute("name");
- } catch (Exception e) {
- return null;
- }
- }
-
- public boolean startBeforePublish() {
- try {
- return "true".equals(element.getAttribute("startBeforePublish"));
- } catch (Exception e) {
- return false;
- }
- }
-
- public String getDescription() {
- try {
- return element.getAttribute("description");
- } catch (Exception e) {
- return null;
- }
- }
-
- protected ServerDelegate createServerDelegate() throws CoreException {
- try {
- return (ServerDelegate) element.createExecutableExtension("class");
- } catch (Exception e) {
- return null;
- }
- }
-
- protected ServerBehaviourDelegate createServerBehaviourDelegate() throws CoreException {
- try {
- return (ServerBehaviourDelegate) element.createExecutableExtension("behaviourClass");
- } catch (Exception e) {
- return null;
- }
- }
-
- public IRuntimeType getRuntimeType() {
- try {
- String typeId = element.getAttribute("runtimeTypeId");
- if (typeId == null)
- return null;
- return ServerCore.findRuntimeType(typeId);
- } catch (Exception e) {
- return null;
- }
- }
-
- public boolean hasRuntime() {
- try {
- String s = element.getAttribute("runtime");
- return "true".equals(s);
- } catch (Exception e) {
- return false;
- }
- }
-
- public ILaunchConfigurationType getLaunchConfigurationType() {
- try {
- String launchConfigId = element.getAttribute("launchConfigId");
- if (launchConfigId == null)
- return null;
- ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
- return launchManager.getLaunchConfigurationType(launchConfigId);
- } catch (Exception e) {
- return null;
- }
- }
-
- /**
- * Returns true if this server can start or may already be started
- * in the given mode, and false if not. Uses the launchMode attribute,
- * which may contain the strings "run", "debug", and/or "profile".
- *
- * @param launchMode String
- * @return boolean
- */
- public boolean supportsLaunchMode(String launchMode) {
- try {
- ILaunchConfigurationType configType = getLaunchConfigurationType();
- if (configType != null)
- return configType.supportsMode(launchMode);
-
- String mode = element.getAttribute("launchModes");
- if (mode == null)
- return false;
- return mode.indexOf(launchMode) >= 0;
- } catch (Exception e) {
- return false;
- }
- }
-
- public boolean supportsRemoteHosts() {
- try {
- String hosts = element.getAttribute("supportsRemoteHosts");
- return (hosts != null && hosts.toLowerCase().equals("true"));
- } catch (Exception e) {
- return false;
- }
- }
-
- public byte getInitialState() {
- try {
- String stateString = element.getAttribute("initialState");
- if (stateString != null)
- stateString = stateString.toLowerCase();
- if ("stopped".equals(stateString))
- return IServer.STATE_STOPPED;
- else if ("started".equals(stateString))
- return IServer.STATE_STARTED;
- } catch (Exception e) {
- // ignore
- }
- return IServer.STATE_UNKNOWN;
- }
-
- public boolean hasServerConfiguration() {
- try {
- return ("true".equalsIgnoreCase(element.getAttribute("hasConfiguration")));
- } catch (Exception e) {
- return false;
- }
- }
-
- public IServerWorkingCopy createServer(String id, IFile file, IRuntime runtime, IProgressMonitor monitor) throws CoreException {
- if (element == null)
- return null;
-
- if (id == null || id.length() == 0)
- id = ServerPlugin.generateId();
- ServerWorkingCopy swc = new ServerWorkingCopy(id, file, runtime, this);
- swc.setRuntime(runtime);
- swc.setDefaults(monitor);
-
- // TODO
- if (swc.getServerType().hasServerConfiguration())
- swc.importRuntimeConfiguration(runtime, null);
-
- return swc;
- }
-
- /**
- * Returns an array of all known runtime instances of
- * the given runtime type. This convenience method filters the list of known
- * runtime ({@link ServerCore#getRuntimes()}) for ones with a matching
- * runtime type ({@link IRuntime#getRuntimeType()}). The array will not
- * contain any working copies.
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @param runtimeType the runtime type
- * @return a possibly-empty list of runtime instances {@link IRuntime}
- * of the given runtime type
- */
- protected static IRuntime[] getRuntimes(IRuntimeType runtimeType) {
- List list = new ArrayList();
- IRuntime[] runtimes = ServerCore.getRuntimes();
- if (runtimes != null) {
- int size = runtimes.length;
- for (int i = 0; i < size; i++) {
- if (runtimes[i].getRuntimeType() != null && runtimes[i].getRuntimeType().equals(runtimeType))
- list.add(runtimes[i]);
- }
- }
-
- IRuntime[] r = new IRuntime[list.size()];
- list.toArray(r);
- return r;
- }
-
- public IServerWorkingCopy createServer(String id, IFile file, IProgressMonitor monitor) throws CoreException {
- if (element == null)
- return null;
-
- if (id == null || id.length() == 0)
- id = ServerPlugin.generateId();
-
- IRuntime runtime = null;
- if (hasRuntime()) {
- // look for existing runtime
- IRuntimeType runtimeType = getRuntimeType();
- IRuntime[] runtimes = getRuntimes(runtimeType);
- if (runtimes != null && runtimes.length > 0)
- runtime = runtimes[0];
- else {
- // create runtime
- try {
- IRuntimeWorkingCopy runtimeWC = runtimeType.createRuntime(id + "-runtime", monitor);
- ServerUtil.setRuntimeDefaultName(runtimeWC);
- runtime = runtimeWC;
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Couldn't create runtime", e);
- }
- }
- }
-
- ServerWorkingCopy swc = new ServerWorkingCopy(id, file, runtime, this);
- ServerUtil.setServerDefaultName(swc);
- if (runtime != null)
- swc.setRuntime(runtime);
-
- swc.setDefaults(monitor);
- if (swc.getServerType().hasServerConfiguration())
- swc.importRuntimeConfiguration(runtime, null);
-
- return swc;
- }
-
- public static IProject getServerProject() throws CoreException {
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- if (projects != null) {
- int size = projects.length;
- for (int i = 0; i < size; i++) {
- if (ServerPlugin.getProjectProperties(projects[i]).isServerProject())
- return projects[i];
- }
- }
-
- String s = findUnusedServerProjectName();
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(s);
- project.create(null);
- project.open(null);
- ServerPlugin.getProjectProperties(project).setServerProject(true, null);
- return project;
- }
-
- /**
- * Finds an unused project name to use as a server project.
- *
- * @return java.lang.String
- */
- protected static String findUnusedServerProjectName() {
- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- String name = NLS.bind(Messages.defaultServerProjectName, "").trim();
- int count = 1;
- while (root.getProject(name).exists()) {
- name = NLS.bind(Messages.defaultServerProjectName, ++count + "").trim();
- }
- return name;
- }
-
- /**
- * Return the timeout (in ms) that should be used to wait for the server to start.
- * The default is 2 minutes.
- *
- * @return the server startup timeout, or -1 if there is no timeout
- */
- public int getStartTimeout() {
- try {
- int i = Integer.parseInt(element.getAttribute("startTimeout"));
- int s = ServerPreferences.getInstance().getMachineSpeed();
- if (s < 0)
- return -1;
- return (int) (i * SERVER_TIMEOUTS[s-1]);
- } catch (NumberFormatException e) {
- // ignore
- }
- return DEFAULT_TIMEOUT;
- }
-
- /**
- * Return the timeout (in ms) to wait before assuming that the server
- * has failed to stop. The default is 2 minutes.
- *
- * @return the server shutdown timeout, or -1 if there is no timeout
- */
- public int getStopTimeout() {
- try {
- int i = Integer.parseInt(element.getAttribute("stopTimeout"));
- int s = ServerPreferences.getInstance().getMachineSpeed();
- if (s < 0)
- return -1;
- return (int) (i * SERVER_TIMEOUTS[s-1]);
- } catch (NumberFormatException e) {
- // ignore
- }
- return DEFAULT_TIMEOUT;
- }
-
- public void dispose() {
- element = null;
- }
-
- public String getNamespace() {
- if (element == null)
- return null;
- return element.getDeclaringExtension().getContributor().getName();
- }
-
- /**
- * Return a string representation of this object.
- *
- * @return java.lang.String
- */
- public String toString() {
- return "ServerType[" + getId() + "]";
- }
-} \ No newline at end of file
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
deleted file mode 100644
index 249c6bd64..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerWorkingCopy.java
+++ /dev/null
@@ -1,719 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.beans.PropertyChangeListener;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.model.InternalInitializer;
-import org.eclipse.wst.server.core.model.PublishOperation;
-import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
-import org.eclipse.wst.server.core.model.ServerDelegate;
-/**
- *
- */
-public class ServerWorkingCopy extends Server implements IServerWorkingCopy {
- protected Server server;
- protected WorkingCopyHelper wch;
-
- protected ServerDelegate workingCopyDelegate;
-
- // working copy
- public ServerWorkingCopy(Server server) {
- super(server.getFile());
- this.server = server;
-
- map = new HashMap(server.map);
- wch = new WorkingCopyHelper(this);
-
- resolve();
- }
-
- // creation
- public ServerWorkingCopy(String id, IFile file, IRuntime runtime, IServerType serverType) {
- super(id, file, runtime, serverType);
- //server = this;
- wch = new WorkingCopyHelper(this);
- wch.setDirty(true);
- serverState = ((ServerType)serverType).getInitialState();
- }
-
- public boolean isWorkingCopy() {
- return true;
- }
-
- public IServer getOriginal() {
- return server;
- }
-
- public IServerWorkingCopy createWorkingCopy() {
- return this;
- }
-
- public int getServerState() {
- if (server != null)
- return server.getServerState();
- return super.getServerState();
- }
-
- public void setServerState(int state) {
- if (server != null)
- server.setServerState(state);
- else
- super.setServerState(state);
- }
-
- public int getServerPublishState() {
- if (server != null)
- return server.getServerPublishState();
- return super.getServerPublishState();
- }
-
- public void setServerPublishState(int state) {
- if (server != null)
- server.setServerPublishState(state);
- else
- super.setServerPublishState(state);
- }
-
- public IStatus getServerStatus() {
- if (server != null)
- return server.getServerStatus();
- return super.getServerStatus();
- }
-
- public void setServerStatus(IStatus status) {
- if (server != null)
- server.setServerStatus(status);
- else
- super.setServerStatus(status);
- }
-
- public int getModuleState(IModule[] module) {
- if (server != null)
- return server.getModuleState(module);
- return super.getModuleState(module);
- }
-
- public void setModuleState(IModule[] module, int state) {
- if (server != null)
- server.setModuleState(module, state);
- else
- super.setModuleState(module, state);
- }
-
- public int getModulePublishState(IModule[] module) {
- if (server != null)
- return server.getModulePublishState(module);
- return super.getModulePublishState(module);
- }
-
- public void setModulePublishState(IModule[] module, int state) {
- if (server != null)
- server.setModulePublishState(module, state);
- else
- super.setModulePublishState(module, state);
- }
-
- public boolean getModuleRestartState(IModule[] module) {
- if (server != null)
- return server.getModuleRestartState(module);
- return super.getModuleRestartState(module);
- }
-
- public void setModuleRestartState(IModule[] module, boolean r) {
- if (server != null)
- server.setModuleRestartState(module, r);
- else
- super.setModuleRestartState(module, r);
- }
-
- public IStatus getModuleStatus(IModule[] module) {
- if (server != null)
- return server.getModuleStatus(module);
- return super.getModuleStatus(module);
- }
-
- public void setModuleStatus(IModule[] module, IStatus status) {
- if (server != null)
- server.setModuleStatus(module, status);
- else
- super.setModuleStatus(module, status);
- }
-
- public String getMode() {
- if (server != null)
- return server.getMode();
- return mode;
- }
-
- public void setMode(String mode) {
- if (server != null)
- server.setMode(mode);
- else
- super.setMode(mode);
- }
-
- public void setAttribute(String attributeName, int value) {
- wch.setAttribute(attributeName, value);
- }
-
- public void setAttribute(String attributeName, boolean value) {
- wch.setAttribute(attributeName, value);
- }
-
- public void setAttribute(String attributeName, String value) {
- wch.setAttribute(attributeName, value);
- }
-
- public void setAttribute(String attributeName, List value) {
- wch.setAttribute(attributeName, value);
- }
-
- public void setAttribute(String attributeName, Map value) {
- wch.setAttribute(attributeName, value);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.IServerWorkingCopy#setName(java.lang.String)
- */
- public void setName(String name) {
- setAttribute(PROP_NAME, name);
- }
-
- public void setReadOnly(boolean b) {
- setAttribute(PROP_LOCKED, b);
- }
-
- /**
- * Sets whether this element is private.
- * Generally speaking, elements marked private are internal ones
- * that should not be shown to users (because they won't know
- * anything about them).
- *
- * @param b <code>true</code> if this element is private,
- * and <code>false</code> otherwise
- * @see #isPrivate()
- */
- public void setPrivate(boolean b) {
- setAttribute(PROP_PRIVATE, b);
- }
-
- public void setHost(String host) {
- setAttribute(PROP_HOSTNAME, host);
- }
-
- public void setAutoPublishTime(int p) {
- setAttribute(PROP_AUTO_PUBLISH_TIME, p);
- }
-
- public void setAutoPublishSetting(int s) {
- setAttribute(PROP_AUTO_PUBLISH_SETTING, s);
- }
-
- public void setServerConfiguration(IFolder config) {
- this.configuration = config;
- if (configuration == null)
- setAttribute(CONFIGURATION_ID, (String)null);
- else
- setAttribute(CONFIGURATION_ID, configuration.getFullPath().toString());
- }
-
- /**
- * Disable the preferred publish operation.
- *
- * @param op a publish operation
- * @return true if change is made.
- */
- public boolean disablePreferredPublishOperations(PublishOperation op) {
- List list = getAttribute(PROP_DISABLED_PERFERRED_TASKS, (List)null);
- if (list == null)
- list = new ArrayList();
-
- String opId = getPublishOperationId(op);
- if (list.contains(opId))
- return false;
- list.add(opId);
- setAttribute(PROP_DISABLED_PERFERRED_TASKS, list);
- return true;
- }
-
- /**
- * Enable the optional publish operation. Optional publish operation is not ran by default.
- *
- * @param op a publish operation
- * @return true if change is made.
- */
- public boolean enableOptionalPublishOperations(PublishOperation op) {
- List list = getAttribute(PROP_ENABLED_OPTIONAL_TASKS, (List)null);
- if (list == null)
- list = new ArrayList();
-
- String opId = getPublishOperationId(op);
- if (list.contains(opId))
- return false;
- list.add(opId);
- setAttribute(PROP_ENABLED_OPTIONAL_TASKS, list);
- return true;
- }
-
- /**
- * Reset all preferred operations to default
- */
- public void resetPreferredPublishOperations() {
- setAttribute(PROP_DISABLED_PERFERRED_TASKS, (List)null);
- }
-
- /**
- * Reset all optional operations to default
- */
- public void resetOptionalPublishOperations() {
- setAttribute(PROP_ENABLED_OPTIONAL_TASKS, (List)null);
- }
-
- /**
- * Sets the file where this server instance is serialized.
- *
- * @param file the file in the workspace where the server instance
- * is serialized, or <code>null</code> if the information is
- * instead to be persisted with the workspace but not with any
- * particular workspace resource
- */
- public void setFile(IFile file) {
- this.file = file;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.IServerWorkingCopy#isDirty()
- */
- public boolean isDirty() {
- return wch.isDirty();
- }
-
- public ServerDelegate getWorkingCopyDelegate(IProgressMonitor monitor) {
- // make sure that the regular delegate is loaded
- //getDelegate();
-
- if (workingCopyDelegate != null || serverType == null)
- return workingCopyDelegate;
-
- synchronized (this) {
- if (workingCopyDelegate == null) {
- try {
- long time = System.currentTimeMillis();
- workingCopyDelegate = ((ServerType) serverType).createServerDelegate();
- InternalInitializer.initializeServerDelegate(workingCopyDelegate, this, monitor);
- Trace.trace(Trace.PERFORMANCE, "ServerWorkingCopy.getWorkingCopyDelegate(): <" + (System.currentTimeMillis() - time) + "> " + getServerType().getId());
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not create delegate " + toString(), e);
- }
- }
- }
- return workingCopyDelegate;
- }
-
- protected ServerBehaviourDelegate getBehaviourDelegate(IProgressMonitor monitor) {
- if (server == null)
- return null;
-
- if (behaviourDelegate != null)
- return behaviourDelegate;
-
- synchronized (this) {
- if (behaviourDelegate == null)
- behaviourDelegate = server.getBehaviourDelegate(monitor);
- }
- return behaviourDelegate;
- }
-
- public void dispose() {
- // behaviour delegate is cached from the original server
- behaviourDelegate = null;
-
- super.dispose();
- if (workingCopyDelegate != null)
- workingCopyDelegate.dispose();
- }
-
- public IServer save(boolean force, IProgressMonitor monitor) throws CoreException {
- monitor = ProgressUtil.getMonitorFor(monitor);
- monitor.subTask(NLS.bind(Messages.savingTask, getName()));
-
- if (!force && getOriginal() != null)
- wch.validateTimestamp(((Server)getOriginal()).getTimestamp());
-
- int timestamp = getTimestamp();
- map.put(PROP_TIMESTAMP, Integer.toString(timestamp+1));
-
- if (server == null) {
- server = new Server(file);
- server.setServerState(serverState);
- server.publishListeners = publishListeners;
- server.notificationManager = notificationManager;
- }
-
- if (getServerType().hasServerConfiguration()) {
- IFolder folder = getServerConfiguration();
- if (folder == null) {
- folder = ServerType.getServerProject().getFolder(getName() + "-config");
- if (!folder.exists())
- folder.create(true, true, null);
- setServerConfiguration(folder);
- }
- }
-
- server.setInternal(this);
- server.doSave(monitor);
- if (getServerType().hasServerConfiguration()) {
- IFolder folder = getServerConfiguration();
- if (folder != null) {
- IProject project = folder.getProject();
- if (project != null && !project.exists()) {
- project.create(null);
- project.open(null);
- ServerPlugin.getProjectProperties(project).setServerProject(true, monitor);
- }
- if (!folder.exists())
- folder.create(IResource.FORCE, true, null);
- }
- }
- getWorkingCopyDelegate(monitor).saveConfiguration(monitor);
- wch.setDirty(false);
-
- return server;
- }
-
- public IServer saveAll(boolean force, IProgressMonitor monitor) throws CoreException {
- if (runtime != null && runtime.isWorkingCopy()) {
- IRuntimeWorkingCopy wc = (IRuntimeWorkingCopy) runtime;
- wc.save(force, monitor);
- }
-
- return save(force, monitor);
- }
-
- /**
- * Add a property change listener to this server.
- *
- * @param listener java.beans.PropertyChangeListener
- */
- public void addPropertyChangeListener(PropertyChangeListener listener) {
- if (listener == null)
- throw new IllegalArgumentException("Listener cannot be null");
- wch.addPropertyChangeListener(listener);
- }
-
- /**
- * Remove a property change listener from this server.
- *
- * @param listener java.beans.PropertyChangeListener
- */
- public void removePropertyChangeListener(PropertyChangeListener listener) {
- if (listener == null)
- throw new IllegalArgumentException("Listener cannot be null");
- wch.removePropertyChangeListener(listener);
- }
-
- /**
- * Fire a property change event.
- *
- * @param propertyName a property name
- * @param oldValue the old value
- * @param newValue the new value
- */
- public void firePropertyChangeEvent(String propertyName, Object oldValue, Object newValue) {
- wch.firePropertyChangeEvent(propertyName, oldValue, newValue);
- }
-
- public void addServerListener(IServerListener listener) {
- if (server != null)
- server.addServerListener(listener);
- else
- super.addServerListener(listener);
- }
-
- public void removeServerListener(IServerListener listener) {
- if (server != null)
- server.removeServerListener(listener);
- else
- super.removeServerListener(listener);
- }
-
- public void addPublishListener(IPublishListener listener) {
- if (server != null)
- server.addPublishListener(listener);
- else
- super.addPublishListener(listener);
- }
-
- public void removePublishListener(IPublishListener listener) {
- if (server != null)
- server.removePublishListener(listener);
- else
- super.removePublishListener(listener);
- }
-
- public void setRuntime(IRuntime runtime) {
- this.runtime = runtime;
- if (runtime != null)
- setAttribute(RUNTIME_ID, runtime.getId());
- else
- setAttribute(RUNTIME_ID, (String)null);
- }
-
- public void setRuntimeId(String runtimeId) {
- setAttribute(RUNTIME_ID, runtimeId);
- resolve();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.IServer#modifyModule(org.eclipse.wst.server.core.model.IModule)
- */
- public void modifyModules(IModule[] add, IModule[] remove, IProgressMonitor monitor) throws CoreException {
- if ((add == null || add.length == 0) && (remove == null || remove.length == 0))
- throw new IllegalArgumentException("Add and remove cannot both be null/empty");
-
- try {
- monitor = ProgressUtil.getMonitorFor(monitor);
- monitor.subTask(Messages.taskModifyModules);
- getWorkingCopyDelegate(monitor).modifyModules(add, remove, monitor);
- wch.setDirty(true);
-
- // trigger load of modules list
- getModules();
-
- if (add != null) {
- int size = add.length;
- for (int i = 0; i < size; i++) {
- if (!modules.contains(add[i])) {
- modules.add(add[i]);
- resetState(new IModule[] { add[i] }, monitor);
- }
- }
- }
-
- if (remove != null) {
- int size = remove.length;
- for (int i = 0; i < size; i++) {
- if (modules.contains(remove[i])) {
- modules.remove(remove[i]);
- resetState(new IModule[] { remove[i] }, monitor);
- }
- }
- }
-
- // convert to attribute
- List list = new ArrayList();
- Iterator iterator = modules.iterator();
- while (iterator.hasNext()) {
- IModule module = (IModule) iterator.next();
- StringBuffer sb = new StringBuffer(module.getName());
- sb.append("::");
- sb.append(module.getId());
- IModuleType mt = module.getModuleType();
- if (mt != null) {
- sb.append("::");
- sb.append(mt.getId());
- sb.append("::");
- sb.append(mt.getVersion());
- }
- list.add(sb.toString());
- }
- setAttribute(MODULE_LIST, list);
- resetOptionalPublishOperations();
- resetPreferredPublishOperations();
- } catch (CoreException ce) {
- throw ce;
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate modifyModule() " + toString(), e);
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, "" + e.getLocalizedMessage(), e));
- }
- }
-
- protected void resetState(IModule[] module, IProgressMonitor monitor) {
- setModulePublishState(module, PUBLISH_STATE_UNKNOWN);
- setModuleState(module, IServer.STATE_UNKNOWN);
- setModuleRestartState(module, false);
- setModuleStatus(module, null);
- try {
- IModule[] children = getChildModules(module, monitor);
- int size = children.length;
- int size2 = module.length;
- for (int i = 0; i < size; i++) {
- IModule[] child = new Module[size2 + 1];
- System.arraycopy(module, 0, child, 0, size2);
- child[size2] = children[i];
- resetPublishState(child, monitor);
- setModuleState(module, IServer.STATE_UNKNOWN);
- setModuleRestartState(module, false);
- setModuleStatus(module, null);
- }
- } catch (Exception e) {
- // ignore
- }
- }
-
- /**
- *
- * @param module
- * @param monitor
- * @deprecated use resetState() instead
- */
- protected void resetPublishState(IModule[] module, IProgressMonitor monitor) {
- setModulePublishState(module, PUBLISH_STATE_UNKNOWN);
- try {
- IModule[] children = getChildModules(module, monitor);
- int size = children.length;
- int size2 = module.length;
- for (int i = 0; i < size; i++) {
- IModule[] child = new Module[size2 + 1];
- System.arraycopy(module, 0, child, 0, size2);
- child[size2] = children[i];
- resetPublishState(child, monitor);
- }
- } catch (Exception e) {
- // ignore
- }
- }
-
- public void setDefaults(IProgressMonitor monitor) {
- try {
- getWorkingCopyDelegate(monitor).setDefaults(monitor);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate setDefaults() " + toString(), e);
- }
- }
-
- public void renameFiles(IProgressMonitor monitor) throws CoreException {
- if (getServerConfiguration() != null) {
- IFolder folder = getServerConfiguration();
- IFolder folder2 = ServerType.getServerProject().getFolder(getName() + "-config");
- folder.move(folder2.getFullPath(), true, true, monitor);
- setServerConfiguration(folder2);
- save(true, monitor);
- }
-
- if (file != null) {
- IFile file2 = ServerUtil.getUnusedServerFile(file.getProject(), this);
- file.move(file2.getFullPath(), true, true, monitor);
- }
- }
-
- /*
- * Publish to the server using the progress monitor. The result of the
- * publish operation is returned as an IStatus.
- */
- public IStatus publish(int kind, IProgressMonitor monitor) {
- if (server != null)
- return server.publish(kind, monitor);
- return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorPublishing, null);
- }
-
- /**
- * Sets the server restart state.
- *
- * @param state boolean
- */
- public void setServerRestartState(boolean state) {
- if (server != null)
- server.setServerRestartState(state);
- else
- super.setServerRestartState(state);
- }
-
- /**
- * @see IServer#getAdapter(Class)
- */
- public Object getAdapter(Class adapter) {
- if (workingCopyDelegate != null) {
- if (adapter.isInstance(workingCopyDelegate))
- return workingCopyDelegate;
- }
- if (delegate != null) {
- if (adapter.isInstance(delegate))
- return delegate;
- }
- if (behaviourDelegate != null) {
- if (adapter.isInstance(behaviourDelegate))
- return behaviourDelegate;
- }
- return Platform.getAdapterManager().getAdapter(this, adapter);
- }
-
- /**
- * @see IServer#loadAdapter(Class, IProgressMonitor)
- */
- public Object loadAdapter(Class adapter, IProgressMonitor monitor) {
- getWorkingCopyDelegate(monitor);
- if (adapter.isInstance(workingCopyDelegate))
- return workingCopyDelegate;
-
- getDelegate(monitor);
- if (adapter.isInstance(delegate))
- return delegate;
-
- getBehaviourDelegate(monitor);
- if (adapter.isInstance(behaviourDelegate))
- return behaviourDelegate;
-
- return Platform.getAdapterManager().loadAdapter(this, adapter.getName());
- }
-
- /**
- * Import the server configuration from the given runtime.
- *
- * @param runtime2
- * @param monitor
- * @deprecated should use importRuntimeConfiguration() instead
- */
- public void importConfiguration(IRuntime runtime2, IProgressMonitor monitor) {
- try {
- getWorkingCopyDelegate(monitor).importConfiguration(runtime2, monitor);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate importConfiguration() " + toString(), e);
- }
- }
-
- /**
- * Import the server configuration from the given runtime.
- *
- * @param runtime2 a server runtime
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there is any problem importing the configuration
- * from the runtime
- */
- public void importRuntimeConfiguration(IRuntime runtime2, IProgressMonitor monitor) throws CoreException {
- try {
- getWorkingCopyDelegate(monitor).importRuntimeConfiguration(runtime2, monitor);
- } catch (CoreException ce) {
- Trace.trace(Trace.SEVERE, "CoreException calling delegate importConfiguration() " + toString(), ce);
- throw ce;
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error calling delegate importConfiguration() " + toString(), e);
- }
- }
-
- public String toString() {
- return "ServerWorkingCopy " + getId();
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StartServerJob.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StartServerJob.java
deleted file mode 100644
index 032e9c00a..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StartServerJob.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.internal.ServerSchedulingRule;
-/**
- * A job for starting the server.
- */
-public class StartServerJob extends ChainedJob {
- protected String launchMode;
-
- public StartServerJob(IServer server, String launchMode) {
- super(NLS.bind(Messages.jobStartingServer, server.getName()), server);
- this.launchMode = launchMode;
- setRule(new ServerSchedulingRule(server));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.internal.jobs.InternalJob#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus run(IProgressMonitor monitor) {
- try {
- getServer().synchronousStart(launchMode, monitor);
- } catch (CoreException ce) {
- return ce.getStatus();
- }
- return Status.OK_STATUS;
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Trace.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Trace.java
deleted file mode 100644
index 66eda62bf..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Trace.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-/**
- * Helper class to route trace output.
- */
-public class Trace {
- public static int CONFIG = 0;
- public static int INFO = 1;
- public static int WARNING = 2;
- public static int SEVERE = 3;
- public static int FINER = 4;
- public static int FINEST = 5;
-
- public static int RESOURCES = 6;
- public static int EXTENSION_POINT = 7;
- public static int LISTENERS = 8;
- public static int RUNTIME_TARGET = 9;
- public static int PERFORMANCE = 10;
-
- private static final String[] levelNames = new String[] {
- "CONFIG ", "INFO ", "WARNING ", "SEVERE ", "FINER ", "FINEST ",
- "RESOURCES", "EXTENSION", "LISTENERS", "TARGET ", "PERF "};
- private static final String spacer = " ";
-
- private static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy HH:mm.ss.SSS");
-
- protected static int pluginLength = -1;
-
- /**
- * Trace constructor comment.
- */
- private Trace() {
- super();
- }
-
- /**
- * Trace the given text.
- *
- * @param level a trace level
- * @param s a message
- */
- public static void trace(int level, String s) {
- trace(level, s, null);
- }
-
- /**
- * Trace the given message and exception.
- *
- * @param level a trace level
- * @param s a message
- * @param t a throwable
- */
- public static void trace(int level, String s, Throwable t) {
- trace(ServerPlugin.PLUGIN_ID, level, s, t);
- }
-
- /**
- * Trace the given message and exception.
- *
- * @param level a trace level
- * @param s a message
- * @param t a throwable
- */
- private static void trace(String pluginId, int level, String s, Throwable t) {
- if (pluginId == null || s == null)
- return;
-
- if (!ServerPlugin.getInstance().isDebugging())
- return;
-
- StringBuffer sb = new StringBuffer(pluginId);
- if (pluginId.length() > pluginLength)
- pluginLength = pluginId.length();
- else if (pluginId.length() < pluginLength)
- sb.append(spacer.substring(0, pluginLength - pluginId.length()));
- sb.append(" ");
- sb.append(levelNames[level]);
- sb.append(" ");
- sb.append(sdf.format(new Date()));
- sb.append(" ");
- sb.append(s);
- //Platform.getDebugOption(ServerCore.PLUGIN_ID + "/" + "resources");
-
- System.out.println(sb.toString());
- if (t != null)
- t.printStackTrace();
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/UpdateServerJob.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/UpdateServerJob.java
deleted file mode 100644
index 91428ea7d..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/UpdateServerJob.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
-/**
- * Action to update a server's status.
- */
-public class UpdateServerJob extends ChainedJob {
- /**
- * An action to update the status of a server.
- *
- * @param server a server
- */
- public UpdateServerJob(IServer server) {
- super(NLS.bind(Messages.jobUpdateServer, server.getName()), server);
- }
-
- public IStatus run(IProgressMonitor monitor) {
- getServer().loadAdapter(ServerBehaviourDelegate.class, monitor);
-
- return Status.OK_STATUS;
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/WorkingCopyHelper.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/WorkingCopyHelper.java
deleted file mode 100644
index bd513a21a..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/WorkingCopyHelper.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.server.core.IServerWorkingCopy;
-/**
- *
- */
-public class WorkingCopyHelper {
- protected Base base;
- protected boolean isDirty;
-
- // property change listeners
- private transient List propertyListeners;
-
- public WorkingCopyHelper(Base base) {
- this.base = base;
- }
-
- public void setAttribute(String attributeName, int value) {
- int current = base.getAttribute(attributeName, 0);
- if (current != 0 && current == value)
- return;
-
- isDirty = true;
- base.map.put(attributeName, Integer.toString(value));
- firePropertyChangeEvent(attributeName, new Integer(current), new Integer(value));
- }
-
- public void setAttribute(String attributeName, boolean value) {
- boolean current = base.getAttribute(attributeName, false);
-
- isDirty = true;
- base.map.put(attributeName, Boolean.toString(value));
- firePropertyChangeEvent(attributeName, new Boolean(current), new Boolean(value));
- }
-
- public void setAttribute(String attributeName, String value) {
- String current = base.getAttribute(attributeName, (String)null);
- if (current != null && current.equals(value))
- return;
-
- isDirty = true;
- if (value == null)
- base.map.remove(attributeName);
- else
- base.map.put(attributeName, value);
- firePropertyChangeEvent(attributeName, current, value);
- }
-
- public void setAttribute(String attributeName, List value) {
- List current = base.getAttribute(attributeName, (List)null);
- if (current != null && current.equals(value))
- return;
-
- isDirty = true;
- if (value == null)
- base.map.remove(attributeName);
- else
- base.map.put(attributeName, value);
- firePropertyChangeEvent(attributeName, current, value);
- }
-
- public void setAttribute(String attributeName, Map value) {
- Map current = base.getAttribute(attributeName, (Map)null);
- if (current != null && current.equals(value))
- return;
-
- isDirty = true;
- if (value == null)
- base.map.remove(attributeName);
- else
- base.map.put(attributeName, value);
- firePropertyChangeEvent(attributeName, current, value);
- }
-
- public void setName(String name) {
- setAttribute(Base.PROP_NAME, name);
- }
-
- public void setLocked(boolean b) {
- setAttribute(Base.PROP_LOCKED, b);
- }
-
- public void setPrivate(boolean b) {
- setAttribute(Base.PROP_PRIVATE, b);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.core.IServerWorkingCopy#isDirty()
- */
- public boolean isDirty() {
- return isDirty;
- }
-
- protected void validateTimestamp(int timestamp) throws CoreException {
- if (base.getTimestamp() != timestamp)
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, IServerWorkingCopy.SAVE_CONFLICT, Messages.errorWorkingCopyTimestamp, null));
- }
-
- /**
- * Add a property change listener to this server.
- *
- * @param listener java.beans.PropertyChangeListener
- */
- public void addPropertyChangeListener(PropertyChangeListener listener) {
- if (propertyListeners == null)
- propertyListeners = new ArrayList(2);
- propertyListeners.add(listener);
- }
-
- /**
- * Remove a property change listener from this server.
- *
- * @param listener java.beans.PropertyChangeListener
- */
- public void removePropertyChangeListener(PropertyChangeListener listener) {
- if (propertyListeners != null)
- propertyListeners.remove(listener);
- }
-
- /**
- * Fire a property change event.
- *
- * @param propertyName a property name
- * @param oldValue the old value
- * @param newValue the new value
- */
- public void firePropertyChangeEvent(String propertyName, Object oldValue, Object newValue) {
- if (propertyListeners == null)
- return;
-
- PropertyChangeEvent event = new PropertyChangeEvent(this, propertyName, oldValue, newValue);
- try {
- Iterator iterator = propertyListeners.iterator();
- while (iterator.hasNext()) {
- try {
- PropertyChangeListener listener = (PropertyChangeListener) iterator.next();
- listener.propertyChange(event);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error firing property change event", e);
- }
- }
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error in property event", e);
- }
- }
-
- protected void setDirty(boolean dirty) {
- isDirty = dirty;
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/XMLMemento.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/XMLMemento.java
deleted file mode 100644
index ff9d44779..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/XMLMemento.java
+++ /dev/null
@@ -1,449 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.io.*;
-import java.util.*;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-
-import javax.xml.parsers.*;
-import javax.xml.transform.*;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-/**
- * A Memento is a class independent container for persistence
- * info. It is a reflection of 3 storage requirements.
- *
- * 1) We need the ability to persist an object and restore it.
- * 2) The class for an object may be absent. If so we would
- * like to skip the object and keep reading.
- * 3) The class for an object may change. If so the new class
- * should be able to read the old persistence info.
- *
- * We could ask the objects to serialize themselves into an
- * ObjectOutputStream, DataOutputStream, or Hashtable. However
- * all of these approaches fail to meet the second requirement.
- *
- * Memento supports binary persistance with a version ID.
- */
-public final class XMLMemento implements IMemento {
- private Document factory;
- private Element element;
-
- /**
- * Answer a memento for the document and element. For simplicity
- * you should use createReadRoot and createWriteRoot to create the initial
- * mementos on a document.
- */
- private XMLMemento(Document doc, Element el) {
- factory = doc;
- element = el;
- }
-
- /*
- * @see IMemento
- */
- public IMemento createChild(String type) {
- Element child = factory.createElement(type);
- element.appendChild(child);
- return new XMLMemento(factory, child);
- }
-
- /*
- * @see IMemento
- */
- public IMemento createChild(String type, String id) {
- Element child = factory.createElement(type);
- child.setAttribute(TAG_ID, id);
- element.appendChild(child);
- return new XMLMemento(factory, child);
- }
-
- /**
- * Create a Document from a Reader and answer a root memento for reading
- * a document.
- */
- protected static XMLMemento createReadRoot(InputStream in) {
- Document document = null;
- try {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder parser = factory.newDocumentBuilder();
- document = parser.parse(new InputSource(in));
- Node node = document.getFirstChild();
- if (node instanceof Element)
- return new XMLMemento(document, (Element) node);
- } catch (Exception e) {
- // ignore
- } finally {
- try {
- in.close();
- } catch (Exception e) {
- // ignore
- }
- }
- return null;
- }
-
- /**
- * Answer a root memento for writing a document.
- *
- * @param type a type
- * @return a memento
- */
- public static XMLMemento createWriteRoot(String type) {
- Document document;
- try {
- document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
- Element element = document.createElement(type);
- document.appendChild(element);
- return new XMLMemento(document, element);
- } catch (ParserConfigurationException e) {
- throw new Error(e);
- }
- }
-
- /*
- * @see IMemento
- */
- public IMemento getChild(String type) {
- // Get the nodes.
- NodeList nodes = element.getChildNodes();
- int size = nodes.getLength();
- if (size == 0)
- return null;
-
- // Find the first node which is a child of this node.
- for (int nX = 0; nX < size; nX ++) {
- Node node = nodes.item(nX);
- if (node instanceof Element) {
- Element element2 = (Element)node;
- if (element2.getNodeName().equals(type))
- return new XMLMemento(factory, element2);
- }
- }
-
- // A child was not found.
- return null;
- }
-
- /*
- * @see IMemento
- */
- public IMemento [] getChildren(String type) {
- // Get the nodes.
- NodeList nodes = element.getChildNodes();
- int size = nodes.getLength();
- if (size == 0)
- return new IMemento[0];
-
- // Extract each node with given type.
- ArrayList list = new ArrayList(size);
- for (int nX = 0; nX < size; nX ++) {
- Node node = nodes.item(nX);
- if (node instanceof Element) {
- Element element2 = (Element)node;
- if (element2.getNodeName().equals(type))
- list.add(element2);
- }
- }
-
- // Create a memento for each node.
- size = list.size();
- IMemento [] results = new IMemento[size];
- for (int x = 0; x < size; x ++) {
- results[x] = new XMLMemento(factory, (Element)list.get(x));
- }
- return results;
- }
-
- /**
- * Return the contents of this memento as a byte array.
- *
- * @return byte[]
- * @throws IOException if anything goes wrong
- */
- public byte[] getContents() throws IOException {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- save(out);
- return out.toByteArray();
- }
-
- /**
- * Returns an input stream for writing to the disk with a local locale.
- *
- * @return java.io.InputStream
- * @throws IOException if anything goes wrong
- */
- public InputStream getInputStream() throws IOException {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- save(out);
- return new ByteArrayInputStream(out.toByteArray());
- }
-
- /*
- * @see IMemento
- */
- public Float getFloat(String key) {
- Attr attr = element.getAttributeNode(key);
- if (attr == null)
- return null;
- String strValue = attr.getValue();
- try {
- return new Float(strValue);
- } catch (NumberFormatException e) {
- return null;
- }
- }
-
- /*
- * @see IMemento
- */
- public String getId() {
- return element.getAttribute(TAG_ID);
- }
-
- /*
- * @see IMemento
- */
- public String getName() {
- return element.getNodeName();
- }
-
- /*
- * @see IMemento
- */
- public Integer getInteger(String key) {
- Attr attr = element.getAttributeNode(key);
- if (attr == null)
- return null;
- String strValue = attr.getValue();
- try {
- return new Integer(strValue);
- } catch (NumberFormatException e) {
- return null;
- }
- }
-
- /*
- * @see IMemento
- */
- public String getString(String key) {
- Attr attr = element.getAttributeNode(key);
- if (attr == null)
- return null;
- return attr.getValue();
- }
-
- public List getNames() {
- NamedNodeMap map = element.getAttributes();
- int size = map.getLength();
- List list = new ArrayList();
- for (int i = 0; i < size; i++) {
- Node node = map.item(i);
- String name = node.getNodeName();
- list.add(name);
- }
- return list;
- }
-
- /**
- * Loads a memento from the given filename.
- *
- * @param in java.io.InputStream
- * @return org.eclipse.ui.IMemento
- */
- public static IMemento loadMemento(InputStream in) {
- return createReadRoot(in);
- }
-
- /**
- * Loads a memento from the given filename.
- *
- * @param filename java.lang.String
- * @return org.eclipse.ui.IMemento
- * @exception java.io.IOException
- */
- public static IMemento loadMemento(String filename) throws IOException {
- FileInputStream fin = null;
- try {
- fin = new FileInputStream(filename);
- return XMLMemento.createReadRoot(fin);
- } finally {
- try {
- if (fin != null)
- fin.close();
- } catch (Exception e) {
- // ignore
- }
- }
- }
-
- /*
- * @see IMemento
- */
- private void putElement(Element element2) {
- NamedNodeMap nodeMap = element2.getAttributes();
- int size = nodeMap.getLength();
- for (int i = 0; i < size; i++){
- Attr attr = (Attr)nodeMap.item(i);
- putString(attr.getName(),attr.getValue());
- }
-
- NodeList nodes = element2.getChildNodes();
- size = nodes.getLength();
- for (int i = 0; i < size; i ++) {
- Node node = nodes.item(i);
- if (node instanceof Element) {
- XMLMemento child = (XMLMemento)createChild(node.getNodeName());
- child.putElement((Element)node);
- }
- }
- }
-
- /*
- * @see IMemento
- */
- public void putFloat(String key, float f) {
- element.setAttribute(key, String.valueOf(f));
- }
-
- /*
- * @see IMemento
- */
- public void putInteger(String key, int n) {
- element.setAttribute(key, String.valueOf(n));
- }
-
- /*
- * @see IMemento
- */
- public void putMemento(IMemento memento) {
- XMLMemento xmlMemento = (XMLMemento) memento;
- putElement(xmlMemento.element);
- }
-
- /*
- * @see IMemento
- */
- public void putString(String key, String value) {
- if (value == null)
- return;
- element.setAttribute(key, value);
- }
-
- /**
- * Save this Memento to a Writer.
- */
- protected void save(OutputStream os) throws IOException {
- Result result = new StreamResult(os);
- Source source = new DOMSource(factory);
- try {
- Transformer transformer = TransformerFactory.newInstance().newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.setOutputProperty(OutputKeys.METHOD, "xml");
- transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
- transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount", "2");
- transformer.transform(source, result);
- } catch (Exception e) {
- throw (IOException) (new IOException().initCause(e));
- }
- }
-
- /**
- * Saves the memento to the given file.
- *
- * @param filename java.lang.String
- * @exception java.io.IOException
- */
- public void saveToFile(String filename) throws IOException {
- FileOutputStream w = null;
- try {
- w = new FileOutputStream(filename);
- save(w);
- } catch (IOException e) {
- throw e;
- } catch (Exception e) {
- throw new IOException(e.getLocalizedMessage());
- } finally {
- if (w != null) {
- try {
- w.close();
- } catch (Exception e) {
- // ignore
- }
- }
- }
- }
-
- public String saveToString() throws IOException {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- save(out);
- return out.toString("UTF-8");
- }
-
- /*
- * @see IMemento#getBoolean(String)
- */
- public Boolean getBoolean(String key) {
- Attr attr = element.getAttributeNode(key);
- if (attr == null)
- return null;
- String strValue = attr.getValue();
- if ("true".equalsIgnoreCase(strValue))
- return new Boolean(true);
- return new Boolean(false);
- }
-
- /*
- * @see IMemento#putBoolean(String, boolean)
- */
- public void putBoolean(String key, boolean value) {
- element.setAttribute(key, value ? "true" : "false");
- }
-
- /**
- * Returns the Text node of the memento. Each memento is allowed only
- * one Text node.
- *
- * @return the Text node of the memento, or <code>null</code> if
- * the memento has no Text node.
- */
- private Text getTextNode() {
- // Get the nodes.
- NodeList nodes = element.getChildNodes();
- int size = nodes.getLength();
- if (size == 0) {
- return null;
- }
- for (int nX = 0; nX < size; nX++) {
- Node node = nodes.item(nX);
- if (node instanceof Text) {
- return (Text) node;
- }
- }
- // a Text node was not found
- return null;
- }
-
- /* (non-Javadoc)
- */
- public void putTextData(String data) {
- Text textNode = getTextNode();
- if (textNode == null) {
- textNode = factory.createTextNode(data);
- // Always add the text node as the first child (fixes bug 93718)
- element.insertBefore(textNode, element.getFirstChild());
- } else {
- textNode.setData(data);
- }
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/provisional/ServerLocatorDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/provisional/ServerLocatorDelegate.java
deleted file mode 100644
index a27151a75..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/provisional/ServerLocatorDelegate.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal.provisional;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.IServerWorkingCopy;
-/**
- * A server locator provides the ability to locate or search for additional
- * server of a particular type, on a particular host.
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>serverLocators</code> extension point.
- * </p>
- */
-public abstract class ServerLocatorDelegate {
- /**
- * A callback listener used to report progress.
- */
- public interface IServerSearchListener {
- /**
- * Called when a new server is found by the locator.
- * The server must never be null.
- *
- * @param server the runtime that was found.
- */
- public void serverFound(IServerWorkingCopy server);
- }
-
- /**
- * Searches for servers.
- * It uses the callback listener to report servers that are found.
- *
- * @param host a host string conforming to RFC 2732
- * @param listener a listener to report status to
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- public abstract void searchForServers(String host, IServerSearchListener listener, IProgressMonitor monitor);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ClientDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ClientDelegate.java
deleted file mode 100644
index c4031de0a..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ClientDelegate.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.wst.server.core.IServer;
-/**
- * A launchable client is a client side application or test harness that can
- * be launched (run) against a resource running on a server.
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>clients</code> extension point.
- * </p>
- *
- * @since 1.0
- */
-public abstract class ClientDelegate {
- /**
- * Returns true if this launchable can be run by this client.
- *
- * @param server the server that the client is being run against
- * @param launchable the object to run on the server
- * @param launchMode the launch mode
- * @return <code>true</code> if the client supports this combination, and <code>false</code>
- * otherwise
- */
- public boolean supports(IServer server, Object launchable, String launchMode) {
- return true;
- }
-
- /**
- * Opens or executes on the launchable.
- *
- * @param server the server that the client is being run against
- * @param launchable the object to run on the server
- * @param launchMode the launch mode
- * @param launch the launch of the server, if available
- * @return status indicating what (if anything) went wrong
- */
- public abstract IStatus launch(IServer server, Object launchable, String launchMode, ILaunch launch);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFile.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFile.java
deleted file mode 100644
index ba22044d0..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFile.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.model;
-/**
- * A file within a module.
- *
- * @since 1.0
- */
-public interface IModuleFile extends IModuleResource {
- /**
- * Returns a modification stamp. Whenever the modification
- * stamp changes, there may have been a change to the file.
- *
- * @return the modification stamp
- */
- public long getModificationStamp();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFolder.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFolder.java
deleted file mode 100644
index fa0f822c9..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFolder.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.model;
-/**
- * A folder within a module.
- *
- * @since 1.0
- */
-public interface IModuleFolder extends IModuleResource {
- /**
- * Returns the members (contents) of this folder.
- *
- * @return an array containing the module resources contained in this folder
- */
- public IModuleResource[] members();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleResource.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleResource.java
deleted file mode 100644
index 21a4833ab..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleResource.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-/**
- * A resource (file or folder) within a module.
- *
- * @since 1.0
- */
-public interface IModuleResource extends IAdaptable {
- /**
- * Returns the module relative path to this resource.
- *
- * @return the module relative path to this resource
- */
- public IPath getModuleRelativePath();
-
- /**
- * Returns the name of this resource.
- *
- * @return the name of this resource
- */
- public String getName();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleResourceDelta.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleResourceDelta.java
deleted file mode 100644
index b76d9685e..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleResourceDelta.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.runtime.IPath;
-/**
- * A module resource delta.
- *
- * @since 1.0
- */
-public interface IModuleResourceDelta {
- /**
- * Kind constant (value 0) for no change.
- *
- * @see #getKind()
- */
- public static final int NO_CHANGE = 0;
-
- /**
- * Kind constant (value 1) for added resources.
- *
- * @see #getKind()
- */
- public static final int ADDED = 1;
-
- /**
- * Kind constant (value 2) for changed resources.
- *
- * @see #getKind()
- */
- public static final int CHANGED = 2;
-
- /**
- * Kind constant (value 3) for removed resources.
- *
- * @see #getKind()
- */
- public static final int REMOVED = 3;
-
- /**
- * Returns the module resource represented by this delta.
- *
- * @return the corresponding module resource
- */
- public IModuleResource getModuleResource();
-
- /**
- * Returns the kind of this resource delta.
- * Normally, one of <code>ADDED</code>,
- * <code>REMOVED</code>, <code>CHANGED</code>.
- *
- * @return the kind of this resource delta
- *
- * @see IModuleResourceDelta#ADDED
- * @see IModuleResourceDelta#REMOVED
- * @see IModuleResourceDelta#CHANGED
- */
- public int getKind();
-
- /**
- * Returns module resource deltas for all children of this resource
- * which were added, removed, or changed. Returns an empty
- * array if there are no affected children.
- * <p>
- * This is a convenience method, fully equivalent to:
- * <pre>
- * getAffectedChildren(ADDED | REMOVED | CHANGED, IResource.NONE);
- * </pre>
- * </p>
- *
- * @return the resource deltas for all affected children
- * @see IModuleResourceDelta#ADDED
- * @see IModuleResourceDelta#REMOVED
- * @see IModuleResourceDelta#CHANGED
- */
- public IModuleResourceDelta[] getAffectedChildren();
-
- /**
- * Returns the module-relative path of this resource delta.
- * Returns the empty path for resources in the module root.
- * <p>
- * A resource's module-relative path indicates the route from the module
- * to the resource. Within a module, there is exactly one such path
- * for any given resource. The returned path never has a trailing separator.
- * </p>
- * @return the module-relative path of this resource delta
- * @see IModuleResource#getModuleRelativePath()
- */
- public IPath getModuleRelativePath();
-
- /**
- * Finds and returns the descendent delta identified by the given path in
- * this delta, or <code>null</code> if no such descendent exists.
- * The supplied path may be absolute or relative; in either case, it is
- * interpreted as relative to this delta. Trailing separators are ignored.
- * If the path is empty this delta is returned.
- * <p>
- * This is a convenience method to avoid manual traversal of the delta
- * tree in cases where the listener is only interested in changes to
- * particular resources. Calling this method will generally be
- * faster than manually traversing the delta to a particular descendent.
- * </p>
- * @param path the path of the desired descendent delta
- * @return the descendent delta, or <code>null</code> if no such
- * descendent exists in the delta
- * @plannedfor 2.0
- */
- //public IModuleResourceDelta findMember(IPath path);
-
- /**
- * Returns resource deltas for all children of this resource
- * whose kind is included in the given mask. Kind masks are formed
- * by the bitwise or of <code>IResourceDelta</code> kind constants.
- * Returns an empty array if there are no affected children.
- * <p>
- * This is a convenience method, fully equivalent to:
- * <pre>
- * getAffectedChildren(kindMask, IResource.NONE);
- * </pre>
- * Team-private member resources are <b>not</b> included in the result.
- * </p>
- *
- * @param kindMask a mask formed by the bitwise or of <code>IResourceDelta </code>
- * delta kind constants
- * @return the resource deltas for all affected children
- * @see IResourceDelta#ADDED
- * @see IResourceDelta#REMOVED
- * @see IResourceDelta#CHANGED
- * @see #getAffectedChildren(int)
- */
- //public IModuleResourceDelta[] getAffectedChildren(int kindMask);
-
- /**
- * Accepts the given visitor.
- * The only kinds of resource deltas visited
- * are <code>ADDED</code>, <code>REMOVED</code>,
- * and <code>CHANGED</code>.
- * The visitor's <code>visit</code> method is called with this
- * resource delta if applicable. If the visitor returns <code>true</code>,
- * the resource delta's children are also visited.
- * <p>
- * This is a convenience method, fully equivalent to
- * <code>accept(visitor, IResource.NONE)</code>.
- * Although the visitor will be invoked for this resource delta, it will not be
- * invoked for any team-private member resources.
- * </p>
- *
- * @param visitor the visitor
- * @exception CoreException if the visitor failed with this exception.
- * @see IResourceDeltaVisitor#visit(IResourceDelta)
- */
- //public void accept(IModuleResourceDeltaVisitor visitor) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IURLProvider.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IURLProvider.java
deleted file mode 100644
index c8573e946..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IURLProvider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import java.net.URL;
-
-import org.eclipse.wst.server.core.IModule;
-/**
- * An interface for a server delegate that can provide URLs for a module published
- * to the server.
- *
- * @since 1.0
- */
-public interface IURLProvider {
- /**
- * Return the base URL of this module on the server. (e.g.
- * "http://localhost:8080/myProject")
- * <p>
- * This method may return null if this server does not have a valid configuration
- * or if the server is not running. The returned URL must not end in a trailing
- * slash.
- * </p>
- * <p>
- * If the module is null, the returned URL will just be to the root of
- * the server (e.g. "http://localhost:8080")
- * </p>
- * <p>
- * If the module is not already added to the server, the method will return
- * as close an approximation as possible. (for instance, for a J2EE web project
- * it may use the project's context root, which may not be the same when deployed
- * to a server)
- * </p>
- *
- * @param module com.ibm.etools.server.core.IModule
- * @return java.net.URL
- */
- public URL getModuleRootURL(IModule module);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/InternalInitializer.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/InternalInitializer.java
deleted file mode 100644
index dfe441d73..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/InternalInitializer.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.internal.ModuleFactory;
-import org.eclipse.wst.server.core.internal.Runtime;
-import org.eclipse.wst.server.core.internal.Server;
-/**
- * This is an internal utility class that is used by the server framework.
- * It is not API and should never be used by clients.
- */
-public class InternalInitializer {
- /**
- * Internal method - do not call.
- *
- * @param delegate
- * @param newServer
- * @param monitor
- */
- public static void initializeServerDelegate(ServerDelegate delegate, Server newServer, IProgressMonitor monitor) {
- delegate.initialize(newServer, monitor);
- }
-
- /**
- * Internal method - do not call.
- *
- * @param delegate
- * @param newServer
- * @param monitor
- */
- public static void initializeServerBehaviourDelegate(ServerBehaviourDelegate delegate, Server newServer, IProgressMonitor monitor) {
- delegate.initialize(newServer, monitor);
- }
-
- /**
- * Internal method - do not call.
- *
- * @param delegate
- * @param newRuntime
- * @param monitor
- */
- public static void initializeRuntimeDelegate(RuntimeDelegate delegate, Runtime newRuntime, IProgressMonitor monitor) {
- delegate.initialize(newRuntime, monitor);
- }
-
- /**
- * Internal method - do not call.
- *
- * @param delegate
- * @param newModuleFactory
- * @param monitor
- */
- public static void initializeModuleFactoryDelegate(ModuleFactoryDelegate delegate, ModuleFactory newModuleFactory, IProgressMonitor monitor) {
- delegate.initialize(newModuleFactory, monitor);
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/LaunchableAdapterDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/LaunchableAdapterDelegate.java
deleted file mode 100644
index 47fd4e813..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/LaunchableAdapterDelegate.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.server.core.IModuleArtifact;
-import org.eclipse.wst.server.core.IServer;
-/**
- * This interface, typically implemented by the server code, converts from
- * an IModuleArtifact to an object launchable on the server.
- *
- * <p>This is the implementation of a launchableAdapter extension point.</p>
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>launchableAdapters</code> extension point.
- * </p>
- *
- * @since 1.0
- */
-public abstract class LaunchableAdapterDelegate {
- /**
- * Returns a launchable object from this module artifact.
- *
- * @param server the server
- * @param moduleArtifact a module artifact
- * [issue: if the launchable object cannot be found, should it throw a CoreExcpetion or return null?]
- * @return the launchable object
- * @throws CoreException if there was an error doing the conversion
- */
- public abstract Object getLaunchable(IServer server, IModuleArtifact moduleArtifact) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleArtifactAdapterDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleArtifactAdapterDelegate.java
deleted file mode 100644
index c3528b75e..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleArtifactAdapterDelegate.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.wst.server.core.IModuleArtifact;
-/**
- * A module artifact adapter converts from some view's model
- * object into a module artifact that is recognized by one or
- * more server types.
- *
- * <p>This is the implementation of a moduleArtifactAdapter
- * extension point.</p>
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>moduleArtifactAdapters</code> extension point.
- * </p>
- *
- * @since 1.0
- */
-public abstract class ModuleArtifactAdapterDelegate {
- /**
- * Converts from an arbitrary object to an module artifact.
- *
- * @param obj an arbitrary object from a view or editor
- * @return an module artifact, or <code>null</code> if this
- * adapter does not recognize or cannot adapt the object
- */
- public abstract IModuleArtifact getModuleArtifact(Object obj);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleDelegate.java
deleted file mode 100644
index d63f7cd91..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleDelegate.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.server.core.IModule;
-/**
- * A module delegate provides a mechanism for discovering information
- * about individual modules. Modules are returned from module factory
- * delegates; their delegates are created when
- * ModuleFactoryDelegate.createModule() is called.
- * <p>
- * When the module needs to be given a delegate, the delegate class
- * specified for the module is instantiated with a 0-argument
- * constructor.
- * </p>
- * <p>
- * Module delegates may keep state in instance fields, but that state is
- * transient and will not be persisted across workbench sessions.
- * </p>
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>moduleFactories</code> extension point.
- * </p>
- *
- * @see org.eclipse.wst.server.core.IModule
- * @see ModuleFactoryDelegate
- * @since 1.0
- */
-public abstract class ModuleDelegate {
- private IModule module;
-
- /**
- * Delegates must have a public 0-arg constructor.
- */
- public ModuleDelegate() {
- // do nothing
- }
-
- /**
- * Initializes this module delegate with its life-long module instance.
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- *
- * @param newModule the module instance
- */
- public final void initialize(IModule newModule) {
- this.module = newModule;
- initialize();
- }
-
- /**
- * Initializes this module delegate. This method gives delegates a chance
- * to do their own initialization.
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- */
- public void initialize() {
- // do nothing
- }
-
- /**
- * Returns the module that this module delegate corresponds to.
- *
- * @return the module
- */
- public IModule getModule() {
- return module;
- }
-
- /**
- * Validates this module instance. Subclasses should
- * override and call super.validate() for basic validation.
- * <p>
- * This method is called by the web server core framework.
- * Clients should never call this method.
- * </p>
- *
- * @return a status object with code <code>IStatus.OK</code> if this
- * module is valid, otherwise a status object indicating what is
- * wrong with it
- */
- public abstract IStatus validate();
-
- /**
- * Returns the child modules of this module.
- *
- * @return a possibly empty array of child modules
- */
- public abstract IModule[] getChildModules();
-
- /**
- * Returns the current array of module artifacts.
- *
- * @return a possibly empty array containing the module resources
- * @throws CoreException thrown if there is a problem getting the members
- */
- public abstract IModuleResource[] members() throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryDelegate.java
deleted file mode 100644
index 461d813bd..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryDelegate.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.internal.Module;
-import org.eclipse.wst.server.core.internal.ModuleFactory;
-/**
- * A module factory delegate provides a mechanism for discovering
- * modules. A module factory delegate is specified by the
- * <code>class</code> attribute of a <code>moduleFactories</code> extension.
- * <p>
- * When the module factory needs to be given a delegate, the delegate class
- * specified for the module factory is instantiated with a 0-argument
- * constructor.
- * </p>
- * <p>
- * Module factory delegates may keep state in instance fields, but that state is
- * transient and will not be persisted across workbench sessions.
- * </p>
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>moduleFactories</code> extension point.
- * </p>
- *
- * @see org.eclipse.wst.server.core.IModule
- * @see ModuleDelegate
- * @since 1.0
- */
-public abstract class ModuleFactoryDelegate {
- private ModuleFactory factory;
-
- /**
- * Delegates must have a public 0-arg constructor.
- */
- public ModuleFactoryDelegate() {
- // do nothing
- }
-
- /**
- * Initializes this module factory delegate with its life-long module
- * factory instance.
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- *
- * @param newFactory the module factory instance
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- final void initialize(ModuleFactory newFactory, IProgressMonitor monitor) {
- factory = newFactory;
- initialize();
- }
-
- /**
- * Initializes this module factory delegate. This method gives delegates a chance
- * to do their own initialization.
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- */
- public void initialize() {
- // do nothing
- }
-
- /**
- * Returns the id of this factory.
- * Each factory has a distinct id, fixed for its lifetime. Ids are intended to
- * be used internally as keys; they are not intended to be shown to end users.
- *
- * @return the factory id
- */
- protected final String getId() {
- return factory.getId();
- }
-
- /**
- * Clears the cache of modules returned by getModules(). Delegates can call this
- * method if they know that the results of the last call to getModules() is
- * invalid and should be refreshed.
- *
- * @see #getModules()
- */
- public void clearModuleCache() {
- factory.clearModuleCache();
- }
-
- /**
- * Creates a module instance with the given static information. This method is used
- * by module factory delegates to create module instances.
- *
- * @param id the module id
- * @param name the module name
- * @param type the module type id
- * @param version the module version id
- * @param project the project that the module is contained in
- * @return a module instance
- */
- protected final IModule createModule(String id, String name, String type, String version, IProject project) {
- return new Module(factory, id, name, type, version, project);
- }
-
- /**
- * Creates the module delegate for a module with the given information.
- * This method is called when a client needs to access the module delegate
- * associated with the given module.
- *
- * @param module a module
- * @return the module delegate
- */
- public abstract ModuleDelegate getModuleDelegate(IModule module);
-
- /**
- * Return all modules created by this factory.
- * <p>
- * This method is normally called by the web server core framework.
- * Clients (other than the delegate) should never call this method.
- * </p>
- * <p>
- * A new array is returned on each call, so clients may store or modify the result.
- * </p>
- *
- * @return a possibly-empty array of modules {@link IModule}
- */
- public abstract IModule[] getModules();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublishOperation.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublishOperation.java
deleted file mode 100644
index 2922f62a7..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublishOperation.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.TaskModel;
-/**
- * An operation that will be executed during publishing.
- *
- * [issue: EY It is not clear to me that when this task will be run. Will the place where the
- * task is being run depend on the server, e.g. the TDC tasks for the v6 server should be run
- * after the server is started the modules are added to the server; however, the EJB deploy task
- * makes more sense to be run before adding the project to the server.]
- *
- * @since 1.0
- */
-public abstract class PublishOperation {
- private TaskModel model;
- private String label;
- private String description;
-
- /**
- * Operation kind constant (value 0) indicating that the operation
- * does not need be executed.
- *
- * @see #getKind()
- */
- public static final int OPTIONAL = 0;
-
- /**
- * Operation kind constant (value 1) indicating that the operation
- * should be executed.
- *
- * @see #getKind()
- */
- public static final int PREFERRED = 1;
-
- /**
- * Operation kind constant (value 2) indicating that the operation
- * must be executed.
- *
- * @see #getKind()
- */
- public static final int REQUIRED = 2;
-
- /**
- * Create a new operation. The label and description must be supplied
- * by overriding the getLabel() and getDescription() methods.
- */
- public PublishOperation() {
- // do nothing
- }
-
- /**
- * Create a new operation with the given label and description.
- *
- * @param label a translated label for the operation
- * @param description the operation description
- */
- public PublishOperation(String label, String description) {
- this.label = label;
- this.description = description;
- }
-
- /**
- * Returns the kind of this operation. Operations can either be OPTIONAL
- * (do not have to be executed), PREFERRED (should be executed), or
- * REQUIRED (must be executed).
- *
- * @return one of the kind constants (e.g. <code>REQUIRED</code>)
- * declared on {@link PublishOperation}
- */
- public int getKind() {
- return OPTIONAL;
- }
-
- /**
- * Returns the order (index/priority) of the task that will be run. The task with
- * a smaller order value will be run before the task with a bigger order value.
- * For tasks that have the same order value, the order of running those task are
- * not guaranteed.
- *
- * @return the order (index/priority) of the task that will be run.
- */
- public abstract int getOrder();
-
- /**
- * Returns the displayable label for this operation.
- * <p>
- * Note that this label is appropriate for the current locale.
- * </p>
- *
- * @return a displayable label for this operation
- */
- public String getLabel() {
- return label;
- }
-
- /**
- * Returns the displayable description for this operation.
- * <p>
- * Note that this description is appropriate for the current locale.
- * </p>
- *
- * @return a displayable description for this operation
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * Return the task model.
- * <p>
- * A task model contains information about the overall task flow and allows
- * tasks to store and retreive data. Its usage allows mutliple tasks to be
- * chained together and share data from the output of one task to the input
- * of another.
- * </p>
- *
- * @return the task model
- */
- public TaskModel getTaskModel() {
- return model;
- }
-
- /**
- * Set the task model.
- * <p>
- * A task model contains information about the overall task flow and allows
- * tasks to store and retreive data. Its usage allows mutliple tasks to be
- * chained together and share data from the output of one task to the input
- * of another.
- * </p>
- *
- * @param taskModel the task model
- */
- public void setTaskModel(TaskModel taskModel) {
- this.model = taskModel;
- }
-
- /**
- * Execute (perform) the operation.
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @param info the IAdaptable (or <code>null</code>) provided by the
- * caller in order to supply UI information for prompting the
- * user if necessary. When this parameter is not
- * <code>null</code>, it should minimally contain an adapter
- * for the org.eclipse.swt.widgets.Shell.class.
- * @throws CoreException if there was an error while executing the task
- */
- public abstract void execute(IProgressMonitor monitor, IAdaptable info) throws CoreException;
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublishTaskDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublishTaskDelegate.java
deleted file mode 100644
index 38527363e..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublishTaskDelegate.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import java.util.List;
-
-import org.eclipse.wst.server.core.IServer;
-/**
- * A publish task delegate.
- *
- * <p>This is the implementation of a publishTask extension point.</p>
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>publishTask</code> extension point.
- * </p>
- *
- * @since 1.0
- */
-public abstract class PublishTaskDelegate {
- /**
- * Returns the tasks that should be performed during publishing.
- *
- * @param server the server
- * @param modules a list containing IModule arrays
- * @return the tasks that should be performed on the server.
- */
- public PublishOperation[] getTasks(IServer server, List modules) {
- return null;
- }
-
- /**
- * Returns the tasks that should be performed during publishing.
- *
- * @param server the server
- * @param modules a list containing IModule arrays
- * @param kind one of the IServer.PUBLISH_XX constants.
- * @param kindList one of the IServer publish change constants.
- * @return the tasks that should be performed on the server.
- */
- public PublishOperation[] getTasks(IServer server, int kind, List modules, List kindList) {
- return getTasks(server, modules);
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeDelegate.java
deleted file mode 100644
index 3cac8f57f..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeDelegate.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.core.internal.Messages;
-import org.eclipse.wst.server.core.internal.Runtime;
-import org.eclipse.wst.server.core.internal.RuntimeWorkingCopy;
-import org.eclipse.wst.server.core.internal.ServerPlugin;
-/**
- * A runtime delegate provides the implementation for various
- * generic and server-type-specific operations for a specific type of runtime.
- * A runtime delegate is specified by the
- * <code>class</code> attribute of a <code>runtimeTypes</code> extension.
- * <p>
- * When the runtime instance needs to be given a delegate, the delegate class
- * specified for the runtime type is instantiated with a 0-argument constructor
- * and primed with <code>delegate.initialize(runtime)</code>,
- * which it is expected to hang on to. Later, when
- * <code>delegate.dispose()</code> is called as the runtime instance is
- * being discarded, the delegate is expected to let go of the runtime instance.
- * </p>
- * <p>
- * RuntimeDelegate supports an open-ended set of attribute-value pairs. All
- * state stored in this manner will be saved when the runtime working copy is
- * saved, and persisted across workbench sessions.
- * Runtime delegates may keep state in instance fields, but that state is
- * transient and will not be persisted across workbench sessions. To save state
- * across workbench sessions, it must be persisted using the attributes.
- * </p>
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>runtimeTypes</code> extension point.
- * </p>
- *
- * @see IRuntime
- * @see IRuntimeWorkingCopy
- * @since 1.0
- */
-public abstract class RuntimeDelegate {
- private Runtime runtime;
- private RuntimeWorkingCopy runtimeWC;
-
- /**
- * Delegates must have a public 0-arg constructor.
- */
- public RuntimeDelegate() {
- // do nothing
- }
-
- /**
- * Initializes this runtime delegate with its life-long runtime instance.
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- *
- * @param newRuntime the runtime instance
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- final void initialize(Runtime newRuntime, IProgressMonitor monitor) {
- runtime = newRuntime;
- if (runtime instanceof RuntimeWorkingCopy)
- runtimeWC = (RuntimeWorkingCopy) runtime;
- initialize();
- }
-
- /**
- * Initializes this runtime delegate. This method gives delegates a chance
- * to do their own initialization.
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- */
- protected void initialize() {
- // do nothing
- }
-
- /**
- * Returns the runtime that this runtime delegate corresponds to.
- *
- * @return the runtime
- */
- public final IRuntime getRuntime() {
- return runtime;
- }
-
- /**
- * Returns the runtime working copy that this runtime delegate corresponds to.
- *
- * @return the runtime
- */
- public final IRuntimeWorkingCopy getRuntimeWorkingCopy() {
- return runtimeWC;
- }
-
- /**
- * Validates this runtime instance. Subclasses should
- * override and call super.validate() for basic validation.
- * <p>
- * This method is called by the web server core framework,
- * in response to a call to <code>IRuntime.validate(IProgressMonitor)</code>.
- * Clients should never call this method.
- * </p>
- *
- * @return a status object with code <code>IStatus.OK</code> if this
- * runtime is valid, otherwise a status object indicating what is
- * wrong with it
- */
- public IStatus validate() {
- if (runtime.getName() == null || runtime.getName().length() == 0)
- return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorRuntimeName, null);
-
- if (isNameInUse())
- return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorDuplicateRuntimeName, null);
-
- IPath path = runtime.getLocation();
- if (path == null || path.isEmpty())
- return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, "", null);
-
- return Status.OK_STATUS;
- }
-
- /**
- * Returns <code>true</code> if the current name is already in use.
- *
- * @return <code>true</code> if the name is in use, and <code>false</code>
- * otherwise
- */
- private boolean isNameInUse() {
- IRuntime orig = runtime;
- if (runtimeWC != null)
- orig = runtimeWC.getOriginal();
-
- IRuntime[] runtimes = ServerCore.getRuntimes();
- if (runtimes != null) {
- int size = runtimes.length;
- for (int i = 0; i < size; i++) {
- if (orig != runtimes[i] && runtime.getName().equals(runtimes[i].getName()))
- return true;
- }
- }
- return false;
- }
-
- /**
- * Returns the value of the specified int-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, int)
- */
- protected final int getAttribute(String id, int defaultValue) {
- return runtime.getAttribute(id, defaultValue);
- }
-
- /**
- * Returns the value of the specified boolean-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, boolean)
- */
- protected final boolean getAttribute(String id, boolean defaultValue) {
- return runtime.getAttribute(id, defaultValue);
- }
-
- /**
- * Returns the value of the specified String-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, String)
- */
- protected final String getAttribute(String id, String defaultValue) {
- return runtime.getAttribute(id, defaultValue);
- }
-
- /**
- * Returns the value of the specified List-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, List)
- */
- protected final List getAttribute(String id, List defaultValue) {
- return runtime.getAttribute(id, defaultValue);
- }
-
- /**
- * Returns the value of the specified Map-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, Map)
- */
- protected final Map getAttribute(String id, Map defaultValue) {
- return runtime.getAttribute(id, defaultValue);
- }
-
- /**
- * Disposes of this runtime delegate.
- * <p>
- * This method is called by the web server core framework.
- * Clients should never call this method.
- * </p>
- * <p>
- * Implementations are expected to let go of the delegate's reference
- * to the runtime, deregister listeners, etc.
- * </p>
- */
- public void dispose() {
- // do nothing
- }
-
- /**
- * Initializes this runtime with default values. This method is called when
- * a new runtime is created so that the runtime can be initialized with
- * meaningful values.
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- public void setDefaults(IProgressMonitor monitor) {
- // do nothing
- }
-
- /**
- * Sets the value of the specified integer-valued attribute of this
- * element.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, int)
- */
- protected final void setAttribute(String id, int value) {
- runtimeWC.setAttribute(id, value);
- }
-
- /**
- * Sets the value of the specified boolean-valued attribute of this
- * element.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, boolean)
- */
- protected final void setAttribute(String id, boolean value) {
- runtimeWC.setAttribute(id, value);
- }
-
- /**
- * Sets the value of the specified string-valued attribute of this
- * element.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, String)
- */
- protected final void setAttribute(String id, String value) {
- runtimeWC.setAttribute(id, value);
- }
-
- /**
- * Sets the value of the specified list-valued attribute of this
- * element. The list may only contain String values.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, List)
- */
- protected final void setAttribute(String id, List value) {
- runtimeWC.setAttribute(id, value);
- }
-
- /**
- * Sets the value of the specified map-valued attribute of this
- * element. The map may only contain String values.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, Map)
- */
- protected final void setAttribute(String id, Map value) {
- runtimeWC.setAttribute(id, value);
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeLocatorDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeLocatorDelegate.java
deleted file mode 100644
index c2a9027d1..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeLocatorDelegate.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
-/**
- * A runtime locator provides the ability to locate or search for additional
- * runtimes of a particular type.
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>runtimeLocators</code> extension point.
- * </p>
- *
- * @since 1.0
- */
-public abstract class RuntimeLocatorDelegate {
- /**
- * A callback listener used to report progress.
- *
- * @since 1.0
- */
- public interface IRuntimeSearchListener {
- /**
- * Called when a new runtime is found by the locator.
- * The runtime must never be null.
- *
- * @param runtime the runtime that was found.
- */
- public void runtimeFound(IRuntimeWorkingCopy runtime);
- }
-
- /**
- * Searches for local runtimes.
- * It uses the callback listener to report runtimes that are found.
- * The path contains the absolute path of the folder to search in,
- * or <code>null</code> to search the entire machine.
- *
- * @param path the path to search for runtimes in
- * @param listener a listener to report status to
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- public abstract void searchForRuntimes(IPath path, IRuntimeSearchListener listener, IProgressMonitor monitor);
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeTargetHandlerDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeTargetHandlerDelegate.java
deleted file mode 100644
index 941392e34..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/RuntimeTargetHandlerDelegate.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IRuntimeTargetHandler;
-/**
- * A runtime target handler is used when associating a runtime with
- * a particular project. It has the ability to make any changes it requires
- * on the projects - adding or removing files, setting up the classpath, etc.
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>runtimeTargetHandlers</code> extension point.
- * </p>
- * <p>
- *
- * @deprecated This function is deprecated.
- */
-public abstract class RuntimeTargetHandlerDelegate {
- /**
- * Initializes the runtime target handler.
- *
- * @param newHandler the new handler
- */
- public final void initialize(IRuntimeTargetHandler newHandler) {
- throw new RuntimeException("Attempt to use deprecated code");
- }
-
- /**
- * Returns the runtime target handler that this delegate is associated with.
- *
- * @return the runtime target handler
- */
- public IRuntimeTargetHandler getRuntimeTargetHandler() {
- throw new RuntimeException("Attempt to use deprecated code");
- }
-
- /**
- * Set the runtime target on the given project.
- *
- * @param project the project to set the runtime on
- * @param runtime the target runtime
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException thrown if there is a problem setting the runtime
- */
- public abstract void setRuntimeTarget(IProject project, IRuntime runtime, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Remove the runtime target from the given project.
- *
- * @param project the project to remove the runtime from
- * @param runtime the target runtime
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException thrown if there is a problem removing the runtime
- */
- public abstract void removeRuntimeTarget(IProject project, IRuntime runtime, IProgressMonitor monitor) throws CoreException;
-} \ No newline at end of file
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
deleted file mode 100644
index 0b284ba0d..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
+++ /dev/null
@@ -1,828 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.runtime.*;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.internal.Messages;
-import org.eclipse.wst.server.core.internal.ProgressUtil;
-import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.internal.ServerPlugin;
-import org.eclipse.wst.server.core.internal.Trace;
-/**
- * A server delegate provides the implementation for various
- * generic and server-type-specific operations for a specific type of server.
- * A server delegate is specified by the
- * <code>class</code> attribute of a <code>serverTypes</code> extension.
- * <p>
- * When the server instance needs to be given a delegate, the delegate class
- * specified for the server type is instantiated with a 0-argument constructor
- * and primed with <code>delegate.initialize(((IServerState)server)</code>,
- * which it is expected to hang on to. Later, when
- * <code>delegate.dispose()</code> is called as the server instance is
- * being discarded, the delegate is expected to let go of the server instance.
- * </p>
- * <p>
- * Server delegates may keep state in instance fields, but that state is
- * transient and will not be persisted across workbench sessions.
- * </p>
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>serverTypes</code> extension point.
- * </p>
- *
- * @see org.eclipse.wst.server.core.IServer
- * @see org.eclipse.wst.server.core.IServerWorkingCopy
- * @since 1.0
- */
-public abstract class ServerBehaviourDelegate {
- private Server server;
-
- /**
- * Publish kind constant (value 0) for no change.
- *
- * @see #publishModule(int, int, IModule[], IProgressMonitor)
- */
- public static final int NO_CHANGE = 0;
-
- /**
- * Publish kind constant (value 1) for added resources.
- *
- * @see #publishModule(int, int, IModule[], IProgressMonitor)
- */
- public static final int ADDED = 1;
-
- /**
- * Publish kind constant (value 2) for changed resources.
- *
- * @see #publishModule(int, int, IModule[], IProgressMonitor)
- */
- public static final int CHANGED = 2;
-
- /**
- * Publish kind constant (value 3) for removed resources.
- *
- * @see #publishModule(int, int, IModule[], IProgressMonitor)
- */
- public static final int REMOVED = 3;
-
- /**
- * Delegates must have a public 0-arg constructor.
- */
- public ServerBehaviourDelegate() {
- // do nothing
- }
-
- /**
- * Initializes this server delegate with its life-long server instance.
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- *
- * @param newServer the server instance
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- final void initialize(Server newServer, IProgressMonitor monitor) {
- server = newServer;
- initialize(monitor);
- }
-
- /**
- * Initializes this server delegate. This method gives delegates a chance
- * to do their own initialization.
- * <p>
- * If the server state is initially unknown, this method should attempt
- * to connect to the server and update the state. On servers where the
- * state may change, this is also an excellent place to create a background
- * thread that will constantly ping the server (or have a listener) to
- * update the server state as changes occur.
- * </p>
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- protected void initialize(IProgressMonitor monitor) {
- // do nothing
- }
-
- /**
- * Returns the server that this server delegate corresponds to.
- *
- * @return the server
- */
- public final IServer getServer() {
- return server;
- }
-
- /**
- * Sets the current state of this server.
- *
- * @param state the current state of the server, one of the state
- * constants defined by {@link IServer}
- * @see IServer#getServerState()
- */
- protected final void setServerState(int state) {
- server.setServerState(state);
- }
-
- /**
- * Sets the ILaunchManager mode that the server is running in. The server
- * implementation will automatically return <code>null</code> to clients
- * when the server is stopped, so you only need to update the mode when
- * it changes.
- *
- * @param mode the mode in which a server is running, one of the mode constants
- * defined by {@link org.eclipse.debug.core.ILaunchManager}
- */
- protected final void setMode(String mode) {
- server.setMode(mode);
- }
-
- /**
- * Sets the server restart state.
- *
- * @param state <code>true</code> if the server needs to be restarted,
- * and <code>false</code> otherwise
- */
- protected final void setServerRestartState(boolean state) {
- server.setServerRestartState(state);
- }
-
- /**
- * Sets the server publish state.
- *
- * @param state the current publish state of the server, one of the
- * publish constants defined by {@link IServer}
- */
- protected final void setServerPublishState(int state) {
- server.setServerPublishState(state);
- }
-
- /**
- * Hook to fire an event when a module state changes.
- *
- * @param module the module
- * @param state the current state of the module, one of the state
- * constants defined by {@link IServer}
- */
- protected final void setModuleState(IModule[] module, int state) {
- server.setModuleState(module, state);
- }
-
- /**
- * Sets the module publish state.
- *
- * @param module the module
- * @param state the current publish state of the module, one of the
- * publish constants defined by {@link IServer}
- */
- protected final void setModulePublishState(IModule[] module, int state) {
- server.setModulePublishState(module, state);
- }
-
- /**
- * Sets the module restart state.
- *
- * @param module the module
- * @param state <code>true</code> if the module needs to be restarted,
- * and <code>false</code> otherwise
- */
- protected final void setModuleRestartState(IModule[] module, boolean state) {
- server.setModuleRestartState(module, state);
- }
-
- /**
- * Disposes of this server delegate.
- * <p>
- * This method is called by the web server core framework.
- * Clients should never call this method.
- * </p>
- * <p>
- * Implementations are expected to let go of the delegate's reference
- * to the server, deregister listeners, etc.
- * </p>
- */
- public void dispose() {
- // do nothing
- }
-
- /**
- * Methods called to notify that publishing is about to begin.
- * This allows the server to open a connection to the server
- * or get any global information ready.
- * <p>
- * This method is called by the server core framework,
- * in response to a call to <code>IServer.publish()</code>.
- * Clients should never call this method.
- * </p>
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there is a problem starting the publish
- */
- protected void publishStart(IProgressMonitor monitor) throws CoreException {
- // do nothing
- }
-
- /**
- * Publish the server.
- * <p>
- * This method is called by the server core framework,
- * in response to a call to <code>IServer.publish()</code>.
- * Clients should never call this method.
- * </p>
- *
- * @param kind one of the IServer.PUBLISH_XX constants. Valid values are
- * <ul>
- * <li><code>PUBLSIH_FULL</code>- indicates a full publish.</li>
- * <li><code>PUBLISH_INCREMENTAL</code>- indicates a incremental publish.
- * <li><code>PUBLSIH_AUTO</code>- indicates an automatic incremental publish.</li>
- * <li><code>PUBLISH_CLEAN</code>- indicates a clean request. Clean throws
- * out all state and cleans up the module on the server before doing a
- * full publish.
- * </ul>
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there is a problem publishing the server
- */
- protected void publishServer(int kind, IProgressMonitor monitor) throws CoreException {
- // do nothing
- }
-
- /**
- * Publish a single module to the server.
- * <p>
- * This method is called by the server core framework,
- * in response to a call to <code>IServer.publish()</code>.
- * Clients should never call this method directly.
- * </p>
- * <p>
- * If the deltaKind is IServer.REMOVED, the module may have been completely
- * deleted and does not exist anymore. In this case, a dummy module (with the
- * correct id) will be passed to this method.
- * </p>
- * <p>
- * It is recommended that clients implementing this method be responsible for
- * setting the module state.
- * </p>
- *
- * @param kind one of the IServer.PUBLISH_XX constants. Valid values are:
- * <ul>
- * <li><code>PUBLSIH_FULL</code>- indicates a full publish.</li>
- * <li><code>PUBLISH_INCREMENTAL</code>- indicates a incremental publish.
- * <li><code>PUBLSIH_AUTO</code>- indicates an automatic incremental publish.</li>
- * <li><code>PUBLISH_CLEAN</code>- indicates a clean request. Clean throws
- * out all state and cleans up the module on the server before doing a
- * full publish.
- * </ul>
- * @param module the module to publish
- * @param deltaKind one of the IServer publish change constants. Valid values are:
- * <ul>
- * <li><code>ADDED</code>- indicates the module has just been added to the server
- * and this is the first publish.
- * <li><code>NO_CHANGE</code>- indicates that nothing has changed in the module
- * since the last publish.</li>
- * <li><code>CHANGED</code>- indicates that the module has been changed since
- * the last publish. Call <code>getPublishedResourceDelta()</code> for
- * details of the change.
- * <li><code>REMOVED</code>- indicates the module has been removed and should be
- * removed/cleaned up from the server.
- * </ul>
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there is a problem publishing the module
- */
- protected void publishModule(int kind, int deltaKind, IModule[] module, IProgressMonitor monitor) throws CoreException {
- // do nothing
- }
-
- /**
- * Methods called to notify that publishing has finished.
- * The server can close any open connections to the server
- * and do any cleanup operations.
- * <p>
- * This method is called by the server core framework,
- * in response to a call to <code>IServer.publish()</code>.
- * Clients should never call this method.
- * </p>
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there is a problem stopping the publish
- */
- protected void publishFinish(IProgressMonitor monitor) throws CoreException {
- // do nothing
- }
-
- /**
- * Configure the given launch configuration to start this server. This method is called whenever
- * the server is started to ensure that the launch configuration is accurate and up to date.
- * This method should not blindly update the launch configuration in cases where the user has
- * access to change the launch configuration by hand.
- *
- * @param workingCopy a launch configuration working copy
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there is an error setting up the configuration
- */
- public void setupLaunchConfiguration(ILaunchConfigurationWorkingCopy workingCopy, IProgressMonitor monitor) throws CoreException {
- // do nothing
- }
-
- /**
- * Restart this server. The server should use the server
- * listener to notify progress. It must use the same debug
- * flags as was originally passed into the start() method.
- *
- * This method is used if there is a quick/better way to restart
- * the server. If it throws a CoreException, the normal stop/start
- * actions will be used.
- *
- * @param launchMode the mode to restart in, one of the mode constants
- * defined by {@link org.eclipse.debug.core.ILaunchManager}
- * @throws CoreException if there was a problem restarting
- */
- public void restart(String launchMode) throws CoreException {
- throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, "Could not restart", null));
- }
-
- /**
- * Returns whether the given module can be restarted.
- * <p>
- * [issue: It's unclear whether this operations is guaranteed to be fast
- * or whether it could involve communication with any actual
- * server. If it is not fast, the method should take a progress
- * monitor.]
- * </p>
- *
- * @param module the module
- * @return <code>true</code> if the given module can be
- * restarted, and <code>false</code> otherwise
- */
- public boolean canControlModule(IModule[] module) {
- return false;
- }
-
- /**
- * Starts the given module on the server. See the specification of
- * {@link IServer#startModule(IModule[], IServer.IOperationListener)}
- * for further details.
- * <p>
- * The implementation should update the module sync state and fire
- * an event for the module.
- * </p>
- * <p>
- * This method will throw an exception if the module does not exist on
- * the server.
- * </p>
- * <p>
- * [issue: Since this method is ascynchronous, is there
- * any need for the progress monitor?]
- * </p>
- *
- * @param module the module to be started
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @exception CoreException if an error occurs while trying to restart the module
- */
- public void startModule(IModule[] module, IProgressMonitor monitor) throws CoreException {
- // do nothing
- }
-
- /**
- * Stops the given module on the server. See the specification of
- * {@link IServer#stopModule(IModule[], IServer.IOperationListener)}
- * for further details.
- * <p>
- * The implementation should update the module sync state and fire
- * an event for the module.
- * </p>
- * <p>
- * This method will throw an exception if the module does not exist on
- * the server.
- * </p>
- * <p>
- * [issue: Since this method is ascynchronous, is there
- * any need for the progress monitor?]
- * </p>
- *
- * @param module the module to be stopped
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @exception CoreException if an error occurs while trying to restart the module
- */
- public void stopModule(IModule[] module, IProgressMonitor monitor) throws CoreException {
- // do nothing
- }
-
- /**
- * Shuts down and stops this server. The server should return from this method
- * quickly and use the server listener to notify shutdown progress.
- * <p>
- * If force is <code>false</code>, it will attempt to stop the server
- * normally/gracefully. If force is <code>true</code>, then the server
- * process will be terminated any way that it can.
- * </p>
- * <p>
- * [issue: There is no way to communicate failure to the
- * client. Given that this operation can go awry, there probably
- * should be a mechanism that allows failing asynch operations
- * to be diagnosed.]
- * </p>
- * @param force <code>true</code> to kill the server, or <code>false</code>
- * to stop normally
- */
- public abstract void stop(boolean force);
-
- /**
- * Returns the current module resources.
- *
- * @param module the module
- * @return an array containing the module's resources
- */
- protected IModuleResource[] getResources(IModule[] module) {
- return server.getResources(module);
- }
-
- /**
- * Returns the module resources that have been published to the server.
- *
- * <p>
- * If the module has just been added to the server, an empty list will
- * be returned. If the module has never existed on the server, a CoreException
- * will be thrown.
- * </p>
- *
- * @param module the module
- * @return an array containing the published module resource
- */
- protected IModuleResource[] getPublishedResources(IModule[] module) {
- return server.getPublishedResources(module);
- }
-
- /**
- * Returns the delta of the current module resources that have been
- * published compared to the current state of the module.
- *
- * @param module the module
- * @return an array containing the publish resource delta
- */
- protected IModuleResourceDelta[] getPublishedResourceDelta(IModule[] module) {
- return server.getPublishedResourceDelta(module);
- }
-
- /**
- * Returns a temporary directory that the requestor can use
- * throughout it's lifecycle. This is primary to be used by
- * servers for working directories, server specific
- * files, etc.
- * <p>
- * This method directory will return the same directory on
- * each use of the workbench. If the directory is not requested
- * over a period of time, the directory may be deleted and a
- * new one will be assigned on the next request. For this
- * reason, a server may want to request the temp directory on
- * startup if it wants to store files there. In any case, the
- * server should have a backup plan to refill the directory
- * in case it has been deleted since last use.</p>
- *
- * @return a temporary directory
- */
- protected IPath getTempDirectory() {
- return server.getTempDirectory();
- }
-
- /**
- * Set a global status on the server.
- *
- * @param status the status
- */
- protected final void setServerStatus(IStatus status) {
- server.setServerStatus(status);
- }
-
- /**
- * Set a status on a specific module.
- *
- * @param module the module
- * @param status the status
- */
- protected final void setModuleStatus(IModule[] module, IStatus status) {
- server.setModuleStatus(module, status);
- }
-
- /**
- * Publish to the server.
- *
- * @param kind the publish kind
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return the publish status
- */
- public IStatus publish(int kind, IProgressMonitor monitor) {
- Trace.trace(Trace.FINEST, "-->-- Publishing to server: " + toString() + " -->--");
-
- if (getServer().getServerType().hasRuntime() && getServer().getRuntime() == null)
- return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorPublishNoRuntime, null);
-
- final List moduleList = getAllModules();
- final List deltaKindList = new ArrayList();
-
- Iterator iterator = moduleList.iterator();
- while (iterator.hasNext()) {
- IModule[] module = (IModule[]) iterator.next();
- if (hasBeenPublished(module)) {
- if (getPublishedResourceDelta(module).length == 0)
- deltaKindList.add(new Integer(ServerBehaviourDelegate.NO_CHANGE));
- else
- deltaKindList.add(new Integer(ServerBehaviourDelegate.CHANGED));
- } else
- deltaKindList.add(new Integer(ServerBehaviourDelegate.ADDED));
- }
-
- addRemovedModules(moduleList, deltaKindList);
-
- while (moduleList.size() > deltaKindList.size()) {
- deltaKindList.add(new Integer(ServerBehaviourDelegate.REMOVED));
- }
-
- PublishOperation[] tasks = getTasks(kind, moduleList, deltaKindList);
- int size = 2000 + 3500 * moduleList.size() + 500 * tasks.length;
-
- monitor = ProgressUtil.getMonitorFor(monitor);
- monitor.beginTask(NLS.bind(Messages.publishing, getServer().getName()), size);
-
- MultiStatus tempMulti = new MultiStatus(ServerPlugin.PLUGIN_ID, 0, "", null);
-
- if (monitor.isCanceled())
- return Status.CANCEL_STATUS;
-
- // start publishing
- Trace.trace(Trace.FINEST, "Calling publishStart()");
- try {
- publishStart(ProgressUtil.getSubMonitorFor(monitor, 1000));
- } catch (CoreException ce) {
- Trace.trace(Trace.INFO, "CoreException publishing to " + toString(), ce);
- return ce.getStatus();
- }
-
- // perform tasks
- if (!monitor.isCanceled()) {
- MultiStatus taskStatus = performTasks(tasks, monitor);
- if (taskStatus != null && !taskStatus.isOK())
- tempMulti.addAll(taskStatus);
- }
-
- // publish the server
- try {
- if (!monitor.isCanceled())
- publishServer(kind, ProgressUtil.getSubMonitorFor(monitor, 1000));
- } catch (CoreException ce) {
- Trace.trace(Trace.INFO, "CoreException publishing to " + toString(), ce);
- tempMulti.add(ce.getStatus());
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error publishing configuration to " + toString(), e);
- tempMulti.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorPublishing, e));
- }
-
- // publish modules
- if (!monitor.isCanceled()) {
- try {
- publishModules(kind, moduleList, deltaKindList, tempMulti, monitor);
- } catch (Exception e) {
- Trace.trace(Trace.WARNING, "Error while publishing modules", e);
- tempMulti.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorPublishing, e));
- }
- }
-
- // end the publishing
- Trace.trace(Trace.FINEST, "Calling publishFinish()");
- try {
- publishFinish(ProgressUtil.getSubMonitorFor(monitor, 500));
- } catch (CoreException ce) {
- Trace.trace(Trace.INFO, "CoreException publishing to " + toString(), ce);
- tempMulti.add(ce.getStatus());
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error stopping publish to " + toString(), e);
- tempMulti.add(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorPublishing, e));
- }
-
- if (monitor.isCanceled())
- return Status.CANCEL_STATUS;
-
- monitor.done();
-
- Trace.trace(Trace.FINEST, "--<-- Done publishing --<--");
-
- if (tempMulti.getChildren().length == 1)
- return tempMulti.getChildren()[0];
-
- MultiStatus multi = null;
- if (tempMulti.getSeverity() == IStatus.OK)
- multi = new MultiStatus(ServerPlugin.PLUGIN_ID, 0, Messages.publishingStatusOk, null);
- else if (tempMulti.getSeverity() == IStatus.INFO)
- multi = new MultiStatus(ServerPlugin.PLUGIN_ID, 0, Messages.publishingStatusInfo, null);
- else if (tempMulti.getSeverity() == IStatus.WARNING)
- multi = new MultiStatus(ServerPlugin.PLUGIN_ID, 0, Messages.publishingStatusWarning, null);
- else if (tempMulti.getSeverity() == IStatus.ERROR)
- multi = new MultiStatus(ServerPlugin.PLUGIN_ID, 0, Messages.publishingStatusError, null);
- multi.addAll(tempMulti);
-
- return multi;
- }
-
- /**
- * Publish a single module.
- *
- * @param kind a publish kind
- * @param module a module
- * @param deltaKind the delta kind
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return the status
- */
- protected IStatus publishModule(int kind, IModule[] module, int deltaKind, IProgressMonitor monitor) {
- Trace.trace(Trace.FINEST, "Publishing module: " + module);
-
- int size = module.length;
- IModule m = module[size - 1];
- monitor.beginTask(NLS.bind(Messages.publishingModule, m.getName()), 1000);
-
- IStatus status = Status.OK_STATUS;
- try {
- int kind2 = kind;
- if (getServer().getModulePublishState(module) == IServer.PUBLISH_STATE_UNKNOWN)
- kind2 = IServer.PUBLISH_FULL;
- publishModule(kind2, deltaKind, module, monitor);
- } catch (CoreException ce) {
- status = ce.getStatus();
- } catch (Exception e) {
- status = new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorPublishing, e);
- }
-
- /*Trace.trace(Trace.FINEST, "Delta:");
- IModuleResourceDelta[] delta = getServerPublishInfo().getDelta(parents, module);
- int size = delta.length;
- for (int i = 0; i < size; i++) {
- ((ModuleResourceDelta)delta[i]).trace("> ");
- }*/
-
- monitor.done();
-
- Trace.trace(Trace.FINEST, "Done publishing: " + module);
- return status;
- }
-
- /**
- * Returns <code>true</code> if the given module has been published, and
- * <code>false</code> otherwise.
- *
- * @param module a module
- * @return <code>true</code> if the given module has been published, and
- * <code>false</code> otherwise
- */
- protected boolean hasBeenPublished(IModule[] module) {
- return server.getServerPublishInfo().hasModulePublishInfo(module);
- }
-
- /**
- * Adds removed modules.
- *
- * @param moduleList a list of modules
- * @param kindList a list of publish kinds
- */
- protected void addRemovedModules(List moduleList, List kindList) {
- server.getServerPublishInfo().addRemovedModules(moduleList, kindList);
- }
-
- /**
- * Update the stored publish info for the given module.
- *
- * @deprecated should never need to be called directly. Will be removed
- * in a future version of WTP
- * @param deltaKind a publish delta kind
- * @param module a module
- */
- protected void updatePublishInfo(int deltaKind, IModule[] module) {
- // TODO remove
- }
-
- /**
- * Publishes the given modules. Returns true if the publishing
- * should continue, or false if publishing has failed or is cancelled.
- *
- * Uses 500 ticks plus 3500 ticks per module
- *
- * @param kind the publish kind
- * @param modules a list of modules
- * @param deltaKind a list of delta kinds
- * @param multi a multistatus to add the status to
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- protected void publishModules(int kind, List modules, List deltaKind, MultiStatus multi, IProgressMonitor monitor) {
- if (modules == null)
- return;
-
- int size = modules.size();
- if (size == 0)
- return;
-
- if (monitor.isCanceled())
- return;
-
- // publish modules
- for (int i = 0; i < size; i++) {
- IStatus status = publishModule(kind, (IModule[]) modules.get(i), ((Integer)deltaKind.get(i)).intValue(), ProgressUtil.getSubMonitorFor(monitor, 3000));
- if (status != null && !status.isOK())
- multi.add(status);
- }
- }
-
- /**
- * Returns the publish tasks that have been targetted to this server.
- * These tasks should be run during publishing.
- *
- * @param kind one of the IServer.PUBLISH_XX constants
- * @param moduleList a list of modules
- * @param kindList list of one of the IServer publish change constants
- * @return a possibly empty array of IOptionalTasks
- */
- protected final PublishOperation[] getTasks(int kind, List moduleList, List kindList) {
- return server.getTasks(kind, moduleList, kindList);
- }
-
- /**
- * Returns all the modules that are on the server, including root
- * modules and all their children.
- *
- * @return a list of IModule[]s
- */
- protected final List getAllModules() {
- return server.getAllModules();
- }
-
- /**
- * Perform (execute) all the given tasks.
- *
- * @param tasks an array of tasks
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @return the status
- */
- protected MultiStatus performTasks(PublishOperation[] tasks, IProgressMonitor monitor) {
- int size = tasks.length;
- Trace.trace(Trace.FINEST, "Performing tasks: " + size);
-
- if (size == 0)
- return null;
-
- MultiStatus multi = new MultiStatus(ServerPlugin.PLUGIN_ID, 0, Messages.taskPerforming, null);
-
- for (int i = 0; i < size; i++) {
- PublishOperation task = tasks[i];
- monitor.subTask(NLS.bind(Messages.taskPerforming, task.toString()));
- try {
- task.execute(ProgressUtil.getSubMonitorFor(monitor, 500), null);
- } catch (CoreException ce) {
- Trace.trace(Trace.SEVERE, "Task failed", ce);
- multi.add(ce.getStatus());
- }
-
- // return early if the monitor has been cancelled
- if (monitor.isCanceled())
- return multi;
- }
-
- return multi;
- }
-
- /**
- * Called when resources change within the workspace.
- * This gives the server an opportunity to update the server or module
- * restart state.
- */
- public void handleResourceChange() {
- // do nothing
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerDelegate.java
deleted file mode 100644
index 1e0510cc6..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerDelegate.java
+++ /dev/null
@@ -1,413 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.model;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.internal.ServerWorkingCopy;
-/**
- * A server delegate provides the implementation for various
- * generic and server-type-specific operations for a specific type of server.
- * A server delegate is specified by the
- * <code>class</code> attribute of a <code>serverTypes</code> extension.
- * <p>
- * When the server instance needs to be given a delegate, the delegate class
- * specified for the server type is instantiated with a 0-argument constructor
- * and primed with <code>delegate.initialize(((IServerState)server)</code>,
- * which it is expected to hang on to. Later, when
- * <code>delegate.dispose()</code> is called as the server instance is
- * being discarded, the delegate is expected to let go of the server instance.
- * </p>
- * <p>
- * ServerDelegate supports an open-ended set of attribute-value pairs. All
- * state stored in this manner will be saved when the server working copy is
- * saved, and persisted across workbench sessions.
- * Server delegates may keep state in instance fields, but that state is
- * transient and will not be persisted across workbench sessions. To save
- * state across workbench sessions, it must be persisted using the
- * attributes.
- * </p>
- * <p>
- * This abstract class is intended to be extended only by clients
- * to extend the <code>serverTypes</code> extension point.
- * </p>
- *
- * @see IServer
- * @see IServerWorkingCopy
- * @since 1.0
- */
-public abstract class ServerDelegate {
- private Server server;
- private ServerWorkingCopy serverWC;
-
- /**
- * Delegates must have a public 0-arg constructor.
- */
- public ServerDelegate() {
- // do nothing
- }
-
- /**
- * Initializes this server delegate with its life-long server instance.
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- *
- * @param newServer the server instance
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- final void initialize(Server newServer, IProgressMonitor monitor) {
- server = newServer;
- if (newServer instanceof ServerWorkingCopy)
- serverWC = (ServerWorkingCopy) newServer;
- initialize();
- }
-
- /**
- * Initializes this server delegate. This method gives delegates a chance
- * to do their own initialization.
- * <p>
- * This method is called by the server core framework.
- * Clients should never call this method.
- * </p>
- */
- protected void initialize() {
- // do nothing
- }
-
- /**
- * Returns the server that this server delegate corresponds to.
- *
- * @return the server
- */
- public final IServer getServer() {
- return server;
- }
-
- /**
- * Returns the server working copy that this server delegate corresponds to.
- *
- * @return the server
- */
- public final IServerWorkingCopy getServerWorkingCopy() {
- return serverWC;
- }
-
- /**
- * Returns the value of the specified int-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, int)
- */
- protected final int getAttribute(String id, int defaultValue) {
- return server.getAttribute(id, defaultValue);
- }
-
- /**
- * Returns the value of the specified boolean-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, boolean)
- */
- protected final boolean getAttribute(String id, boolean defaultValue) {
- return server.getAttribute(id, defaultValue);
- }
-
- /**
- * Returns the value of the specified String-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, String)
- */
- protected final String getAttribute(String id, String defaultValue) {
- return server.getAttribute(id, defaultValue);
- }
-
- /**
- * Returns the value of the specified List-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, List)
- */
- protected final List getAttribute(String id, List defaultValue) {
- return server.getAttribute(id, defaultValue);
- }
-
- /**
- * Returns the value of the specified Map-valued attribute.
- *
- * @param id the attribute id
- * @param defaultValue the default value of the specified attribute
- * @return the attribute value
- * @see #setAttribute(String, Map)
- */
- protected final Map getAttribute(String id, Map defaultValue) {
- return server.getAttribute(id, defaultValue);
- }
-
- /**
- * Disposes of this server delegate.
- * <p>
- * This method is called by the web server core framework.
- * Clients should never call this method.
- * </p>
- * <p>
- * Implementations are expected to let go of the delegate's reference
- * to the server, deregister listeners, etc.
- * </p>
- */
- public void dispose() {
- // do nothing
- }
-
- /**
- * Returns whether the specified module modifications could be made to this
- * server at this time. See the specification of
- * {@link IServerAttributes#canModifyModules(IModule[], IModule[], IProgressMonitor)}
- * for further details.
- * <p>
- * This method is called by the web server core framework,
- * in response to a call to <code>IServer.canModifyModules</code>.
- * Clients should never call this method.
- * </p>
- * <p>
- * [issue: See IServerAttributes.canModifyModules(IModule[], IModule[], IProgressMonitor).]
- * </p>
- * [issue: doc that it should be quick]
- *
- * @param add a possibly-empty list of modules to add
- * @param remove a possibly-empty list of modules to remove
- * @return a status object with code <code>IStatus.OK</code> if the modules
- * can be modified, otherwise a status object indicating why they can't
- */
- public abstract IStatus canModifyModules(IModule[] add, IModule[] remove);
-
- /**
- * Returns the child module(s) of this module. If this module contains other
- * modules, it should list those modules. If not, it should return an empty
- * list.
- *
- * <p>This method should only return the direct children. To obtain the full
- * tree of modules if they are multiple levels deep, this method may be
- * recursively called on the children.</p>
- *
- * @param module a module
- * @return the child modules
- * @see IServerAttributes#getChildModules(IModule[], IProgressMonitor)
- */
- public abstract IModule[] getChildModules(IModule[] module);
-
- /**
- * Returns the parent module(s) of this module. When determining if a given
- * project can run on a server, this method will be used to find the actual
- * module(s) that may be run on the server. For instance, a Web module may
- * return a list of EAR modules that it is contained in if the server only
- * supports configuring EAR modules. If the server supports running a module
- * directly, the returned array should contain the module.
- *
- * <p>If the module type is not supported, this method will return null or
- * an empty array. If the type is normally supported but there is a
- * configuration problem or missing parent, etc., this method will fire a
- * CoreException that may then be presented to the user.</p>
- *
- * <p>If it does return valid parent(s), this method will always return
- * the topmost parent module(s), even if there are a few levels
- * (a heirarchy) of modules.</p>
- *
- * [issue: should the parameter be IModule[]?]
- *
- * @param module a module
- * @return an array of possible root modules
- * @throws CoreException if anything went wrong
- *
- * @see org.eclipse.wst.server.core.IServerAttributes#getRootModules(IModule, IProgressMonitor)
- */
- public abstract IModule[] getRootModules(IModule module) throws CoreException;
-
- /**
- * Returns an array of ServerPorts that this server has.
- *
- * @return the server's ports
- */
- public ServerPort[] getServerPorts() {
- return null;
- }
-
- /**
- * Initializes this server with default values. This method is called when
- * a new server is created so that the server can be initialized with
- * meaningful values.
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- */
- public void setDefaults(IProgressMonitor monitor) {
- // do nothing
- }
-
- /**
- * Sets the value of the specified integer-valued attribute of this
- * element.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, int)
- */
- protected final void setAttribute(String id, int value) {
- serverWC.setAttribute(id, value);
- }
-
- /**
- * Sets the value of the specified boolean-valued attribute of this
- * element.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, boolean)
- */
- protected final void setAttribute(String id, boolean value) {
- serverWC.setAttribute(id, value);
- }
-
- /**
- * Sets the value of the specified string-valued attribute of this
- * element.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, String)
- */
- protected final void setAttribute(String id, String value) {
- serverWC.setAttribute(id, value);
- }
-
- /**
- * Sets the value of the specified list-valued attribute of this
- * element. The list may only contain String values.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, List)
- */
- protected final void setAttribute(String id, List value) {
- serverWC.setAttribute(id, value);
- }
-
- /**
- * Sets the value of the specified map-valued attribute of this
- * element. The map may only contain String values.
- *
- * @param id the attribute id
- * @param value the value of the specified attribute
- * @see #getAttribute(String, Map)
- */
- protected final void setAttribute(String id, Map value) {
- serverWC.setAttribute(id, value);
- }
-
- /**
- * Modifies the list of modules associated with the server.
- * See the specification of
- * {@link IServerWorkingCopy#modifyModules(IModule[], IModule[], IProgressMonitor)}
- * for further details.
- * <p>
- * This method is called by the web server core framework,
- * in response to a call to <code>IServerWorkingCopy.modifyModules</code>.
- * Clients should never call this method.
- * </p>
- * <p>
- * This method is called to update the server configuration (if any)
- * or update the delegates internal state. Note that the actual list
- * of modules is stored on the server and can be accessed at any time
- * using server.getModules(). getModules() will not be updated until
- * after this method successfully returns.
- * </p>
- * <p>
- * This method will not communicate with the server. After saving,
- * publish() can be used to sync up with the server.
- * </p>
- *
- * @param add a possibly-empty list of modules to add
- * @param remove a possibly-empty list of modules to remove
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException [missing]
- */
- public abstract void modifyModules(IModule[] add, IModule[] remove, IProgressMonitor monitor) throws CoreException;
-
- /**
- * This method is called to import the server configuration from the given
- * runtime.
- *
- * @param runtime a server runtime
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @deprecated should use importRuntimeConfiguration (which can throw a
- * CoreException) instead
- */
- public void importConfiguration(IRuntime runtime, IProgressMonitor monitor) {
- try {
- importRuntimeConfiguration(runtime, monitor);
- } catch (CoreException ce) {
- // ignore
- }
- }
-
- /**
- * This method is called to import the server configuration from the given
- * runtime.
- *
- * @param runtime a server runtime
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there is any problem importing the configuration
- * from the runtime
- */
- public void importRuntimeConfiguration(IRuntime runtime, IProgressMonitor monitor) throws CoreException {
- // do nothing
- }
-
- /**
- * This method is called whenever the server configuration should be saved.
- *
- * @param monitor a progress monitor, or <code>null</code> if progress
- * reporting and cancellation are not desired
- * @throws CoreException if there was a problem saving
- */
- public void saveConfiguration(IProgressMonitor monitor) throws CoreException {
- // do nothing
- }
-
- /**
- * This method is called whenever the server configuration folder has changed.
- * It gives the server a chance to throw out any old data and be ready to
- * reload the server configuration when it is needed next.
- */
- public void configurationChanged() {
- // do nothing
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/package.html b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/package.html
deleted file mode 100644
index d0fe41200..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<link rel="stylesheet" href="../../../../../..//apistyles.css" type="text/css">
-<title>WTP API overview</title>
-</head>
-<body>
-<p>SPI support for the server tools framework.</p>
-<table width="500">
-<tr>
-<td>
-<p>The classes in this package would typically be extended or used by
-SPI clients of the server tools framework who are providing a new server
-type, runtime type, or other extension. These delegates are never visible
-to regular API clients unless explicitly exposed by the provider.</p>
-</td>
-</tr>
-</table>
-<table width="500">
-<tr>
-<td>
-<p>The majority of these classes are delegates to implement one of the
-extension points. View the extension point documentation for further
-details.</p>
-</td>
-</tr>
-</table>
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/package.xml b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/package.xml
deleted file mode 100644
index 4e3120321..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/package.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
- <!-- Escape to the root of your source folder -->
- <meta
- name="root"
- content="../../../../../../" />
- <title>WTP API overview</title>
-</head>
-
-<body>
-
-<abstract>SPI support for the server tools framework.</abstract>
-
-<p>The classes in this package would typically be extended or used by
-SPI clients of the server tools framework who are providing a new server
-type, runtime type, or other extension. These delegates are never visible
-to regular API clients unless explicitly exposed by the provider.</p>
-
-<p>The majority of these classes are delegates to implement one of the
-extension points. View the extension point documentation for further
-details.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/package.html b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/package.html
deleted file mode 100644
index 236cdb5ec..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/package.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<link rel="stylesheet" href="../../../../../..//apistyles.css" type="text/css">
-<title>WTP API overview</title>
-</head>
-<body>
-<p>The main server tools framework client API.</p>
-<table width="500">
-<tr>
-<td>
-<p>ServerCore is the main entry-point and provides access to most of the
-remaining API. From here, you can get the existing server runtimes and
-servers, get the available server types, and access interfaces for all
-extension points.</p>
-</td>
-</tr>
-</table>
-<table width="500">
-<tr>
-<td>
-<p>ServerUtil provides utility and convenience methods for dealing with
-server tools. It provides easy access to modules, server runtimes, and
-what combinations are supported (e.g. which runtimes can be used to
-target a particular project).</p>
-</td>
-</tr>
-</table>
-<table width="500">
-<tr>
-<td>
-<p>IRuntime and IServer are the two main API objects. IRuntime is used
-to target projects to a particular server installation and compile/build
-against them. When a runtime is targetted to a particular runtime,
-all of the applicable IRuntimeTargetHandler extensions are called to
-set the classpath or modify other project settings for the runtime.</p>
-</td>
-</tr>
-</table>
-<table width="500">
-<tr>
-<td>
-<p>IServer is the main server class that clients can use to start/stop
-and publish to servers.</p>
-</td>
-</tr>
-</table>
-<table width="500">
-<tr>
-<td>
-<p>IModules provide the "content" that can be published to servers.
-See the server tools API overview for more information.</p>
-</td>
-</tr>
-</table>
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/package.xml b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/package.xml
deleted file mode 100644
index 9a254d3ae..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/package.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
- <!-- Escape to the root of your source folder -->
- <meta
- name="root"
- content="../../../../../../" />
- <title>WTP API overview</title>
-</head>
-
-<body>
-
-<abstract>The main server tools framework client API.</abstract>
-
-<p>ServerCore is the main entry-point and provides access to most of the
-remaining API. From here, you can get the existing server runtimes and
-servers, get the available server types, and access interfaces for all
-extension points.</p>
-
-<p>ServerUtil provides utility and convenience methods for dealing with
-server tools. It provides easy access to modules, server runtimes, and
-what combinations are supported (e.g. which runtimes can be used to
-target a particular project).</p>
-
-<p>IRuntime and IServer are the two main API objects. IRuntime is used
-to target projects to a particular server installation and compile/build
-against them. When a runtime is targetted to a particular runtime,
-all of the applicable IRuntimeTargetHandler extensions are called to
-set the classpath or modify other project settings for the runtime.</p>
-
-<p>IServer is the main server class that clients can use to start/stop
-and publish to servers.</p>
-
-<p>IModules provide the "content" that can be published to servers.
-See the server tools API overview for more information.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/HttpLaunchable.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/HttpLaunchable.java
deleted file mode 100644
index da4acc55e..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/HttpLaunchable.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.util;
-
-import java.net.URL;
-/**
- * An HTTP launchable object. Encapsulates a launch of a URL for the Run on Server
- * support.
- *
- * @since 1.0
- */
-public class HttpLaunchable {
- private URL url;
-
- /**
- * Create a reference to something accessible via HTTP.
- *
- * @param url the URL to the object
- */
- public HttpLaunchable(URL url) {
- this.url = url;
- }
-
- /**
- * Return the URL to the object.
- *
- * @return the URL to the object
- */
- public URL getURL() {
- return url;
- }
-
- /**
- * @see Object#toString()
- */
- public String toString() {
- return "HttpLaunchable[url=" + url.toString() + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/IStaticWeb.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/IStaticWeb.java
deleted file mode 100644
index 97471a445..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/IStaticWeb.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.util;
-/**
- * A static Web module that could be deployed to Apache or another
- * HTTP server.
- *
- * @since 1.0
- */
-public interface IStaticWeb {
- /**
- * Returns the context root of the Web.
- *
- * @return java.lang.String
- */
- public String getContextRoot();
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/NullModuleArtifact.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/NullModuleArtifact.java
deleted file mode 100644
index 88bf49b97..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/NullModuleArtifact.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.util;
-
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IModuleArtifact;
-/**
- * A dummy module artifact.
- *
- * @since 1.0
- */
-public class NullModuleArtifact implements IModuleArtifact {
- private IModule module;
-
- /**
- * Create a new reference to a module.
- *
- * @param module the module
- */
- public NullModuleArtifact(IModule module) {
- this.module = module;
- }
-
- /**
- * @see IModuleArtifact#getModule()
- */
- public IModule getModule() {
- return module;
- }
-
- /**
- * @see Object#toString()
- */
- public String toString() {
- return "NullModuleArtifact [module=" + module + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ProjectModuleFactoryDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ProjectModuleFactoryDelegate.java
deleted file mode 100644
index a177b84f9..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ProjectModuleFactoryDelegate.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2005 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
- **********************************************************************/
-package org.eclipse.wst.server.core.util;
-
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.internal.ModuleFactory;
-import org.eclipse.wst.server.core.internal.ServerPlugin;
-import org.eclipse.wst.server.core.internal.Trace;
-import org.eclipse.wst.server.core.model.ModuleFactoryDelegate;
-/**
- * A helper class for defining a module factory that provides modules
- * based on projects.
- *
- * @since 1.0
- */
-public abstract class ProjectModuleFactoryDelegate extends ModuleFactoryDelegate {
- private static List factories = new ArrayList();
-
- // list of IModules
- private List modules;
-
- /**
- * Construct a new ProjectModuleFactoryDelegate.
- */
- public ProjectModuleFactoryDelegate() {
- super();
-
- factories.add(this);
- }
-
- /**
- * Cache any preexisting modules.
- */
- private final void cacheModules() {
- if (modules != null)
- return;
-
- try {
- clearCache();
- IProject[] projects2 = getWorkspaceRoot().getProjects();
- int size = projects2.length;
- modules = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- //Trace.trace("caching: " + this + " " + projects[i] + " " + isValidModule(projects[i]));
- if (projects2[i].isAccessible()) {
- try {
- IModule[] modules2 = createModules(projects2[i]);
- if (modules2 != null) {
- int size2 = modules2.length;
- for (int j = 0; j < size2; j++)
- if (modules2[j] != null)
- modules.add(modules2[j]);
- }
- } catch (Throwable t) {
- Trace.trace(Trace.SEVERE, "Error creating module", t);
- }
- }
- }
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Error caching modules", e);
- }
- }
-
- /**
- * Return the workspace root.
- *
- * @return the workspace root
- */
- private static IWorkspaceRoot getWorkspaceRoot() {
- return ResourcesPlugin.getWorkspace().getRoot();
- }
-
- /**
- * Return the modules provided by this factory.
- *
- * @return a possibly-empty array of modules
- */
- public final IModule[] getModules() {
- cacheModules();
-
- IModule[] modules2 = new IModule[modules.size()];
- modules.toArray(modules2);
- return modules2;
- }
-
- /**
- * Handle changes to a project.
- *
- * @param project a project
- * @param delta a resource delta
- */
- public final static void handleGlobalProjectChange(final IProject project, IResourceDelta delta) {
- ModuleFactory[] factories2 = ServerPlugin.getModuleFactories();
- int size = factories2.length;
- for (int i = 0; i < size; i++) {
- if (factories2[i].delegate != null && factories2[i].delegate instanceof ProjectModuleFactoryDelegate) {
- ProjectModuleFactoryDelegate pmfd = (ProjectModuleFactoryDelegate) factories2[i].delegate;
- if (pmfd.deltaAffectsModules(delta)) {
- pmfd.modules = null;
- factories2[i].clearModuleCache();
- }
- }
- }
- }
-
- /**
- * Returns <code>true</code> if the delta may have changed modules,
- * and <code>false</code> otherwise.
- *
- * @param delta a resource delta
- * @return <code>true</code> if the delta may have changed modules,
- * and <code>false</code> otherwise
- */
- private final boolean deltaAffectsModules(IResourceDelta delta) {
- final boolean[] b = new boolean[1];
-
- final IPath[] listenerPaths = getListenerPaths();
- if (listenerPaths == null || listenerPaths.length == 0)
- return false;
- final int size = listenerPaths.length;
-
- try {
- delta.accept(new IResourceDeltaVisitor() {
- public boolean visit(IResourceDelta delta2) throws CoreException {
- if (b[0])
- return false;
- //Trace.trace(Trace.FINEST, delta2.getResource() + " " + delta2.getKind() + " " + delta2.getFlags());
- boolean ok = false;
- IPath path = delta2.getProjectRelativePath();
- for (int i = 0; i < size; i++) {
- if (listenerPaths[i].equals(path)) {
- b[0] = true;
- return false;
- } else if (path.isPrefixOf(listenerPaths[i])) {
- ok = true;
- }
- }
- return ok;
- }
- });
- } catch (Exception e) {
- // ignore
- }
- //Trace.trace(Trace.FINEST, "Delta contains change: " + t.b);
- return b[0];
- }
-
- /**
- * Clear and cached metadata.
- */
- protected void clearCache() {
- // ignore
- }
-
- /**
- * Creates the module for a given project.
- *
- * @param project a project to create modules for
- * @return a module, or <code>null</code> if there was no module in the project
- * @see #createModules(IProject)
- * @deprecated Use createModules(IProject) instead, which supports multiple modules
- * per project
- */
- protected IModule createModule(IProject project) {
- return null;
- }
-
- /**
- * Creates the modules that are contained within a given project.
- *
- * @param project a project to create modules for
- * @return a possibly-empty array of modules
- */
- protected IModule[] createModules(IProject project) {
- IModule module = createModule(project);
- if (module == null)
- return new IModule[0];
-
- return new IModule[] { module };
- }
-
- /**
- * Returns the list of resources that the module should listen to
- * for state changes. The paths should be project relative paths.
- * Subclasses can override this method to provide the paths.
- *
- * @return a possibly empty array of paths
- */
- protected IPath[] getListenerPaths() {
- return null;
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishAdapter.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishAdapter.java
deleted file mode 100644
index 276467bc6..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishAdapter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.util;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.server.core.IPublishListener;
-import org.eclipse.wst.server.core.IServer;
-/**
- * Helper class which implements the IPublishListener interface
- * with empty methods.
- *
- * @see org.eclipse.wst.server.core.IPublishListener
- * @since 1.0
- */
-public class PublishAdapter implements IPublishListener {
- /**
- * @see IPublishListener#publishStarted(IServer)
- */
- public void publishStarted(IServer server) {
- // do nothing
- }
-
- /**
- * @see IPublishListener#publishFinished(IServer, IStatus)
- */
- public void publishFinished(IServer server, IStatus status) {
- // do nothing
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/RuntimeLifecycleAdapter.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/RuntimeLifecycleAdapter.java
deleted file mode 100644
index 9c6cf8ae7..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/RuntimeLifecycleAdapter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.util;
-
-import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IRuntimeLifecycleListener;
-/**
- * Helper class which implements the IRuntimeLifecycleListener interface
- * with empty methods.
- *
- * @see org.eclipse.wst.server.core.IRuntimeLifecycleListener
- * @since 1.0
- */
-public class RuntimeLifecycleAdapter implements IRuntimeLifecycleListener {
- /**
- * @see IRuntimeLifecycleListener#runtimeAdded(IRuntime)
- */
- public void runtimeAdded(IRuntime runtime) {
- // do nothing
- }
-
- /**
- * @see IRuntimeLifecycleListener#runtimeChanged(IRuntime)
- */
- public void runtimeChanged(IRuntime runtime) {
- // do nothing
- }
-
- /**
- * @see IRuntimeLifecycleListener#runtimeRemoved(IRuntime)
- */
- public void runtimeRemoved(IRuntime runtime) {
- // do nothing
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ServerLifecycleAdapter.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ServerLifecycleAdapter.java
deleted file mode 100644
index d55279da1..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ServerLifecycleAdapter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.util;
-
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.IServerLifecycleListener;
-/**
- * Helper class which implements the IServerLifecycleListener interface
- * with empty methods.
- *
- * @see org.eclipse.wst.server.core.IServerLifecycleListener
- * @since 1.0
- */
-public class ServerLifecycleAdapter implements IServerLifecycleListener {
- /**
- * @see IServerLifecycleListener#serverAdded(IServer)
- */
- public void serverAdded(IServer server) {
- // do nothing
- }
-
- /**
- * @see IServerLifecycleListener#serverChanged(IServer)
- */
- public void serverChanged(IServer server) {
- // do nothing
- }
-
- /**
- * @see IServerLifecycleListener#serverRemoved(IServer)
- */
- public void serverRemoved(IServer server) {
- // do nothing
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/WebResource.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/WebResource.java
deleted file mode 100644
index 4863f750b..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/WebResource.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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
- *******************************************************************************/
-package org.eclipse.wst.server.core.util;
-
-import org.eclipse.core.runtime.IPath;
-
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IModuleArtifact;
-/**
- * A Web module resource.
- *
- * @since 1.0
- */
-public class WebResource implements IModuleArtifact {
- private IModule module;
- private IPath path;
-
- /**
- * Create a new reference to a Web resource (HTML, GIF, etc. on a server).
- *
- * @param module a module
- * @param path a relative path within the module
- */
- public WebResource(IModule module, IPath path) {
- this.module = module;
- this.path = path;
- }
-
- /**
- * @see IModuleArtifact#getModule()
- */
- public IModule getModule() {
- return module;
- }
-
- /**
- * Return the relative path to the artifact within the module.
- *
- * @return the relative path
- */
- public IPath getPath() {
- return path;
- }
-
- /**
- * @see Object#toString()
- */
- public String toString() {
- return "WebResource [module=" + module + ", path=" + path + "]";
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/package.html b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/package.html
deleted file mode 100644
index 41d3ed62f..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/package.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<link rel="stylesheet" href="../../../../../..//apistyles.css" type="text/css">
-<title>WTP API overview</title>
-</head>
-<body>
-<p>Utility classes for the server tools framework.</p>
-<table width="500">
-<tr>
-<td>
-<p>PingThread is a utility class for pinging a server to determine if
-it is running and updating the server's state.</p>
-</td>
-</tr>
-</table>
-<table width="500">
-<tr>
-<td>
-<p>SocketUtil contains utility methods for determining if ports are
-free and whether a given hostname is a local hostname.</p>
-</td>
-</tr>
-</table>
-<table width="500">
-<tr>
-<td>
-<p>The four XXXAdapter classes are implementations of server tools
-listener interfaces with the method bodies stubbed in; they can be
-subclassed by clients who only want to implement a single listener
-interface method.</p>
-</td>
-</tr>
-</table>
-<table width="500">
-<tr>
-<td>
-<p>ServerPort, Task, and TaskModel are standard implementations of
-other interface classes.</p>
-</td>
-</tr>
-</table>
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/package.xml b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/package.xml
deleted file mode 100644
index ffb244455..000000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/package.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
- <!-- Escape to the root of your source folder -->
- <meta
- name="root"
- content="../../../../../../" />
- <title>WTP API overview</title>
-</head>
-
-<body>
-
-<abstract>Utility classes for the server tools framework.</abstract>
-
-<p>PingThread is a utility class for pinging a server to determine if
-it is running and updating the server's state.</p>
-
-<p>SocketUtil contains utility methods for determining if ports are
-free and whether a given hostname is a local hostname.</p>
-
-<p>The four XXXAdapter classes are implementations of server tools
-listener interfaces with the method bodies stubbed in; they can be
-subclassed by clients who only want to implement a single listener
-interface method.</p>
-
-<p>ServerPort, Task, and TaskModel are standard implementations of
-other interface classes.</p>
-
-</body>
-</html> \ No newline at end of file

Back to the top