org.apache.axis2.deployment
Class DeploymentEngine

java.lang.Object
  extended byorg.apache.axis2.deployment.DeploymentEngine
All Implemented Interfaces:
DeploymentConstants
Direct Known Subclasses:
FileSystemConfigurator, URLBasedAxisConfigurator, WarBasedAxisConfigurator

public class DeploymentEngine
extends Object
implements DeploymentConstants


Field Summary
protected  AxisConfiguration axisConfig
          to keep a ref to engine register this ref will pass to engine when it call start() method
protected  ConfigurationContext configContext
           
 
Fields inherited from interface org.apache.axis2.deployment.DeploymentConstants
ATTRIBUTE_DEFAULT_VERSION, ATTRIBUTE_LOCKED, ATTRIBUTE_NAME, ATTRIBUTE_NAMESPACE, ATTRIBUTE_PACKAGE, ATTRIBUTE_SCOPE, ATTRIBUTE_WSADDRESSING, AXIS2_CONFIGURATION_RESOURCE, AXIS2_CONFIGURATION_XML, AXIS2_REPO, BOOLEAN_FALSE, BOOLEAN_TRUE, DIRECTORY_AXIS2_HOME, DIRECTORY_CONF, MAPPING, META_INF, MODULE_DRI_PATH, MODULE_PATH, MODULE_XML, POLICY_NS_URI, PROPERTY_TEMP_DIR, RESOURCE_MODULES, SCHEMA, SCHEMA_ELEMENT_QUALIFIED, SCHEMA_NAME_SPACE, SEPARATOR_COLON, SEPARATOR_DOT, SERVICE_DIR_PATH, SERVICE_PATH, SERVICES_XML, SUFFIX_JAR, SUFFIX_MAR, SUFFIX_WSDL, TAG_AFTER, TAG_ANTI_JAR_LOCKING, TAG_AXISCONFIG, TAG_BEFORE, TAG_CLASS_NAME, TAG_DEFAULT_MODULE_VERSION, TAG_DESCRIPTION, TAG_DISPATCH_ORDER, TAG_DISPATCHER, TAG_EXCLUDE_OPERATIONS, TAG_EXTRACT_SERVICE_ARCHIVE, TAG_FLOW_IN, TAG_FLOW_IN_FAULT, TAG_FLOW_OUT, TAG_FLOW_OUT_FAULT, TAG_HANDLER, TAG_HOT_DEPLOYMENT, TAG_HOT_UPDATE, TAG_LABEL, TAG_LISTENER, TAG_MEP, TAG_MESSAGE, TAG_MESSAGE_RECEIVER, TAG_MESSAGE_RECEIVERS, TAG_MODULE, TAG_MODULE_CONFIG, TAG_NAMESPACES, TAG_OBJECT_SUPPLIER, TAG_OPERATION, TAG_ORDER, TAG_PARAMETER, TAG_PHASE, TAG_PHASE_FIRST, TAG_PHASE_LAST, TAG_PHASE_ORDER, TAG_POLICY, TAG_POLICY_REF, TAG_REFERENCE, TAG_SERVICE, TAG_SERVICE_GROUP, TAG_SUPPORTED_POLICY_NAMESPACES, TAG_TARGET_RESOLVER, TAG_TARGET_RESOLVERS, TAG_TRANSPORT, TAG_TRANSPORT_RECEIVER, TAG_TRANSPORT_SENDER, TAG_TRANSPORTS, TAG_TYPE, TARGET_NAME_SPACE, TYPE_DEFAULT, TYPE_MODULE, TYPE_SERVICE
 
Constructor Summary
DeploymentEngine()
           
 
Method Summary
 void addWSToDeploy(ArchiveFileData file)
           
 void addWSToUndeploy(WSInfo file)
           
static AxisModule buildModule(File modulearchive, AxisConfiguration config)
          Builds ModuleDescription for a given module archive file.
static AxisService buildService(InputStream serviceInputStream, ClassLoader classLoader, ConfigurationContext configCtx)
          Fills an axisservice object using services.xml.
static AxisServiceGroup buildServiceGroup(InputStream servicesxml, ClassLoader classLoader, String serviceGroupName, ConfigurationContext configCtx, ArchiveReader archiveReader, HashMap wsdlServices)
          To build a AxisServiceGroup for a given services.xml You have to add the created group into AxisConfig
 void doDeploy()
           
 void engageModules()
          Checks if the modules, referred by server.xml, exist or that they are deployed.
 AxisConfiguration getAxisConfig()
          Gets AxisConfiguration.
 AxisModule getModule(QName moduleName)
           
 File getModulesDir()
           
 File getServicesDir()
           
 String getWebLocationString()
           
 boolean isAntiJARLocking()
           
 boolean isHotUpdate()
           
protected  MessageReceiver loadDefaultMessageReceiver(String mepURL, AxisService service)
           
 void loadFromClassPath()
           
 void loadRepository(String repoDir)
           
 void loadRepositoryFromURL(URL repoURL)
           
 void loadServices()
           
 void loadServicesFromUrl(URL repoURL)
           
 AxisConfiguration populateAxisConfiguration(InputStream in)
          To get AxisConfiguration for a given inputStream this method can be used.
 void setConfigContext(ConfigurationContext configContext)
           
 void setWebLocationString(String webLocationString)
           
 void unDeploy()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

axisConfig

protected AxisConfiguration axisConfig
to keep a ref to engine register this ref will pass to engine when it call start() method


configContext

protected ConfigurationContext configContext
Constructor Detail

DeploymentEngine

public DeploymentEngine()
Method Detail

loadServices

public void loadServices()

loadRepository

public void loadRepository(String repoDir)
                    throws DeploymentException
Throws:
DeploymentException

loadFromClassPath

public void loadFromClassPath()
                       throws DeploymentException
Throws:
DeploymentException

loadServicesFromUrl

public void loadServicesFromUrl(URL repoURL)

loadRepositoryFromURL

public void loadRepositoryFromURL(URL repoURL)
                           throws DeploymentException
Throws:
DeploymentException

loadDefaultMessageReceiver

protected MessageReceiver loadDefaultMessageReceiver(String mepURL,
                                                     AxisService service)

addWSToDeploy

public void addWSToDeploy(ArchiveFileData file)
Parameters:
file -

addWSToUndeploy

public void addWSToUndeploy(WSInfo file)
Parameters:
file -

doDeploy

public void doDeploy()

engageModules

public void engageModules()
                   throws AxisFault
Checks if the modules, referred by server.xml, exist or that they are deployed.

Throws:
AxisFault

populateAxisConfiguration

public AxisConfiguration populateAxisConfiguration(InputStream in)
                                            throws DeploymentException
To get AxisConfiguration for a given inputStream this method can be used. The inputstream should be a valid axis2.xml , else you will be getting DeploymentExceptions.

First creat a AxisConfiguration using given inputSream , and then it will try to find the repository location parameter from AxisConfiguration, so if user has add a parameter with the name "repository" , then the value specified by that parameter will be the repository and system will try to load modules and services from that repository location if it a valid location. hot deployment and hot update will work as usual in this case.

You will be getting AxisConfiguration corresponding to given inputstream if it is valid , if something goes wrong you will be getting DeploymentExeption

Parameters:
in -
Throws:
DeploymentException

unDeploy

public void unDeploy()

getAxisConfig

public AxisConfiguration getAxisConfig()
Gets AxisConfiguration.

Returns:
AxisConfiguration AxisConfiguration

getModule

public AxisModule getModule(QName moduleName)
                     throws AxisFault
Throws:
AxisFault

isHotUpdate

public boolean isHotUpdate()

isAntiJARLocking

public boolean isAntiJARLocking()

getWebLocationString

public String getWebLocationString()

setWebLocationString

public void setWebLocationString(String webLocationString)

setConfigContext

public void setConfigContext(ConfigurationContext configContext)

buildModule

public static AxisModule buildModule(File modulearchive,
                                     AxisConfiguration config)
                              throws DeploymentException
Builds ModuleDescription for a given module archive file. This does not called the init method since there is no reference to configuration context so who ever create module using this has to called module.init if it is required

Parameters:
modulearchive - : Actual module archive file
config - : AxisConfiguration : for get classloaders etc..
Throws:
DeploymentException

buildService

public static AxisService buildService(InputStream serviceInputStream,
                                       ClassLoader classLoader,
                                       ConfigurationContext configCtx)
                                throws DeploymentException
Fills an axisservice object using services.xml. First creates an axisservice object using WSDL and then fills it using the given services.xml. Loads all the required class and builds the chains, finally adds the servicecontext to EngineContext and axisservice into EngineConfiguration.

Parameters:
serviceInputStream -
classLoader -
Returns:
Returns AxisService.
Throws:
DeploymentException

buildServiceGroup

public static AxisServiceGroup buildServiceGroup(InputStream servicesxml,
                                                 ClassLoader classLoader,
                                                 String serviceGroupName,
                                                 ConfigurationContext configCtx,
                                                 ArchiveReader archiveReader,
                                                 HashMap wsdlServices)
                                          throws AxisFault
To build a AxisServiceGroup for a given services.xml You have to add the created group into AxisConfig

Parameters:
servicesxml - : inpupstream create using services.xml
classLoader - : corresponding class loader to load the class
serviceGroupName - : name of the service group
Throws:
AxisFault

getServicesDir

public File getServicesDir()

getModulesDir

public File getModulesDir()