org.eclipse.wst.server.core
Class ServerUtil

java.lang.Object
  extended by org.eclipse.wst.server.core.ServerUtil

public class ServerUtil
extends java.lang.Object

Server utility methods. These static methods can be used to perform common operations on server artifacts.

This class provides all its functionality through static members. It is not intended to be subclassed or instantiated.

Since:
1.0

Field Summary
static java.lang.Object SERVER_JOB_FAMILY
          Constant identifying the job family identifier for server operations.
 
Method Summary
static boolean containsModule(IServer server, IModule module, org.eclipse.core.runtime.IProgressMonitor monitor)
          Returns true if the given server currently contains the given module.
static IServer[] getAvailableServersForModule(IModule module, boolean includeErrors, org.eclipse.core.runtime.IProgressMonitor monitor)
          Returns a list of all servers that this deployable is not currently configured on, but could be added to.
static IModule getModule(org.eclipse.core.resources.IProject project)
          Returns the module contained within the given project.
static IModule getModule(java.lang.String moduleId)
          Returns the module with the given moduleId, if one exists.
static IModule[] getModules(IModuleType[] moduleTypes)
          Return all the available modules from all factories whose type matches the given module types.
static IModule[] getModules(org.eclipse.core.resources.IProject project)
          Returns the modules contained within the given project.
static IModule[] getModules(java.lang.String type)
          Return all the available modules from all factories whose type matches the given module type id.
static int getMonitoredPort(IServer server, int port, java.lang.String contentType)
          Returns the port that is being used to monitor the given port on the server.
static IRuntime[] getRuntimes(java.lang.String type, java.lang.String version)
          Return a list of all runtime targets that match the given type and version.
static IRuntimeType[] getRuntimeTypes(java.lang.String type, java.lang.String version)
          Return a list of all runtime types that match the given type and version.
static IRuntimeType[] getRuntimeTypes(java.lang.String type, java.lang.String version, java.lang.String runtimeTypeId)
          Return a list of all runtime types that match the given type, version, and partial runtime type id.
static IServer getServer(org.eclipse.debug.core.ILaunchConfiguration configuration)
          Returns the server associated with the given launch configuration.
static IServer[] getServersByModule(IModule module, org.eclipse.core.runtime.IProgressMonitor monitor)
          Returns a list of all servers that this module is configured on.
static org.eclipse.core.runtime.jobs.ISchedulingRule getServerSchedulingRule(IServer server)
          Returns a scheduling rule to prevent jobs from simultaneously starting, publishing, or stopping the same server.
static org.eclipse.core.resources.IFile getUnusedServerFile(org.eclipse.core.resources.IProject project, IServer server)
          Returns an unused file in the given project.
static boolean isSupportedModule(IModuleType[] moduleTypes, IModuleType mt)
          Returns true if any of the given moduleTypes match the given module type.
static boolean isSupportedModule(IModuleType[] moduleTypes, java.lang.String typeId, java.lang.String versionId)
          Returns true if any of the given moduleTypes have the given module type id and version id.
static boolean isSupportedModule(IModuleType moduleType, IModuleType mt)
          Returns true if the two given module types are compatible.
static void modifyModules(IServerWorkingCopy server, IModule[] add, IModule[] remove, org.eclipse.core.runtime.IProgressMonitor monitor)
          Adds or removes modules from a server.
static void setRuntimeDefaultName(IRuntimeWorkingCopy runtime)
          Sets a default name on the given runtime.
static void setServerDefaultName(IServerWorkingCopy server)
          Sets a default name on the given server.
static org.eclipse.core.runtime.IStatus validateEdit(java.lang.Object context, IServer server)
          Validates whether this server can be editted.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SERVER_JOB_FAMILY

public static final java.lang.Object SERVER_JOB_FAMILY
Constant identifying the job family identifier for server operations.

Since:
2.0
See Also:
IJobManager.join(Object, IProgressMonitor)
Method Detail

getModule

public static IModule getModule(org.eclipse.core.resources.IProject project)
Returns the module contained within the given project. If more than one module is contained with the project, this method will return an arbitrary module unless the module factory defines an ordering. If there might be multiple modules in a project, users should typically use getModules(IProject) instead.

This method may trigger bundle loading and is not suitable for short/UI operations.

Parameters:
project - a project
Returns:
a module that is contained with the project, or null if no modules are contained in the given project
See Also:
getModules(IProject)

getModules

public static IModule[] getModules(org.eclipse.core.resources.IProject project)
Returns the modules contained within the given project.

This method may trigger bundle loading and is not suitable for short/UI operations.

Parameters:
project - a project
Returns:
a possibly-empty array of modules
See Also:
getModule(IProject)

getModule

public static IModule getModule(java.lang.String moduleId)
Returns the module with the given moduleId, if one exists. The moduleId must not be null.

This method may trigger bundle loading and is not suitable for short/UI operations.

Parameters:
moduleId - a module id
Returns:
the module, or null if the module could not be found

getModules

public static IModule[] getModules(IModuleType[] moduleTypes)
Return all the available modules from all factories whose type matches the given module types.

This method may trigger bundle loading and is not suitable for short/UI operations. It also performs a search of all available modules of the given types, and due to performance reasons should not be used unless absolutely required.

Parameters:
moduleTypes - an array of module types
Returns:
a possibly empty array of modules

getModules

public static IModule[] getModules(java.lang.String type)
Return all the available modules from all factories whose type matches the given module type id.

This method may trigger bundle loading and is not suitable for short/UI operations. It also performs a search of all available modules of this type, and due to performance reasons should not be used unless absolutely required.

Parameters:
type - a module type
Returns:
a possibly empty array of modules

isSupportedModule

public static boolean isSupportedModule(IModuleType[] moduleTypes,
                                        java.lang.String typeId,
                                        java.lang.String versionId)
Returns true if any of the given moduleTypes have the given module type id and version id.

Parameters:
moduleTypes - an array of module types, may not be null
typeId - a module type id, or null for any module type
versionId - a module version, or null for any version
Returns:
true if the module type is supported, and false otherwise

isSupportedModule

public static boolean isSupportedModule(IModuleType[] moduleTypes,
                                        IModuleType mt)
Returns true if any of the given moduleTypes match the given module type.

Parameters:
moduleTypes - an array of modules types, may not be null
mt - a module type, may not be null
Returns:
true if the module type is supported, and false otherwise

isSupportedModule

public static boolean isSupportedModule(IModuleType moduleType,
                                        IModuleType mt)
Returns true if the two given module types are compatible.

Parameters:
moduleType - a module type, may not be null
mt - a module type, may not be null
Returns:
true if the module type is supported, and false otherwise

modifyModules

public static void modifyModules(IServerWorkingCopy server,
                                 IModule[] add,
                                 IModule[] remove,
                                 org.eclipse.core.runtime.IProgressMonitor monitor)
                          throws org.eclipse.core.runtime.CoreException
Adds or removes modules from a server. Will search for the first parent module of each module and add it to the server instead. This method will handle multiple modules having the same parent (the parent will only be added once), but may not handle the case where the same module or parent is being both added and removed. Entries in the add or remove arrays may not be null.

Parameters:
server - a server
add - an array of modules to add, or null to not add any
remove - an array of modules to remove, or null to not remove any
monitor - a progress monitor, or null if progress reporting and cancellation are not desired
Throws:
org.eclipse.core.runtime.CoreException - if anything goes wrong

setRuntimeDefaultName

public static void setRuntimeDefaultName(IRuntimeWorkingCopy runtime)
Sets a default name on the given runtime.

Parameters:
runtime - a runtime

setServerDefaultName

public static void setServerDefaultName(IServerWorkingCopy server)
Sets a default name on the given server.

Parameters:
server - a server

getUnusedServerFile

public static org.eclipse.core.resources.IFile getUnusedServerFile(org.eclipse.core.resources.IProject project,
                                                                   IServer server)
Returns an unused file in the given project.

Parameters:
project - a project
server - a server
Returns:
an unused file within the given project

getRuntimes

public static IRuntime[] getRuntimes(java.lang.String type,
                                     java.lang.String version)
Return a list of all runtime targets that match the given type and version. If type or version is null, it matches all of that type or version.

Parameters:
type - a module type
version - a module version
Returns:
a possibly-empty array of runtime instances IRuntime

getRuntimeTypes

public static IRuntimeType[] getRuntimeTypes(java.lang.String type,
                                             java.lang.String version)
Return a list of all runtime types that match the given type and version. If type or version is null, it matches all of that type or version.

Parameters:
type - a module type
version - a module version
Returns:
a possibly-empty array of runtime type instances IRuntimeType

getRuntimeTypes

public static IRuntimeType[] getRuntimeTypes(java.lang.String type,
                                             java.lang.String version,
                                             java.lang.String runtimeTypeId)
Return a list of all runtime types that match the given type, version, and partial runtime type id. If type, version, or runtimeTypeId is null, it matches all of that type or version.

Parameters:
type - a module type
version - a module version
runtimeTypeId - the id of a runtime type
Returns:
a possibly-empty array of runtime type instances IRuntimeType

getAvailableServersForModule

public static IServer[] getAvailableServersForModule(IModule module,
                                                     boolean includeErrors,
                                                     org.eclipse.core.runtime.IProgressMonitor monitor)
Returns a list of all servers that this deployable is not currently configured on, but could be added to. If includeErrors is true, this method return servers where the parent deployable may throw errors. For instance, this deployable may be the wrong spec level.

Parameters:
module - a module
includeErrors - true to include servers that returned errors when trying to add the module, and false otherwise
monitor - a progress monitor, or null if progress reporting and cancellation are not desired
Returns:
a possibly empty array of servers

getServersByModule

public static IServer[] getServersByModule(IModule module,
                                           org.eclipse.core.runtime.IProgressMonitor monitor)
Returns a list of all servers that this module is configured on.

Parameters:
module - a module
monitor - a progress monitor, or null if progress reporting and cancellation are not desired
Returns:
a possibly-empty array of server instances IServer

containsModule

public static boolean containsModule(IServer server,
                                     IModule module,
                                     org.eclipse.core.runtime.IProgressMonitor monitor)
Returns true if the given server currently contains the given module.

Parameters:
server - a server
module - a module
monitor - a progress monitor, or null if progress reporting and cancellation are not desired
Returns:
boolean true if the module is contained on the server, or false otherwise

getServer

public static IServer getServer(org.eclipse.debug.core.ILaunchConfiguration configuration)
                         throws org.eclipse.core.runtime.CoreException
Returns the server associated with the given launch configuration.

Parameters:
configuration - a launch configuration
Returns:
the server associated with the launch configuration, or null if no server could be found
Throws:
org.eclipse.core.runtime.CoreException - if there is a problem getting the attribute from the launch configuration

validateEdit

public static org.eclipse.core.runtime.IStatus validateEdit(java.lang.Object context,
                                                            IServer server)
Validates whether this server can be editted.

Parameters:
context - the context (Shell)
server - the server
Returns:
a status object with code IStatus.OK if the server can be edited, otherwise a status object indicating what when wrong with the checkout

getMonitoredPort

public static int getMonitoredPort(IServer server,
                                   int port,
                                   java.lang.String contentType)
Returns the port that is being used to monitor the given port on the server. This method can be used whenever creating a 'client' for the server, and allows the client to seamlessly use a monitored port instead of going directly to the server. Provisional API: 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.

Parameters:
server - a server
port - a port on the server
contentType - the content type, e.g. "web"
Returns:
the monitored port, or the original port number if the port is not currently being monitored

getServerSchedulingRule

public static org.eclipse.core.runtime.jobs.ISchedulingRule getServerSchedulingRule(IServer server)
Returns a scheduling rule to prevent jobs from simultaneously starting, publishing, or stopping the same server.

Parameters:
server - a server
Returns:
a scheduling rule for this server
Since:
2.0